SuSE Linux: Verziók a következő dátum óta: 8.1
Az alapvető különbség a LILO-val szemben az, hogy a GRUB direkt módon támogat néhány fájlrendszert
(beleértve a SuSE Linux által használt összes fájlrendszert és természetesen a vfat-ot is). Éppen ezért
nem szükséges újra telepíteni a Grub-ot miután a beállításokat megváltoztattuk.
Amikor a rendszer elindul, a Grub beolvassa a menüfájl tartalmát.
Hacsak nem új rendszermagot (/boot/vmlinuz) telepítünk, vagy a kezdeti ramlemezt (/boot/initrd) módosítottuk,
a Grub képes megtalálni a maga számára. A grub nem igényli a rendszermag fizikai pozíciójának ismeretét,
Éppen ezért a rendszertöltőt nem kell újratelepíteni a rendszermag újrafordítása után sem.
A Grub egy másik nagy előnye az összes rendszertöltő paraméter szerkesztése a rendszerindítás megkezdése előtt. Ez nagyon hasznos akkor, ha hibák találhatók a menüfájlban.
Mindezeken felül továbbra is lehetőségünk is van a promptban is megadni a rendszertöltő paramétereit. Éppen ezért bármely, a boot menüben nem szereplő operációs rendszert is elindíthatunk. A grub lehetővé teszi a rendszermag, valamint az initrd nevének és helyének megadását a rendszerindítást megelőzően.
A következő bekezdés rövid összefoglalása a Grub rendszertöltési és beállítási folyamatának a YaST2 segítségével. Ezenfelül a jelenlegi beállítási fájl felépítését (a /boot/grub/menu.lst fájl) is részletezzük. Tekintsük meg a /boot/grub/device.map fájlt is, amely az adattároló eszközök elérését tartalmazza a BIOS eszköznevekkel, és az /etc/grub.conf fájlt, amelyet a YaST2 használ. A Grub manuális telepítését részletesebben is ismertetjük. Az utolsó rész a Grub menü lehetőségeiről szól.
A SuSE Linux telepítését köbetően a GRUB első része a merevlemez MBR-ébe vagy más indítószektorába kerül telepítésre, esetleg egy hajlékonylemez indítószektorába. Az első rész nagyon kis méretű, mivel az MBR-ben korlátozott hely áll rendelkezésre. Éppen ezért ennek feladata csupán a GRUB következő részének betöltése.
A Grub második része nyújtja a tulajdonképpeni rendszertöltő funkcionalitást, beleértve a menüt is (természetesen az ekkor nem látható Grub-burkot is; lásd lent) és azt a programkódot, amely átadja az irányítást az operációs rendszer számára. A SuSE Linuxban a második rész a /boot/grub/stage2 fájlban található. Amikor a rendszertöltőt telepítjük, a rendszertöltő második részének helye rögzítésre kerül az első részben is.
Általában a paraméterek módosítása csak hiba elhárításakor szükséges, például akkor, ha az operációs rendszer nem indul. A módosítások csak erre az egy indításra vonatkoznak, azaz nem rögzülnek végérvényesen.
A menübejegyzés szerkesztéséhez először is nyomjuk meg az ESC gombot. Ezután a kurzormozgató gombokkal válasszuk ki azt a bejegyzést, amelyet módosítani akarunk, majd nyomjuk meg az "e" billentyűt. Ha például a "Linux" bejegyzést választottuk ki, a következő sorok jelennek meg:
kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrdVálasszuk ki a szerkesztendő sort a kurzormozgató billentyűkkel. Nyomjuk meg az "e"-t mégegyszer az adott sor szerkesztéséhez. Ezen a módon az olyan paramétereket javíthatjuk ki, mint a partíciók és elérési útvonalak. Nyomjuk meg az Enter gombot a menübe történő visszalépéshez, itt el is indíthatjuk az adott bejegyzéshez tartozó rendszert a "b" billentyű megnyomásával. A további lehetőségekről a képernyő alján található segítségnyújtó szövegben olvashatunk.
Másik lehetőség a szakértők számára, hogy a "c" (command line) billentyű lenyomásával egy parancsértelmezőbe, a Grub burokba jutunk. Adjuk ki a "help" parancsot a felhasználható parancsok listájának megtekintéséhez. Nyomuk meg az "ESC" gombot a rendszertöltő menübe történő visszalépéshez.
A Grub burok használatával olyan operációs rendszert is betölthetünk, amelyet nem tartalmaz a Grub menü. Ez az opció nagyon hasznos akkor, ha tesztelni szeretnénk a saját magunk által fordított rendszermagot és nem készítettünk hozzá bejegyzést a Grub menüben.
A Grub burokban történő rendszerindításhoz a következő parancsokat adhatjuk ki manuálisan (ebben a példában Linux rendszert indítunk a /dev/hda5 partícióról és a /dev/hda7 gyökérkönyvtárral):
grub> kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 [Linux-bzImage, setup=0x1400, size=0xe9a45] grub> initrd (hd0,4)/initrd [Linux-initrd @ 0x369000, 0x863c9 bytes] grub> bootA szintaktika a /boot/grub/menu.lst fájlban látható. További információkat a lentebb olvasható "A menüfájl" című bekezdésben láthatunk. Fontos: amikor végeztünk, ne felejtsük el beírni a "boot" parancsot a rendszer indításához.
Egy praktikus tanács: mivel a Grub direkt módon eléri a Linux fájlrendszert a rendszerindításkor, a TAB billentyűt használhatjuk a fájlnevek automatikus kiegészítéséhez (a bash-ban megszokott módon). Ez különösen hasznos lehet akkor, ha nem tudjuk pontosan a megfelelő fájlnevet. Egy másik hasznos lehetőség: Ha nem tudjuk, melyik partíción található a Linux rendszermag, akkor megkereshetjük azt a következő parancsokkal:
find /boot/vmlinuzvagy
find /vmlinuzPéldánkban ezek a parancsok a következő kimenetet eredményezik:
(hd0,4)Természetesen használhatjuk a find parancsot bármely más fájl keresésére is (mint az initrd).
Ezenfelül megtekinthetjük az egyes fájlok tartalmát a cat paranccsal. Például a Grub beállítási fájl tartalmát, vagy bármely más fájlt. Természetesen e módon azok a fájlok is megtekinthetők, amelyeket a futó rendszerben rendszergazdai jogosultság nélkül nem is olvashatunk.
Mivel ez nem kívánt dolog a biztonság szempontjából, egy jelszót állíthatunk be a /boot/grub/menu.lst fájlban. E módon az operációs rendszerek továbbra is indíthatók a menüből, de az interaktív opciók ("e" és "c") használatához meg kell adnunk a jelszót. Ehhez a "p" billentyűt kell lenyomnunk. A jelszó beállításával kapcsolatban tekintsük meg a Grub beállítása YaST2 segítségével bekezdést.
Nyomjuk meg a Tovább gombot és a következő párbeszédablakban megadhatjuk a rendszerindító menü időtúllépését, valamint megadhatjunk egy jelszót a Grub számára. Ez a jelszó véd a speciális Grub parancsok kiadása ellen, amelyet már bemutattunk a korábbi "A Grub rendszerindító menü lehetőségei" részben).
További opciók találhatók a Szakértői beállítások.
Nyomjuk meg a Tovább gombot a szekciók táblájának szerkesztéséhez. Minden egyes szekció a rendszerindító menü egy bejegyzésének felel meg. Hozzáadhatunk vagy törölhetünk szekciókat, valamint kijelölhetjük az alapértelmezettet. Kattintsunk a Szerkesztés gombra a szekció átnevezéséhez vagy a rendszermag paraméterek módosításához (Szakértői beállítások).
Kattintsunk a Tovább gombra a szekcióbeállításokhoz való visszatéréshez.
Válasszuk ki a Jelenlegi beállítások mentése pontot és kattintsunk a Befejezés gombra a változások mentéséhez.
A Szakértői kézi beállítás pontban manuálisan szerkeszthetjük a Grub beállítási fájlokat (/boot/grub/menu.lst és /etc/grub.conf). További információkat erről a következő bekezdésekben olvashat.
Válasszuk ki az Eredeti beállítások visszaállítása pontot a telepítési állapotra történő visszaállításhoz.
Példák:
(fd0) Hajlékonylemezes meghajtók (hd0) A rendszer első merevlemeze (rendszerindító merevlemez) (hd1) Második merevlemez (hd0,0) Az első merevlemez első partíciója
A 0-3-ig számozott partíciók a négy elsődleges partíciót jelölik. A logikai partíciók 4-től számozódnak:
(hd0,0) 1. elsődleges partíció az első merevlemezen (hd0,1) 2. elsődleges partíció (hd0,2) 3. elsődleges partíció (hd0,3) Kiterjesztett partíció (hd0,4) Első logikai partíció (hd0,5) Második logikai partíció (hd0,6) Harmadik logikai partíció stb.
Egy másik fontos pont: amikor merevlemez címkéket rendelünk hozzá, a Grub nem tesz különbséget az IDE, SCSI vagy egyéb eszközök között. Az összes BIOS által felismert merevlemezek vagy egyéb vezérlők (SCSI, RAID, stb.) a rendszertöltés közbeni felismerés sorrendje szerint számozódnak. A (hd0,0) minden esetben az első merevlemez, amelyet a BIOS felismer, attól függetlenül, hogy az IDE, SCSI, vagy RAID eszköz.
Például: Egy két IDE és két SCSI merevlemezzel rendelkező rendszerben ha a BIOS-ban be van kapcsolva az "IDE before SCSI" opció, akkor a Grub a következő címkéket használja:
(hd0) Első IDE merevlemez (hd1) Második IDE merevlemez (hd2) Első SCSI merevlemez (hd3) Második SCSI merevlemez
Részletesebb információkért olvassuk el a "A térkép (map) fájl" bekezdést.
gfxmenu (hd0,4)/message color white/green black/light-gray default 0 timeout 8 title linux kernel (hd0,4)/vmlinuz root=/dev/hda7 vga=791 initrd (hd0,4)/initrd title windows root (hd0,0) makeactive chainloader +1 title floppy root (fd0) chainloader +1 title failsafe kernel (hd0,4)/vmlinuz.shipped root=/dev/hda7 ide=nodma apm=off acpi=off vga=normal nosmp maxcpus=0 3 initrd (hd0,4)/initrd.shipped
A bejegyzéseknek a következő jelentése van:
További részletes információkért a DOS/Windows operációs rendszerrel kapcsolatban olvasssuk el az alábbi cikkeket: "" (http://sdb.suse.de/hu/sdb/html/fhassel_grub_win1.html) és "" (http://sdb.suse.de/hu/sdb/html/fhassel_grub_win2.html).
Most térjünk vissza kicsit ahhoz a témához, hogyan számozza a Grub a lemezeket egy összetett rendszerben. Egy olyan rendszerben, amelyben a merevlemezek különböző vezérlőkre csatlakoznak (pl. mind IDE, mind SCSI merevlemezek vannak), a Grub megkísérli meghatározni a rendszerindítási sorrendet, egy speciális eljárással (ha a Grub nem tudja feldolgozni a BIOS adatait). E helyett a Grubnak ki kell számolnia hogy a rendszer az IDE vagy SCSI merevlemezről indul.
A Grub menti az eredményt a /boot/grub/device.map fájlba. A mi példánkban a fájlnak a következő a tartalma (a rendszertöltési sorrend a BIOS-ban: "IDE before SCSI"):
(fd0) /dev/fd0 (hd0) /dev/hda (hd1) /dev/hdb (hd2) /dev/sda (hd3) /dev/sdb
Fontos: ha a fájltartalmat manuálisan szerkesztettük (rendszerindítási problémák miatt), mindenképp ki kell adnunk a
grub --batch --device-map=/boot/grub/device.map </etc/grub.conf
parancsot a Grub újratelepítéséhez. A --device-map paraméter adja meg azt, hogy a Grub a meglévő térképfájlt használja. A többi parancs az /etc/grub.conf fájlból vehető át, amelyet a következő bekezdésben ismertetünk.
root (hd0,4) install /grub/stage1 d (hd0) /grub/stage2 0x8000 (hd0,4)/grub/menu.lst quit
A root bejegyzés a Grub fájlokat tartalmazó partíciót csatolja. Az install parancsra a Grub telepítésre kerül. A fenti példában az 1. fájl az első merevlemezen található MBR-be kerül telepítésre (d (hd0)). A 2. lépéshez tartozó fájl 0x8000 memóriacímre kerül betöltésre (/grub/stage2 0x8000). A (hd0,4)/grub/menu.lst bejegyzés mutatja meg a menü fájl pozícióját.