Pc boot folyamat

A HupWiki-ből...

Amikor egy PC elindul, a BIOS különféle teszteket végez annak ellenőrzésére, hogy minden rendben van-e. (Ezt szokás power on self test-nek vagy röviden POST-nak nevezni.) Ezután indul a tényleges rendszerindítás. Először egy lemezmeghajtó kerül kiválasztásra, az ebben levő lemez legelső szektorát, a boot szektort olvassa be a rendszer. (Az, hogy mely lemezmeghajtókon, illetve milyen sorrendben keresi a gép a megfelelő boot szektort, a számítógép beállítása mondja meg, de tipikus, hogy először az első floppymeghajtóval, majd az első merevlemezzel próbálkozik a BIOS.) Merevlemezeknél mindezt pontosítnai kell: a master boot record (MBR) kerül beolvasásra, ugyanis egy merevlemez több partíciót is tartalmazhat, mindegyiken saját boot szektorral.

A boot szektor egy kis (egy szektorba 512 byte fér) programot tartalmaz, melynek a feladata az aktuális operációs rendszer beolvasása és elindítása. Amikor floppyról indítjuk a Linuxot, a boot szektor csak egy olyan kódot tartalmaz, mely beolvassa az első pár száz blokkot (a kernelmérettől függően) a memória egy előre meghatározott helyére. Egy Linux boot floppyn nincs filerendszer, a kernel egyszerűen egymást követő szektorokban található, mivel ez egyszerűsíti a boot folyamatát. Igaz, lehet filerendszerrel rendelkező floppyról is boot-olni, pl. a LILO (LInux LOader) segítségével.

Amikor merevlemezről boot-olunk, a master boot recordbeli (MBR) kód megvizsgálja a partíciós táblát (az MBR-belit is), hogy azonosítsa az aktív partíciót (azaz amelyik boot-olhatóvá lett téve), beolvassa annak boot szektorát, és elindítja az itteni kódot. A partíció boot szektorában található kód ugyanazt csinálja, mint egy floppy boot szektora: beolvassa a kernelt és elindítja. A részletek ugyan egy kicsit változatosak, mivel általában nem célszerű egy külön partíciót fenntartani a kernel képmásának (kernel image), ezért a boot szektorban található kód nem olvashatja egyszerűen sorban a lemez blokkjait, hanem meg kell találni azokat a blokkokat, ahova a filerendszer lerakta a kernel képmását. Több megoldás is létezik erre a problémára, de a szokásos a LILO használata. (A részletes tárgyalás nem lényeges az itteni tárgyalás szempontjából. A LILO dokumentációja részletes felvilágosítással szolgál.)


FIXME hibajavitasok bovitesek

Forrás: Linux rendszeradminisztrátorok kézikönyve