Next Previous Contents

6. Bootinimasis

6.1 Kaip pasikrauti be LILO?

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:

  1. Boot/Rescue flopiai/CD-ROM'ai
  2. LoadLin'as

Detaliau apie 2) variantą, kuris yra paprastesnis (IMHO): reikia DOS'e turėti du failus:

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... ;)

6.2 Kaip įjungti arba išjungti tam tikrus servisus?

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

BSD tipo sistemų (Linux Slackware) paleidžiamų demonų kontrolė

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.

6.3 Procesų paleidimo seka

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 tipo sistemos (RedHat, Mandrake, Debian)

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

BSD tipo sistemos (Linux Slackware)

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ų)

rc.cdrom.

- sumontuoti cdrom, jei CDROM įrenginyje yra kompaktas. Slackware šis skriptas paprastai būna atjungtas.

rc.inet1.

- sutvarkomi tinklo nustatymai. Sukonfiguruojamos tinklo kortos ir keliai (routing)

rc.inet2.

- sutvarkomi tinklo nustatymai. Paleidžiami pagrindiniai tinklo procesai

rc.atalk.

- paleidžiamas Apple Netatalk serveris (failu/spausdinimo serveris Mac kompiuteriams, naudojantiems Appletalk)

rc.font.

- pakrauna vartotojo pasirinktą sisteminį šriftą

rc.keymap.

- pakrauna vartotojo pasirinktą klaviatūros išdėstymą

rc.ibcs2.

- paleidžiamas iBCS emulatorius del Linux

rc.httpd.

- paleidžiamas WWW serveris (Apache)

rc.samba.

- paleidžiamas Samba serveris

rc.gpm.

- paleidžiamas GPM (General Purpose Mouse) serveris

rc.sysvinit.

- vykdomi SystemV tipo atitinkamo runlevel skriptai. Slackware tokių skriptų paprastai nebūna.

rc.local.

- 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):


Next Previous Contents