A GRUB (Grand Unified Bootloader) két részbol áll. Az elso rész (stage 1) 512 bájtot tartalmaz, amelynek az összes feladata a rendszertölto második részének (stage2) betöltése. Ezt követoen a második rész (stage 2) kerül betöltésre. Ez a rész tartalmazza a rendszertölto lényegi részét.
Egyes konfigurációkban egy köztes (1.5-ös) szakasz is használható, amelyik kikeresi és betölti a stage2-t a megfelelo fájlrendszerbol. Hacsak lehetséges, az alapértelmezett telepítés ezt a módszert alkalmazza, illetve ez történik a GRUB YaST-tal történo beállításakor is.
A stage 2 többféle fájlrendszert képes kezelni. Jelenleg az Ext2, Ext3, ReiserFS, Minix és a Windows által használt DOS FAT fájlrendszer támogatott. Bizonyos mértékben az XFS és UFS, valamint a BSD-rendszerek által használt FFS is támogatott. A 0.95-ös verzió óta a GRUB az El Torito
specifikációnak megfelelo, ISO 9660 szabványú fájlrendszert tartalmazó CD-rol vagy DVD-rol is el tudja indítani a rendszert. A GRUB még a rendszer indítása elott el tudja érni a támogatott BIOS-lemezeszközök (a BIOS által felismert hajlékonylemezek és merevlemezek, CD- és DVD-meghajtók) fájlrendszereit. A GRUB konfigurációs fájl (menu.lst) módosításai miatt az indításkezelot nem kell többé újratelepíteni. A rendszer indításakor a GRUB újratölti a menüfájlt az érvényes elérési utakkal, valamint a kernel vagy a kezdeti memóriaeszköz (initrd) partícióadataival és megkeresi a fájlokat.
A GRUB tényleges konfigurációja az alább leírt három fájlra épül:
Ez a fájl a GRUB segítségével indítható partíciókkal és operációs rendszerekkel kapcsolatos összes információt tartalmazza. Ezen adatok nélkül a GRUB parancssor megkérdezik a felhasználótól, hogy hogyan folytassa (ennek részletei: Menüpontok szerkesztése a rendszerindítási folyamat során).
Ez a fájl fordítja le a GRUB és a BIOS-jelölés eszközneveit Linux-eszköznevekre.
Ez a fájl tartalmazza a paramétereket és opciókat, amelyekre a GRUB-nak a rendszertölto megfelelo betöltéséhez szüksége van.
A GRUB sokféleképp vezérelheto. A grafikus menübol kiválaszthatók a meglévo konfiguráció rendszerindítási bejegyzései (nyitóképernyo). A beállítás a menu.lst fájlból kerül betöltésre.
A GRUB-ban az indítás elott az összes rendszerindítási paraméter módosítható. Így például kijavítható a menüfájl szerkesztésekor fellépo hiba. A rendszerindító parancsok interaktív módon is betölthetok egy bemeneti prompt segítségével (lásd Menüpontok szerkesztése a rendszerindítási folyamat során). A GRUB a rendszerindítás elott biztosítja a kernel és az initrd helymeghatározásának lehetoségét. Ezen a módon akár egy olyan telepített operációs rendszer is elindítható, amelyhez nincs bejegyzés a rendszertölto konfigurációjában
A GRUB-nak valójában két verziója létezik: egy rendszertölto és egy normál Linux-program az /usr/sbin/grub könyvtárban. Ezt a programot GRUB-parancsértelmezonek hívjuk. Emulálja a GRUB-ot a telepített rendszeren és használható akár a GRUB telepítésére, akár az új beállítások kipróbálására az éles bevezetés elott. Az a funkció, amely a GRUB-ot telepíti rendszertöltoként a merevlemezen vagy hajlékonylemezen, integrált része a GRUB-nak az install és setup parancsok formájában. Ez elérheto a GRUB-parancsértelmezoben a Linux betöltésekor.
A device.map fájl a GRUB eszközneveit képezi le Linux-eszköznevekre. IDE- és SCSI-merevlemezeket egyaránt tartalmazó vegyes rendszerben a GRUB egy speciális eljárás segítségével megpróbálja kideríteni az indítási sorrendet, mivel a GRUB nem tud hozzáférni az indítási sorrenddel kapcsolatos BIOS-információhoz. A GRUB az elemzés eredményét elmenti a /boot/grub/device.map fájlba. Egy olyan rendszer esetén, amelynek BIOS-ban lévo indítási sorrendjében az IDE a SCSI elott van, a device.map az alábbi módon jelenhet meg:
(fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb
Mivel az IDE-, SCSI- és egyéb merevlemezek sorrendje különbözo tényezoktol függ és a Linux nem tudja azonosítani a leképezést, a device.map fájlban lévo sorrend kézzel is beállítható. Amennyiben a rendszerindítás során problémákat észlel, ellenorizze, hogy a fájlban lévo sorrend megfelel-e a BIOS-ban lévo sorrendnek, és ha szükséges, az ideiglenes módosításhoz használja a GRUB-parancsértelmezot. A Linux-rendszer elindítása után a device.map fájl a YaST rendszertölto modul vagy egy tetszoleges szerkesztoprogram segítségével módosítható.
A device.map fájl kézzel történo módosítása után az alábbi parancs végrehajtásával telepítse újra a GRUB-ot. A parancs hatására a device.map újra betöltodik és a grub.conf fájlban megjelenített parancsok végrehajtódnak:
grub --batch < /etc/grub.conf
A GRUB harmadik fontos konfigurációs fájlja (a menu.lst és a device.map mellett) az /etc/grub.conf. Ez a fájl tartalmazza a paramétereket és opciókat, amelyekre a GRUB-nak a rendszertölto megfelelo betöltéséhez szüksége van:
setup --stage2=/boot/grub/stage2 --force-lba (hd0,1) (hd0,1) quit
Ez a parancs azt jelzi a GRUB-nak, hogy automatikusan telepítse a rendszertöltot az elso merevlemez második partíciójára (hd0,1), az ugyanezen a partíción található rendszerindító képfájlok használatával. A --stage2=/boot/grub/stage2 paraméter a stage2 rendszerkép egy felcsatolt fájlrendszerrol való telepítéséhez szükséges. Egyes BIOS-okban rossz az LBA-támogatás megvalósítása. A --force-lba paraméterrel ez figyelmen kívül hagyható.
Bár az operációs rendszer indítása elott kerül elindításra, a GRUB lehetové teszi a fájlrendszerek elérését. A root jogosultsággal nem rendelkezo felhasználók elérhetik a Linux-rendszer azon fájljait, amelyhez a rendszer indítása után már nem férhetnek hozzá. Az ilyen típusú hozzáférés letiltásához illetve annak megakadályozásához, hogy a felhasználók bizonyos operációs rendszereket elindítsanak, állítson be egy rendszerindítási jelszót.
FONTOS: Rendszerindítási jelszó és a nyitóképernyo
Ha használ rendszerindítási jelszót a GRUB-hoz, akkor a szokásos nyitóképernyo nem jelenik meg.
Rendszerindítási jelszó beállításához root felhasználóként a következoképpen kell eljárni:
A root promptnál titkosítsa a jelszót a grub-md5-crypt használatával:
# grub-md5-crypt Password: **** Retype password: **** Encrypted: $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
Illessze be a titkosított karaktersorozatot a menu.lst globális részébe:
gfxmenu (hd0,4)/message color white/blue black/light-gray default 0 timeout 8 password --md5 $1$lS2dv/$JOYcdxIn7CJk9xShzzJVw/
A GRUB-parancsok ezután a rendszerindítási promptnál csak a P billentyu lenyomása és a jelszó megadása után hajthatók végre. A felhasználók azonban továbbra is elindíthatják a rendszerindítás menüben lévo összes operációs rendszert.
Annak megakadályozásához, hogy a rendszerindítás menüben lévo operációs rendszerek egy részét el lehessen indítani, a menu.lst fájl minden olyan részéhez hozzá kell adni a lock bejegyzést, amelyeket jelszóval kíván védeni. Például:
title linux kernel (hd0,4)/vmlinuz root=/dev/sda7 vga=791 initrd (hd0,4)/initrd lock
Ha a rendszer újraindítása után a rendszerindítás menüben a Linux-bejegyzést választotta, az alábbi hibaüzenet jelenik meg:
Error 32: Must be authenticated
A menübe belépéshez nyomja meg az Enter billentyut. A jelszóprompt megnyitásához nyomja meg a P billentyut. A jelszó megadása és az Enter megnyomása után a kiválasztott operációs rendszernek (ebben az esetben a Linuxnak) el kell indulnia.