GNU GRUB
GNU GRUB | |
GRUB menu képernyőkép | |
Fejlesztő | GNU Project |
Legfrissebb stabil kiadás | 2.02 (2017. 04. 06.[1]) |
Legfrissebb fejlesztői kiadás | 2.04~rc1 (2019. 04. 09.[2]) |
Programozási nyelv | C, Assembly |
Operációs rendszer | Linux, BSD, DOS, Windows, Solaris |
Platform | x86 PC (BIOS, EFI, Coreboot/Libreboot), Loongson, qemu MIPS, U-Boot, Xen [3] |
Elérhető | többnyelvű |
Állapot | aktív, stabil |
Kategória | Bootloader |
Licenc | GNU 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]-
GNU GRUB MBR partíciós táblájú merevlemezen
-
GNU GRUB GPT partíciós táblájú merevlemezen
-
A 446 bájt méretű
boot.img
az MBR-ben (0. szektor) található. Acore.img
az MBR és az első partíció közötti üres szektorokban helyezkedik el. A/boot/grub
könyvtár bárhol lehet, mert a core.img már kezeli a fájlrendszereket
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.