A számítógép bekapcsolásakor a BIOS öntesztje és a meghajtók detektálása után a boot-olási folyamat veszi kezdetét. Jelen esetben tegyük fel, hogy az elsődleges boot-olási eszköznek a merevlemez van megadva, vagy a merevlemez előtt megadott eszközökről nem indul el a gép. A BIOS megvizsgálja a háttértároló legelső blokkját (Master Boot Record – MBR). Az ott elhelyezkedő betöltő program vagy elindítja a megadott partíción lévő rendszert, vagy átadja egy másik partíció legelső blokkjában (Volume Boot Record – VBR) elhelyezett rendszerbetöltő programnak a vezérlést. GNU/Linux alatt elsősorban GRUB-ot vagy LILO-t használnak rendszerbetöltőnek.
A rendszerbetöltő mind az MBR-ből, mind az VBR-ből képes elindítani a rendszer. Ha csak egy GNU/Linux rendszer található el a merevlemezen, akkor is szükséges a rendszerbetöltő használata. Rendszer elindulásának a folyamata a kernel betöltődésével veszi kezdetét. (A kernel olyan a számítógép számára, mint az emberi test számára az agy.) A kernel betöltődése után inicializálja a hardver elemeket, betölti a szükséges eszközvezérlőket, majd elindítja az init programot. Az init a legelső folyamat, ami elindul. Feladata a fájlrendszer ellenőrzése, a démon programok (háttérben futó programok) elindítása és a bejelentkezések lehetővé tétele (getty futtatása).
Futási szintek
Az init egyéb remek tulajdonságai mellett, biztosítja a rendszergazdának a különböző futási szinteket. A futási szintek segítségével lehet befolyásolni, hogy a boot-olási folyamat során mely démonok (milyen szolgáltatások), programok induljanak el.
A hét futási szint
0: | Rendszer lekapcsolására szolgáló futási szint. Minden folyamatot leállít, majd kikapcsolja a számítógépet (ha lehetséges). | |
1: | Egyfelhasználós üzemmód, csak a rendszergazda léphet be, más néven szerviz üzemmód. Sajnos több terjesztés sem tartja fontosnak a rendszergazda jelszavának kérését e futási szint használatakor, a Debian bekéri. | |
2, 3, 4, 5: | Alapesetben, a telepítés befejezése után, azonos programokat indítanak el. A rendszergazdára bízzák a különböző futási szintek létrehozását igény esetén. | |
6: | Rendszer újraindítására szolgáló futási szint. Minden folyamatot leállít, majd újraindítja a számítógépet. |
A 2-es az alap futási szint, de a boot-olási folyamat megkezdése előtt a rendszerbetöltőből is kiválasztható a kívánt futási szint.
Futási szint állítása GRUB-ból
GRUB telepítése esetén alapesetben mindegyik kernelhez két sor tartozik: a felső a normál indítású (2-es szint), az alatta levő a single-user mode/recovery mode. (A single-user/recovery üzemmód olyan, mint a Windows-ban a csökkentett üzemmód.)
Ha másik futási szintet szeretnénk használni, akkor lépjünk rá a normál indítású kernelre, szerkesszük az indítási paramétereit az “e” betű lenyomásával
Debian GNU/Linux, kernel 2.6.26-1-686 <-- 'e' Debian GNU/Linux, kernel 2.6.26-1-686 (single-user mode)
Majd ez fogad minket, szerkesszük a kernel-lel kezdődő sort szintén az “e” betű lenyomásával:
root (hd0,0) kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/hda1 ro <-- 'e' initrd /boot/initrd.img-2.6.26-1-686
Ezzel megkapjuk a szerkesztési felületet:
... grub edit> kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/hda1 ro
A “ro” után írjuk be a kívánt futási szint számát (például: 4) majd nyomjunk enter-t. Ezután visszakerülünk az előző állapotra:
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-1-686 root=/dev/hda1 ro 4
initrd /boot/initrd.img-2.6.26-1-686
Végül a “b” betű lenyomásával elindíthatjuk a már módosított kernel-paraméterekkel a GNU/Linux rendszerünket.
Ugyanez (K)ubuntu 8.04 alatt:
Ubuntu 8.04, kernel 2.6.24-23-generic <-- 'e' Ubuntu 8.04, kernel 2.6.24-23-generic (recovery mode) root (hd0,0) kernel /vmlinuz-2.6.24-23-generic root=UUID...ddb ro quiet splash <-- 'e' initrd /initrd.img-2.6.24-23-generic grub edit> kernel /vmlinuz-2.6.24-23-generic root=... splash 4
Az előzőekhez hasonlóan írjuk a kernel-lel kezdődő sor végére a kívánt futás szint számát, majd enter, utána pedig a “b” betűvel a boot-olás elindítása.
Futási szint állítása LILO-ból
Habár a GRUB rugalmassága miatt nagyon sok helyről kiszorította már a LILO-t, de még lehet vele találkozni, ezért mi is foglalkozunk vele.
Alapesetben a rendszer indulása előtt csak egy “LILO” jelenik meg pár másodpercre. Ilyenkor az ESC, a CTRL vagy TAB gombokkal lehet előhozni a LILO prompt-ját (“lilo:“) vagy a táblázatos megjelenítés. Ha grafikus képpel fogad minket a LILO, akkor kisebb gond lehet, hogy “vakon” kell begépelni az alábbiakat.
lilo: <betöltendő kernel> <futási szint> lilo: Linux-2.4.21 4
Szerviz üzemmód betöltése a következőképpen lehetséges (1-es vagy single vagylagos használata):
lilo: <betöltendő kernel> <1|single> lilo: Linux-2.4.21 1 lilo: Linux-2.4.21 single
Futási szint állítása a működő rendszeren
Rendszer betöltődése után, a rendszer használata közben is lehet futási szintet váltani (de csak a rendszergazda teheti meg):
root@bash# init 4 root@bash#
Ezután megkezdődik a kívánt folyamatok leállítása és elindítása a /etc/rcX.d/ könyvtárak előírása szerint.
Előző és az aktuális futási szint megjelenítése – runlevel
Lekérdezhetjük az aktuális és az előző futási szintet a runlevel parancs segítségével:
root@bash# runlevel N 2 root@bash#
Először jeleníti meg az előző, majd szóközzel elválasztva az aktuális futási szintet. Ha az előző állapotot jelző szám helyett egy „N” betű jelenik meg, akkor nem volt előző állapot a gép elindulása óta.