GNU GRUB

A Wikipédiából, a szabad enciklopédiából
(Grub szócikkből átirányítva)
GNU GRUB
GRUB menu képernyőkép
GRUB menu képernyőkép

FejlesztőGNU Project
Legfrissebb stabil kiadás2.02
(2017. 04. 06.[1])
Legfrissebb fejlesztői
kiadás
2.04~rc1
(2019. 04. 09.[2])
Programozási nyelvC, Assembly
Operációs rendszerLinux, BSD, DOS, Windows, Solaris
Platformx86 PC (BIOS, EFI, Coreboot/Libreboot), Loongson, qemu MIPS, U-Boot, Xen [3]
Elérhetőtöbbnyelvű
Állapotaktív, stabil
KategóriaBootloader
LicencGNU GPLv3
A GNU GRUB weboldala

A GNU GRUB (vagy röviden GRUB) egy boot loader szoftver, amely lehetővé teszi, hogy a felhasználó több operációs rendszert tároljon a számítógépén, s a gép indításakor válasszon, hogy éppen melyik rendszert akarja indítani. A GRUB a Multiboot Specifikáció egy referencia implementációja.

A GRUB szó a Grand Unified Boot Loader szavak rövidítése.

Bootolási folyamat[szerkesztés]

A számítógép bekapcsolásakor a BIOS a beállításai alapján meghatározza a bootoló eszközt, ami jellemzően egy merevlemez, de lehet például CD, DVD vagy pendrive is. Ha ez megtörtént, akkor a BIOS átadja a vezérlést a Master Boot Record-nak, ami az adott eszköz első 512 byte-ját jelenti. A Master Boot Record tartalmazza a GRUB első szintjét, de mivel az 512 byte egy elég kis tárterület, ezért az ott tárolt kód szinte csak annyit csinál, hogy továbbadja a vezérlést a GRUB következő szintjének, ami már a meghajtó egy másik részén helyezkedik el.

Amikor a második szint megkapja a vezérlést, akkor megjelenít egy felhasználói felületet, amelyen választani lehet a bootolható operációs rendszerek közül és paraméterezni is lehet őket. A GRUB beállítható úgy is, hogy ha eltelik egy megadott idő anélkül, hogy a felhasználó választana, akkor automatikusan indítsa valamelyik rendszert.

A GRUB végül indítja a kiválasztott rendszert, azaz átadja a vezérlést a kiválasztott rendszermagnak. Ezen a ponton az is megtehető, hogy a GRUB ne egy operációs rendszert, hanem egy másik boot loadert indítson.

Telepítés[szerkesztés]

A GRUB-ot nem kell újratelepíteni a konfiguráció változásakor.

MBR-alapú merevlemezen az első track (63 szektor) legelső szektora (512 byte) tartalmazza egyebek mellett az MBR-kódot és a partíciós táblát. Az utána elhelyezkedő szektorokban található a GRUB programállománya, illetve ezt a területet használhatják más hasonló, multiboot szoftverek is. Ez a lemezterület az operációs rendszerből alapesetben nem látható, csak arra alkalmas programok segítségével érhető el, lemezszerkesztővel stb.

A következő track első szektora az első partíció kezdete, ahol legelső szektor a bootszektor, amely szintén tartalmaz egy indítókódot, de ez már operációs rendszertől függő. Mivel ezt a kódot a formázás alakítja ki, még azonos fájlrendszer esetén is (például FAT32) lehet eltérő tartalmú, attól függően, hogy a formázóprogram melyik operációs rendszerre készíti fel a meghajtót.

Az x86 IBM PC-szabványnak megfelelő MBR-kód úgy irányítja a bootfolyamatot, hogy a partíciós táblában aktívként megjelölt partíció első szektorában található indítókódnak adja át a vezérlést.

A GRUB, illetve a többi hasonló célú szoftver úgy tud működni, hogy a szabvány MBR-kódot módosítva eltéríti a folyamatot, a már említett programállomány irányába.

Amennyiben az MBR-kódot valamilyen más szoftver visszaállítja az eredeti, szabványos formátumra, úgy a GRUB kiiktatódik a folyamatból, de nem törlődik. A GRUB-hoz tartozik legtöbb esetben egy szerkeszthető konfigurációs állomány is, ami a Linux (Unix-like) indítómeghajtó fájlrendszerében helyezkedik el, jellemzően a /boot/grub/menu.lst elérési útvonalon. Ez határozza meg a képernyőn (nem feltétlenül) megjelenő menü tartalmát és a rendszerbetöltéshez szükséges paramétereket.

A LILO, illetve GRUB újratelepítése gyakorlatilag az MBR-kód ismételt módosítását jelenti, nem a programállomány újratelepítését, noha egyúttal az is felülírható. Az említett szoftverek telepítésének létezik másik módja is, amikor az MBR-kódot meghagyjuk szabványos formájában, és a programot a Linux (aktív) partíción belül telepítjük.

Jegyzetek[szerkesztés]

További információk[szerkesztés]