Q: Instaliacijos metu neįjungiau LILO ir dabar nežinau, kaip pasikrauti... arba Windowsai perrašė MBR'ą ir nebekrauna man Linux'o. Ką daryti?
Reikia pasikrauti Linux'ą ir iš naujo suinstaliuoti LILO. Klausimas tik -- kaip pasikrauti Linux'ą? Atsakymai keli:
Detaliau apie 2) variantą, kuris yra paprastesnis (IMHO): reikia DOS'e turėti du failus:
vmlinuz (t.y. kernelį)Failą vmlinuz galima nesunkiai ištraukti iš linuxinio disko pasinaudojus
vieną iš šių labai naudingų programų:
Paprastai tai būna failas /vmlinuz arba /boot/vmlinuz, galimi ir kiti
variantai (pvz. zImage arba vmlinuz-2.2.14, ir t.t.).
Kai viskas jau yra padaryta, telieka pasikrauti DOS'ą (MS-DOS langas iš po Windozes netiks, reikes "restart in MS-DOS mode") ir surinkti
loadlin vmlinuz root=/dev/hdXXX ro
(vietoje hdXXX reikia įrašyti atitinkamą Linux'ini diską, jei tiksliau
-- root partition'ą).
Papildymas: kartais gali prireikti ir dar vieno failo -- initial ramdisk
image'o, kuris paprastai vadinasi /boot/initrd-*.img. Nesu 100% tikras,
bet manau, kad RH 6.0/6.1 standartiniams kerneliams šito reikia (niekad
nenaudojau standartinio RH kernelio :-). Tada komanda reiktų kviesti
šitaip:
loadlin vmlinuz root=/dev/hdXXX ro initrd=initrd.img
P.S. "dlia osobo tupych povtoriajiem": ankstesnėje komandoje vietoje
vmlinuz ir initrd.img reikia užrašyti tikruosius šių failų
pavadinimus (e.g. VMLINU~1.12- ir pan.). Tikiuosi, šio post scriptum
neprireiks, bet ką gali žinoti... ;)
Kiekviename Unixe yra toks dalykas kaip runlevel. Galima sakyti tai
sistemos darbo režimas. Normaliai SuSE, Debiane (Corel'yje manau irgi yra
taip pat), sistema dirba runlevelyje "2". - Multiuser režimas.
Komanda /sbin/runlevel tai rodo:
N 2
Redhate yra "3" - gaila, kad skiriasi tarp distribucijų.
Be šių režimų yra daug kitų. Apie juos paskaitysi dokumentacijoje. Pvz. aš noriu išjungti apache iš runlevelio "2". Randu failą:
lrwxrwxrwx 1 root root 16 mar 26 1998 /etc/rc2.d/S91apache -> ../init.d/apache
Šis linkas susijęs su apache'o paleidimu 2 runlevelyje. Jei aš pervadinsiu
šį linką iš S91apache į s91apache jau daugiau apache man nepasileis. Jei
noriu grįžti - tai vėl šį s darau DIDELIU. Apskritai panašiai taip daroma
ir kituose Unixuose.
Jei nori padaryti "labai elegantiškai" Debian way gali panaudoti programą
/usr/sbin/update-rc.d
Skyrelių apie Slackware autorius yra Tomas Kuliavas.
Paprastai procesai yra paleidžiami per tam tikrų komandų seką
/etc/rc.d/rc.* skriptuose. Komandų seka patikrina, ar procesas
gali būti paleistas, naudodama if -x komandas ir jei gauna
teigiamą rezultatą, paleidžia procesą. Pvz.:
--- dalis /etc/rc.d/rc.inet2 skripto ---
if [ -x /usr/local/sbin/sshd ]; then
echo -n " sshd"
/usr/local/sbin/sshd
elif [ -x /usr/sbin/sshd ]; then
echo -n " sshd"
/usr/sbin/sshd
fi
---
Ši komandų seka patikrina, ar tarp /usr/local/sbin yra sshd
ir ar jis turi x (execute,vykdymo) teisę, jei taip - paleidžiamas SSH,
jei ne, toliau tikrinama, ar sshd nėra tarp /usr/sbin ir taip
pat bandoma ji paleisti. Jei sshd būtų padėtas ne tarp
/usr/local/sbin/sshd arba /usr/sbin/sshd,
SSH demonas būtų nepaleidžiamas.
Siekiant nepaleisti proceso, tereikia užkomentuoti (sudėti # simbolius) visas eilutes nuo if iki fi. Pvz.:
# Start the SUN RPC Portmapper:
#if [ -f /sbin/rpc.portmap ]; then
# echo "Starting /sbin/rpc.portmap..."
# /sbin/rpc.portmap
#fi
Kai kurie procesai yra priklausomi nuo kitų procesų, ir sustabdžius vienus, kitų paleidimo komandos gali generuoti klaidas. Pvz. Jei jus sustabdote rpc.portmap taip, kaip auksčiau pateiktame pavyzdyje, žemiau esančios rpc.mountd ir rpc.nfsd paleidimo komandos generuos klaidas, nes rpc.mountd ir rpc.nfsd būtinas rpc.portmap nebus paleistas.
Sistemos pasileidžia per tai, kas pas jas nurodyta /etc/inittab. Būtent ten ir pirmajame sistemos paleidimo skripte nustatoma, kokio tipo (SystemV ar BSD) sistema bus paleidžiami skriptai.
SystemV sistemose procesai pasileidzia per nuorodas rcS.d ir rc?.d
kataloguose. Šių katalogų vieta priklauso nuo Linux distribucijos.
RedHat jie yra tarp /etc/rc.d, Debian - grynai /etc.
Vietoj klaustuko nurodomas runlevel numeris (0,1,2,3,4,5,6)
Procesų paleidimo eiliškumą apsprendžia skaičiai po S arba K raidžių nuorodos pavadinime. Be to rcS.d skriptai pasileidžia nepriklausomai nuo runlevel ir anksčiau nei rc?.d skriptai. S raidė reiškia, kad procesas turi būti paleistas, o K, kad jis turi būti sustabdytas.
Pvz. /etc/rc2.d/S20apache pasileis, jei sistemos runlevel
bus lygus 2. Ir jis pasileis po /etc/rcS.d/S30portmap bei
/etc/rc2.d/S10bind, bet prieš /etc/rc2.d/S22linuxconf
Paleidžiamų skriptų seka ir paskirtis Linux Slackware:
1. /etc/rc.d/rc.S - sumontuoja swapa, patikrina, ar tvarkinga
ext2 failų sistema, sukonfiguruoja ISA PNP irenginius
(/etc/isapnp.conf), pakrauna branduolio modulius (rc.modules),
sutvarko PCMCIA nustatymus (rc.pcmcia), nuoseklius (serial)
portus (rc.serial), paleidžia rcS.d SystemV tipo skriptus.
2. Atitinkamo runlevel skriptai
a) /etc/rc.d/rc.M - multi user, runlevel 2345
rc.M skriptas paleidžia procesus (syslog, klog, lpd, crond, atd, quota, sendmail, apmd)
ir kitus skriptus (ju išvardijimo seka, dalies skriptų gali ir nebūti priklausomai
nuo instaliuotų paketų)
- sumontuoti cdrom, jei CDROM įrenginyje yra kompaktas. Slackware šis skriptas paprastai būna atjungtas.
- sutvarkomi tinklo nustatymai. Sukonfiguruojamos tinklo kortos ir keliai (routing)
- sutvarkomi tinklo nustatymai. Paleidžiami pagrindiniai tinklo procesai
- paleidžiamas Apple Netatalk serveris (failu/spausdinimo serveris Mac kompiuteriams, naudojantiems Appletalk)
- pakrauna vartotojo pasirinktą sisteminį šriftą
- pakrauna vartotojo pasirinktą klaviatūros išdėstymą
- paleidžiamas iBCS emulatorius del Linux
- paleidžiamas WWW serveris (Apache)
- paleidžiamas Samba serveris
- paleidžiamas GPM (General Purpose Mouse) serveris
- vykdomi SystemV tipo atitinkamo runlevel skriptai. Slackware tokių skriptų paprastai nebūna.
- paleidžiami specialūs procesai, kuriuos nustato pats administratorius. Paprastai į čia įdedamos rc.firewall skripto paleidimo komandos. Nors rekomenduotina rc.firewall komandas sudėti auksčiau rc.inet2 skripte.
b) /etc/rc.d/rc.K - single user, vieno vartotojo režimas (runlevel 1)
c) /etc/rc.d/rc.0 - halt, sistemos sustabdymas
(Slakware - tai yra simlinkas i rc.6)
d) /etc/rc.d/rc.6 - reboot, sistemos perkrovimas
3. /etc/rc.d/rc.4
Suveikia, jei sistema startuoja runlevel=4.
Paleidžiamas xdm arba jo analogas (kdm, gdm)
Pirmumo seka (slackware 7.0):