Belépés
Grub 2 útmutató
Azért fordítottam le ezt a doksit, hogy a mindjárt megjelenő 9.10-es kiadásnál senkit ne érjen felkészületlenül a Grub 2 bevezetése, ugyanis a jól megszokott Grub-hoz (legacy) képest máshogy működik jó néhány dolog benne. A fordítás folyamán néhány mondatot kicsit megváltoztattam, a könnyebb érthetőség kedvéért, így előfordulhat, hogy nem pontosan azt írja le, ahogy én fordítottam. Igyekeztem érthetően fordítani, de természetesen, ha valamilyen hibát találtok benne, szóljatok.
Grub 2 útmutató
- Bevezető
- Szemmel látható különbségek
- Fejlesztések
- Grub bootolása
- Grub 2 fájlok és beállítások
- Bejegyzések hozzáadása a Grub 2-höz
- Bejegyzések eltávolítása a Grub 2-ből
- Grub 2 splash képek
- Menü felbontásának megváltoztatása
- Recovery Mode-ba bootolás menüpont nélkül
- GRUB 2 eltávolítása > GRUB
- GRUB 2 újratelepítése LiveCD-ől
- Linkek
- Fejlesztések
- Bevezető
Azért írtam ezt az útmutatót, hogy alapszintű ismeretet nyújtsak a Grub 2 használatához. Azoknak a felhasználóknak szól, akiknek valószínűleg nem ismeretlen a régi Grub (Grub Legacy) menu.lst fájljának alapszintű szerkesztése és azon gondolkoznak, hogyan működik ez Grub 2-n (ver 1.97). Nem fogok kitérni arra, hogy hogyan kell a Grub 2-t telepíteni, eltávolítani, vagy akár hogyan kell rá átállni.
Ubuntu 9.10 (Karmic Koala) alatt a Grub 2 lesz az alapértelmezett, de a tervek szerint disztribúció frissítéskor nem váltja le a Grub 2 az előző verziót.
A StartUp-Manager ugyan támogatja a Grub 2-t, de jelenleg csak nagyon korlátozott szinten. A StartUp-Manager beállítási lehetőségei közül nagyon sok jelenleg nem kompatibilis a Grub 2-vel. A tervek szerint a StartUp-Manager 2 már csak a Grub 2-t fogja támogatni, de ez még fejlesztés alatt van a készítője szerint.
Hozzáfűzném azt is, hogy a Grub 2 még fejlesztés alatt van. A hivatalos dokumentáció jelenleg korlátozott és most készül. Részben ez az oka ennek az útmutatónak is. Remélhetőleg a közeljövőben több átfogó és teljeskörű dokumentáció lesz elérhető a fejlesztőknek és az önkénteseknek köszönhetően. Az oldal alján feltüntettem a dokumentációhoz használt forrásokat.
Legelőször, mielőtt belekezdenél, ellenőrizd melyik Grub verziót használod. Ez a parancs megmondja a verziószámot:
grub-install -vValami ilyesmit kéne látnod:
drs305@mycomputer:~$ grub-install -v
grub-install (GNU GRUB 1.97~beta2) - Szemmel látható különbségek: GRUB kontra GRUB 2
Első indításkor nem látszik túl nagy különbség abban amit a felhasználó lát a boot menüben. Az egyetlen kivétel a tisztán telepített Ubuntu 9.10, egyéb operációs rendszer nélkül. Ebben az esetben a GRUB 2 közvetlenül bootolja be az OS-t a menü mutatása nélkül.
Többi főbb különbség:
- Nincs "/boot/grub/menu.lst". Ez a fájl váltja fel: "/boot/grub/grub.cfg".
- Nincs "find /boot/grub/stage1" a grub prompt-nál. A Stage 1.5 szintén meg lett szüntetve.
- A főmenü fájlja a "/boot/grub/grub.cfg" nem azért van, hogy módosítsák, még a root felhasználó által sem.
- A "grub.cfg" fájl felülíródik minden alkalommal amikor frissítés történik, kernel-t adnak hozzá/távolítanak el, vagy amikor a felhasználó lefuttatja az
update-grubparancsot. - A felhasználó használhat egyéni fájlt, az "/etc/grub.d/40_custom"-öt, ahol elhelyezheti a saját bejegyzéseit. Ez a fájl nem lesz felülírva.
- Az elsődleges konfigurációs fájl a menü megjelenési beállításainak megváltoztatására: "/etc/default/grub".
- Több fájl van a menü beállítására (pl. az "/etc/default/grub" említve lett előbb), az összes fájl az "/etc/grub.d/" mappában található.
- Az egyéb operációs rendszereket, mint például a Windows-t, automatikusan fel kell ismernie és hozzá kell adnia a menühöz.
- A konfigurációs fájlokban való változtatások nem lépnek érvénybe az
update-grubparancs lefuttatásáig.
- Fejlesztések
A GRUB 2 újdonságai a régi GRUB-hoz képest a következők:
- Új konfigurációs fájl struktúra
- Scriptelhezőség, beleértve a feltételes állításokat és funkciókat
- Dinamikus modul betöltés
- Visszaállító mód
- Témák
- Grafikus boot menü támogatás és továbbfejlesztett splash képességek
- Könnyedén bootolhatóak a LiveCD ISO képfájlok közvetlenül a merevlemezről
- Nem X86 platformok támogatása (pl.: PowerPC)
- UUIDs-k univerzális támogatása (nem csak Ubuntu)
- Grub bootolása
A Grub 2 az operációs rendszer előtt töltődik be. A moduláris komponensei akkor töltődnek be, ha szükség van rájuk. A menü megjelenése általában az "/etc/default/grub" fájlban van meghatározva. Nézd át a "Grub 2 fájlok és beállítások" részt bejegyzési és formázási útmutatóhoz.
A főbb lehetőségek menü megjelenítéséhez a következők:
- Alapértelmezett (Initial Default)
- A Grub 2 egyenesen az alapértelmezett operációs rendszert fogja betölteni, ha más operációs rendszert nem érzékel. Semmilyen menü nem fog megjelenni. Ha más operációs rendszert is talál, akkor a Grub 2 menü meg fogja jeleníteni.
- Időzített megjelenés (Timed display)
- Az alapértelmezett késleltetés 10 másodperc. Ha nem történik felhasználói beavatkozás, akkor a Grub 2 az alapértelmezett menüpontot indítja.
- A visszaszámlálás megállítható bármely billentyű lenyomásával. Ezek után a felhasználónak manuálisan kell választania.
- Az alapértelmezetten booltolandó menüpontot a
DEFAULT=opció határozza meg az "/etc/default/grub" fájlban, az első menüpont értéke 0.
- Rejtett (Hidden)
- A felhasználó megszakíthatja a boot folyamatot és megjelenítheti a menüt a SHIFT gomb nyomva tartásával, amig a menü meg nem jelenik. A Grub 2 figyeli a SHIFT gomb lenyomását a bootolás alatt. Ha a gomb meg lett nyomva, vagy ha a Grub 2 nem tudja meghatározni a SHIFT állapotát, a menü megjelenik.
- A visszaszámláló alapból nem látszik, de megjeleníthető egy beállítással az "/etc/default/grub" fájlban.
- A visszaszámlálás alatti vizuális visszajelzéshez, a visszaszámláló megjeleníthető a képernyőn.
- A visszaszámlálás végén az alapértelmezett menüpont lesz kiválasztva, ami az "/etc/default/grub" lett meghatározva.
- Mentett (Saved)
- Ha az alapértelmezett beállítás "saved"-re lett állítva, akkor a legutóbbi sikeresen indított kernel/rendszer fog elindulni, ha nem történik felhasználói közbeavatkozás.
- Alapértelmezett (Initial Default)
- Grub 2 fájlok és beállítások
A /boot/grub mappában lévő fájlok közül sok ismeretlen lehet azoknak, akik az régi Grub-ot használták. Különösen feltűnő a *.mod fájlok sokasága. A Grub 2 moduláris felépítésű és ezek a fájlok akkor töltődnek be, amikor a Grub-nak szüksége van rá.
A Grub 2 felhasználó által módosítható beállításai az /etc/default/grub és az /etc/grub.d mappában vannak. Amikor lefut az update-grub parancs, a végeredmény a /boot/grub/grub.cfg fájlban lesz eltárolva.
- /boot/grub/grub.cfg
- Ez a fő fájlja a Grub 2-nek. Ez helyettesíti a régi Grub /boot/grub/menu.lst fájlját. Ez tartalmazza a Grub menü információit, de ellentétben a régi Grub menu.lst fájljával, a grub.cfg nem szerkesztésre van szánva.
- A grub.cfg automatikusan generálódik, amikor lefut az "update-grub" parancs:
- Minden szekció (### BEGIN) jól láthatóan el van különítve és hivatkozik arra a /etc/grub.d mappában lévő fájlra ahonnan az információ generálva lett.
- A grub.cfg az
update-grub2vagy azupdate-grubparancs rootként történű futtatásával frissíthető. - Alapértelmezetten, illetve ha bármikor lefut az
update-grub2parancs, ez a fájl csak olvasható (read-only) lesz. Ez összhangban van azzal a szándékkal, hogy a fájl nem szerkeszthető kézzel. Ha mégis szerkesztened kell ezt a fájlt, a második szekcióban található hozzá leírás.
- Egy példa grub.cfg fájl Windows-al és egy manuális bejegyzéssel:
# # DO NOT EDIT THIS FILE # # It is automatically generated by /usr/sbin/grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ### BEGIN /etc/grub.d/00_header ### load_env set default="0" if [ ${prev_saved_entry} ]; then saved_entry=${prev_saved_entry} save_env saved_entry prev_saved_entry= save_env prev_saved_entry fi insmod ext2 set root=(hd0,1) search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396925 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=640x480 insmod gfxterm insmod vbe if terminal_output gfxterm ; then true ; else # For backward compatibility with versions of terminal.mod that don't # understand terminal_output terminal gfxterm fi fi if [ ${recordfail} = 1 ]; then set timeout=-1 else set timeout=10 fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/10_linux ### menuentry "Ubuntu, Linux 2.6.31-12-generic" { recordfail=1 save_env recordfail set quiet=1 insmod ext2 set root=(hd0,1) search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933 linux /boot/vmlinuz-2.6.31-12-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro quiet splash initrd /boot/initrd.img-2.6.31-12-generic } menuentry "Ubuntu, Linux 2.6.31-12-generic (recovery mode)" { recordfail=1 save_env recordfail insmod ext2 set root=(hd0,1) search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933 linux /boot/vmlinuz-2.6.31-12-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro single initrd /boot/initrd.img-2.6.31-12-generic } menuentry "Ubuntu, Linux 2.6.31-11-generic" { recordfail=1 save_env recordfail set quiet=1 insmod ext2 set root=(hd0,1) search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933 linux /boot/vmlinuz-2.6.31-11-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro quiet splash initrd /boot/initrd.img-2.6.31-11-generic } menuentry "Ubuntu, Linux 2.6.31-11-generic (recovery mode)" { recordfail=1 save_env recordfail insmod ext2 set root=(hd0,1) search --no-floppy --fs-uuid --set 7ebcfe33-6914-42ec-9d2e-0859f7396933 linux /boot/vmlinuz-2.6.31-11-generic root=UUID=7ebcfe33-6914-42ec-9d2e-0859f7396933 ro single initrd /boot/initrd.img-2.6.31-11-generic } ### END /etc/grub.d/10_linux ### ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" { set root=(hd0,1) chainloader +1 } ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### menuentry "Jaunty 2.6.28-15-custom" { saved_entry=${chosen} save_env saved_entry set root=(hd0,8) linux /boot/vmlinuz-2.6.28-15-custom root=UUID=48e03255-22b3-488b-ae7e-9dbe4e2beac7 ro quiet splash initrd /boot/initrd.img-2.6.28-15-custom } menuentry "SystemRescue" { saved_entry=${chosen} save_env saved_entry set root=(hd0,6) linux /sysrcd/rescuecd subdir=sysrcd setkmap=us initrd /sysrcd/initram.igz } ### END /etc/grub.d/40_custom ###
- Ez a fő fájlja a Grub 2-nek. Ez helyettesíti a régi Grub /boot/grub/menu.lst fájlját. Ez tartalmazza a Grub menü információit, de ellentétben a régi Grub menu.lst fájljával, a grub.cfg nem szerkesztésre van szánva.
- /etc/default/grub
- Ez a fájl tartalmazza azokat az információkat, amik korábban a régi Grub menu.lst fájljának tetején foglaltak helyet és amik a kernel sor végén voltak. Ez a fájl szerkeszthető root jogokkal rendelkező felhasználóval.
Példa:
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT="3" GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entrys
- GRUB_DEFAULT - Meghatározza az alapértelmezett menüpontot. Az értéke lehet szám (0, 1, 2, stb...), vagy "saved".
- GRUB_DEFAULT=0 - Beállítja az alapértelmezett menüpontot helyzet alapján. Ahogy a régi Grub-ban, az első menüpont a grub.cfg-ben a 0, második az 1, stb.
- GRUB_DEFAULT=saved - Az alapértemezett menüpont az lesz, ami legutoljára lett kiválasztva. Ha a menü megjelenik booltolás során, a legutoljára kiválasztott menüpont lesz kiemelve. Ha nem történik közbeavatkozás, ez fog elindulni a visszaszámlálás végén, vagy ha a menü rejtve marad.
- GRUB_DEFAULT="xxxx" - Egy konkrét menüpont neve, idézőjelek közé kell tenni. Ebben az esetben a menüpont helye a menüben lényegtelen. Például: GRUB_DEFAULT="Ubuntu, Linux 2.6.31-9-generic"
- Példákért, hogy hogyan kell engedélyezni a "saved" opciót az egyedi menüben, lásd az "Egyéni Felhasználói Bejegyzések" részt.
- GRUB_TIMEOUT=5 - Nem változott a régi Grub-hoz képest. Ennyi másodperc múlva indul el az alapértelmezett menüpont.
- 0 A menü nem fog megjelenni és nem lesz késleltetés, ha az értéke 0:
- A felhasználó kényszerítheti a menü megjelenését, ha nyomva tartja a SHIFT gombot bootolás közben.
- Bootolás közben a rendszer ellenőrzi a SHIFT gomb állapotát. Ha nem tudja meghatározni a gomb állapotát, akkor egy rövid késleltetés lehetővé fogja tenni a felhasználónak, hogy megjelenítse a menüt az ESC gomb lenyomásával.
- Ha ez az érték "-1"-re van állítva akkor a menü addig lesz látható, amíg a felhasználó nem választ egy menüpontot.
- A fejlesztés közben úgy gondolták, hogy a Grub 2 menü alapértelmezetten legyen rejtett, hacsak nincs több operációs rendszer. Ebben az esetben ez a sor lehet, hogy ki van kommentelve. Hogy látható legyen a menü minden indításkor szedd ki a kommentet a sor elől és állítsd be értéknek 1-et vagy nagyobb számot.
- Ez az utasítás késlelteti a GRUB_HIDDEN_TIMEOUT utasítást. Ha a menü rejtettsége megszakad egy gombnyomástól, a GRUB_TIMEOUT számláló elkezd visszaszámolni.
- Továbbá a fájl root-ként való szerkszetéséhez, az alábbi utasításokat is használhatod az alapértelmezett érték ellenőrzéséhez és módosításához. Az első ellenőrzi a jelenlegi értéket, a második lecseréli. T helyére írd be az új értéket.
cat /etc/default/grub | grep 'GRUB_TIMEOUT=' # Ellenőrzi a jelenlegi TIMEOUT értéket. sudo sed 's/GRUB_TIMEOUT=5/GRUB_TIMEOUT=T/g' -i /etc/default/grub # Módosítja a TIMEOUT értéket. T helyére írd be az új értéket.
- 0 A menü nem fog megjelenni és nem lesz késleltetés, ha az értéke 0:
- GRUB_HIDDEN_TIMEOUT=0
- A menü el lesz rejtve, kivéve, ha a sor ki van kommentelve. ( # GRUB_HIDDEN_TIMEOUT=0 )
- Hibák még lehetnek ebben a funkcióban. A menü elrejtése vagy működik, vagy nem.
- Az alapértelmezett beállítás függhet az operációs rendszertől.
- Más OS-t is talál: A menü meg fog jelenni. ( A sor ki lesz kommentelve #-el. )
- Más OS-t nem talál: A menü rejtett lesz.
- Nullánál nagyobb szám esetlén a megadott értéknyi másodpercig áll, de nem mutatja a menüt..
- Ha engedélyezett, a 05_debian_theme fájlban megadott dizájnú splash screen fog megjelenni. Ez a beállítás csak a menüt rejti el.
- GRUB_HIDDEN_TIMEOUT_QUIET=true
- true - Nem jelenik meg a számláló. A képernyő üres lesz.
- false - A számláló meg fog jelenni az üres képernyőn a GRUB_HIDDEN_TIMEOUT opciónál beállított értékig.
- GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
- Meghatározza az ismertetőben lévő nevet. (Ubuntu, Xubuntu, Debian, stb.)
- GRUB_CMDLINE_LINUX
Ha létezik ez a sor, az összes itt található bejegyzést hozzáteszi a 'linux' parancssor végéhez (mint a régi Grub "kernel" sora) a normál és visszaállító (recovery) módhoz is. Ez hasonlít az "altoptions" sorra a menu.lst-ben. - GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
Ez a sor az összes itt található bejegyzést hozzáteszi a 'linux' parancssor végéhez (mint a régi Grub "kernel" sora). A bejegyzéseket csak a normál mód végéhez fűzi hozzá. Ez hasonlít a "defoptions" sorra a menu.lst-ben. A bootolási folyamat szöveges kijelzéséhez fekete háttérrel, távolítsd el a "quiet splash"-t. Ha a grub splash képét szeretnéd látni, egy tömör szöveges kimenettel, használd a "splash" opciót. - #GRUB_TERMINAL=console
A grafikus terminál kikapcsolásához szedd ki a kommentet (csak grub-pc) - #GRUB_DISABLE_LINUX_UUID=true
Ha nem akarod, hogy a GRUB átadja a "root=UUID=xxx" paramétert a Linuxnak, szedd ki a kommentet. - #GRUB_GFXMODE=640x480
Hozzáadhatod ezt a sort és kiszedheted a kommentet (#), hogy aktiváld. Ez a bejegyzés határozza meg a grafikus menü felbontását (a menü szövegméretét). A VGA által támogatot felbontást tudja nyújtani (pl.: 640x480, 800x600, 1280x1024, stb). Ez a beállítás csak a boot menü szövegére vonatkozik. - GRUB_DISABLE_LINUX_RECOVERY=true
Add hozzá vagy szedd ki a kommentet a sor elől, hogy megakadályozd, hogy a visszaállító (Recovery) mód kernel opciók megjelenjenek a menüben. Ha a "Recovery" opciót csak egy kernelnél akarod látni, akkor csinálj egy külön bejegyzést hozzá az "/etc/grub/40_custom" fájlban. - GRUB_DISABLE_OS_PROBER="true" - Engedélyezi/letiltja, hogy más partíciókon operációs rendszert keressen a GRUB beleértve a Windows-t, Linux-ot, OSX-et és a Hurd-öt.
- Ez a fájl tartalmazza azokat az információkat, amik korábban a régi Grub menu.lst fájljának tetején foglaltak helyet és amik a kernel sor végén voltak. Ez a fájl szerkeszthető root jogokkal rendelkező felhasználóval.
- /etc/grub.d/
- Az ebben a mappában található fájlok beolvasásra kerülnek az "update-grub" vagy az "update-grub2" parancs futása közben. A tartalmuk a /boot/grub/grub.cfg fájlba lesznek importálva.
A grub menü bejegyzések sorrendje a fájlnevek sorrendjén alapulnak. A számmal kezdődő nevű fájlok előbb futnak le, mint a betűvel kezdődőek. A fájlok sorrendje megállapítható a grub.cfg menü sorrendjéből.
Egyéni bejegyzések hozzáadhatóak a "40_custom", vagy egy újonnan készített fájlhoz.Bármilyen fájl lett is létrehozva, azoknak sorban kell lefutniuk, hogy bekerülhessenek a grub.cfg fájlba az "update-grub2" parancs folyamán.
- 00_header
- 05_debian_theme: Meghatározza a hátteret és a szöveg színét, témákat
- 10_hurd: Észleli a Hurd kerneleket
- 10_linux: Észleli a Linux kerneleket "lsb_release" parancsra alapozva.
- 20_memtest86+: Ha a /boot/memtest86+.bin fájl létezik, hozzá lesz adva, mint menüpont.
- 30_os-prober: Megkeresi a Linux-okat és egyéb operációs rendszereket a többi partíción és hozzáadja őket a menühöz.
- 40_custom: Egy sablon egyéni menüpontok hozzáadásához, amik hozzá lesznek adva a grub.cfg fáljhoz amikor lefut az "update-grub2" parancs. Ennek és minden egyéni fájlnak futtathatónak kell lennie, hogy hozzá lehessen adni a grub.cfg-hez.
- Az ebben a mappában található fájlok beolvasásra kerülnek az "update-grub" vagy az "update-grub2" parancs futása közben. A tartalmuk a /boot/grub/grub.cfg fájlba lesznek importálva.
- /boot/grub/grub.cfg
- Bejegyzések hozzáadása a Grub 2-höz
A grub.cfg fájlba a menü bejegyzések automatikusan, vagy manuálisan adhatók hozzá.- Automatikus.
- Amikor az "update-grub" vagy az "update-grub2" lefut, a Grub 2 megkeresi a Linux kerneleket és az egyéb operációs rendszereket.
Hogy mit és hol keres azt az /etc/grub.d mappába található fájlok határozzák meg.- 10_linux megkeresi a telepített linux kerneleket ugyanazon a partícón.
- 30_os-prober egyéb operációs rendszereket keres.
- Amikor az "update-grub" vagy az "update-grub2" lefut, a Grub 2 megkeresi a Linux kerneleket és az egyéb operációs rendszereket.
- Egyéni felhasználói bejegyzések (/etc/grub.d/40_custom).
- A bejegyzések a grub.cfg-be manuálisan is beilleszthetők fájlok létrehozásával az /etc/grub.d mappába.
- A fájl neve meghatározza a helyét a menüben. A 30_os-prober bejegyzései a 40_custom bejegyzései előtt fognak helyetfoglalni, ami pedig az 50_my-sample bejegyzései előtt.
- Minden létrehoztt fájlnak futtathatónak kell lennie. Ez elvégezhető rootként a "sudo chmod +x /etc/grub.d/filename" paranccsal.
- Az /etc/grub.d mappában lévő fájlok be lesznek olvasva és tartalmuk bekerül a grub.cfg fájlba, amikor az "update-grub2" parancs lefut root joggal.
- Egy példa bejegyzés. Ez a fájl létrehoz egy menü elemet a SystemRescueCD futtatásához (előzőleg telepített) arról a partícióról, ami az sda10 csatolási ponton lett létrehozva. A mappáknak és a fájloknak a megfelelő helyre kell lenniük másolva összhangban a SystemRescueCD-vel, ha ténylegesen szeretnéd használni ezt a bejegyzést.
-
#!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. echo "Adding SystemRescueCD" >&2 cat << EOF menuentry "System Rescue CD" { set root=(hd0,10) linux /sysrcd/rescuecd subdir=sysrcd setkmap=us initrd /sysrcd/initram.igz } EOF - Figyeld meg a partíció megnevezését. Az eszközök "0"-tól számozódnak, mint eddig. Az sda "hd0"-ként van jelölve, az sdb "hd1"-ként, stb. Azonban az első partíció most sda1-ként szerepel. A partíciók számozása nem "0"-val kezdődik, hanem "1"-el. Az sda5 az "5"-ös.
- Az 'echo "Adding SystemRescueCD" >&2' sor nem feltétlenül szükséges. Ha benne van a fájlban, akkor ez a sor meg fog jelenni a terminálban, mikor az "update-grub2" parancs lefut. Vizuális visszajelzést biztosít arról, hogy a bejegyzés meg lett találva és be lett illesztve. A bejegyzés, ha a megfelelő formában van, be lesz illesztve a grub.cfg fájlba, akár benne van ez a sor a fájlban, akár nincs.
-
- Tipp: Ha az egyéni menü bejegyzéseidet a menü tetején akarod látni (mondjuk egyéni címeket akarsz), akkor csinálj egy új fájlt "07_xxxx" néven. Mivel az /etc/grub.d/ mappában lévő fájlok egymást követően kerülnek beolvasásra, ezért a "07_custom" fájl a "10_linux" előtt fog következni. Nem ajánlom, hogy az egyéni menü fájljának neve 06-nál kissebb számmal kezdődjön, mivel minden téma a 05_debian_theme fájlból töltődik be, és így ez biztosan ez egyéni menü létrejötte előtt fog lefutni. A fájl létrehozása után futtasd le a sudo update-grub parancsot és utána ellenőrizd a "DEFAULT" értékét az /etc/default/grub fájlban. Ha ez nem a megfelelő menüpontra mutat, változtasd meg a DEFAULT értékét a megfelelő menüpont értékére.
- memtest86+ elhagyása: Hogy ne jelenjenek meg a "memtest86+" bejegyzések a Grub 2 menüben, szüntesd meg a futtathatóságát az /etc/grub.d/20_memtest86+ fájlnak. Megcsinálhatod fájlkezelőből "Tulajdonságok (jobb klikk), Jogolultságok", vagy parancssorral:
sudo chmod -x /etc/grub.d/20_memtest86+ - Visszaállító mód (Recovery Mode) bejegyzések elhagyása: Az /etc/grub.d/10_linux fájl az utóbbi időben frissült, hogy tartalmazza a recovery mode opcióinak ellenőrzését. Szerkeszd a /etc/default/grub fájlt és add hozzá, vagy módosítsd a következő sort:
GRUB_DISABLE_LINUX_RECOVERY=true
Ha egy régebbi verziójú /etc/grub.d/10_linux fájlod van és a fenti kód nem működik a grub frissítése után, megszüntetheted a "Recovery mode" bejegyzéseket a Grub 2 menüdben, az /etc/grub.d/10_linux fájl szerkesztésével. Ha nincsenek benne "if"-es feltétel vizsgálatok a recovery mode-ot illetően, helyezz el egy komment jelet (#) a régi fájl következő sorai előtt (kb. a 146. sornál):
# linux_entry "${OS}, Linux ${version} (recovery mode)" \
# "single ${GRUB_CMDLINE_LINUX}"
Ha meg akarsz tartani egy "Recovery mode" bejegyzést a biztonság kedvéért, hozzáadhatsz egy bejegyzést az /etc/grub.d/40_custom fájlhoz, ami meg fog jelenni a grub menü alján. - Egy teljesen személyre szabott menü építése: Oké, valld be, hogy az irányítás megszállottja vagy és csak azt akarod látni, amit magad készítettél - testreszabott címeket, semmi "memtest86+"-at vagy extra kerneleket. Itt van, hogyan csináld:
- Futtasd le az update-grub parancsot, hogy elérd a jelenleg elérhető kerneleket.
- Másold át a kiszemelt bejegyzést a /boot/grub/grub.cfg fájlból a /etc/grub.d/40_custom fájlba. A bejegyzés a "menuentry" elejű sorral kezdődik és "}"-el végződik.
- Adj hozzá minden egyéb menüpontot, amit látni akarsz a bootmenüben.
- Szerkeszt a címeket "menuentry" sorban, ha szükséges (az idézőjelek közt). Ne módosítsd a sorokat a "menuentry" sort követően. Minden bejegyzésnek egy "menuentry" sorral kell kezdődnie és egy "}"-el kell végződnie az utolsó sorban.
- Szüntesd meg a következő fájlok futtathatóságát /etc/grub.d/10_linux, /etc/grub.d/20_memtest86+ és /etc/grub.d/30_os-prober.
Amelyik fájl futtathatósága megszűnik az /etc/grub.d mappában, az ki lesz zárva a grub frissítésekor.
sudo chmod -x /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober - Futtasd a "sudo update-grub" parancsot
- A frissített /boot/grub/grub.cfg fájlnak most csak következő fájlok bejegyzéseit kéne tartalmaznia "00_header", "05_debian_theme" és "40_custom".
- A grub.cfg fájl nem lesz frissítve új kernel hozzáadásakor. Az új kernel hozzáadásához tedd a make "10_linux" fájlt futtathatóvá, majd futtasd a "sudo update-grub" parancsot az elérhető kernelek frissítéséhez és az utasítások megismétléséhez.
- A DEFAULT=save opció beépítése: A "saved default" opció engedélyezéséhez, amivel a Grub 2 előre kiválasztja a legutóbbi sikeresen használt menüpontot bootoláskor, a "DEFAULT=save" opciónak be kell lennie írva a /etc/default/grub fájlba és a 40_custom fájlt módosítani kell.
Egy példa a 40_custom fájlra:-
#! /bin/sh -e prefix=/usr exec_prefix=${prefix} libdir=${exec_prefix}/lib . ${libdir}/grub/grub-mkconfig_lib echo "Adding SystemRescueCD & Custom Kernel" >&2 cat << EOF menuentry "Jaunty 2.6.28-15-custom" { EOF save_default_entry | sed -e "s/^/\t/" cat << EOF set root=(hd0,7) linux /boot/vmlinuz-2.6.28-15-custom root=UUID=12c55255-27b3-488b-hje7e-9dbe4e2esfg5 ro quiet splash initrd /boot/initrd.img-2.6.28-15-custom } EOF cat<< EOF menuentry "SystemRescue" { EOF save_default_entry | sed -e "s/^/\t/" cat << EOF set root=(hd0,6) linux /sysrcd/rescuecd subdir=sysrcd setkmap=us initrd /sysrcd/initram.igz } EOF - Manuális Windows bejegyzés (az /etc/grub.d/30_os-prober futtathatóságának megszüntetésével)
#! /bin/sh -e echo "Adding Windows 43_custom" >&2 cat << EOF menuentry "Windows Vista 43_custom" { insmod ntfs set root=(hd0,1) search --no-floppy --fs-uuid --set CFFCFF9EECFF7F49 chainloader +1 } EOF
-
- Ne felejtsd el lefuttatni az "sudo update-grub" parancsot, miután elvégezted a változtatásokat az /etc/grub.d mappában lévő fájlokon.
- A bejegyzések a grub.cfg-be manuálisan is beilleszthetők fájlok létrehozásával az /etc/grub.d mappába.
- A grub.cfg manuális szerkesztése (Nem ajánlott)
Az /boot/grub/grub.cfg manuális szerkesztése nem ajánlott. A grub.cfg fájlra egyfajta végeredményként gondolj. A szerkesztésre való dolgok /etc/grub.d mappában vannak, illetve az /etc/default/grub fájlban.
A szerkesztést elkerülendő, a grub.cfg fájl csak olvasható. Ha mégis megpróbálnád megnyitni, szerkeszteni és menteni ezt a fájl root joggal, addig nem fogod tudni megtenni, amíg a csak olvasható (read-only) állapotát meg nem változtatod. Ha mégis szerkesztened kéne ezt a fájlt:
sudo chmod +w /boot/grub/grub.cfg
gksudo gedit /boot/grub/grub.cfgMegjegyzés: Ez a fájl vissza lesz állítva csak olvasható állapotba, amint lefut az update-grub parancs.
- Automatikus.
- Bejegyzések eltávolítása a Grub 2-ből
A bejegyzéseket az /etc/grub.d mappában lévő fájlok módosításával, vagy törlésével kéne eltávolítani. A /boot/grub/grub.cfg fájl csak olvasható és általában nem szükséges szerkeszteni.
- Automatikusan.
- Túl sok a kernel? Ha a kerneleket Synaptic-kal, vagy az "apt-get remove" paranccsal távolítod el, automatikusan frissülni fog a grub.cfg fájl és nem igényel semmilyen felhasználói beavatkozást.
- Synaptic-ban gépeld be a kernel számát az ablak jobb felső sarkában lévő keresési mezőbe (pl.: 2.6.28-11).
Keresd meg a "linux-image" és a "linux-headers" bejegyzéseket a megfelelő kernelhez (pl.: linux-image-2.6.26-11, vagy linux-image-2.6.26-11-generic). - Kattints jobb gombbal és válasz a "Kijelőlés teljes eltávolításra"-t, és nyomd meg az alkalmaz gombot.
- A kernelek el lesznek távolítva a rendszerből és a Grub menüből.
- Ha nem vagy biztos, hogy melyik kernelt használod, írd be a terminálba a "uname -r" parancsot.
- Sok felhasználó megtartja az eggyel előbbi kernelt, ami előzőleg problémamentesen működött.
- Synaptic-ban gépeld be a kernel számát az ablak jobb felső sarkában lévő keresési mezőbe (pl.: 2.6.28-11).
- Az egyéb operációs rendszerek, amik el lettek távolítva a számítógépről, ugyancsak el lesznek távolítva a menüből, amint az "update-grub2" parancsot lefuttatod rootként.
- Hogy megakadályozd az /etc/init.d mappában lévő fájlok valamelyikének futását, szüntesd meg a futtathatóságát.
- Pl.: Ha nem akarod látni a "Memtest86+" bejegyzéseit, futtasd le ezt a parancsot:
sudo chmod -x /etc/grub.d/20_memtest86+ - Az update-grub parancs futtatása véglegesíti a módosításokat a grub.cfg fájlban.
- Pl.: Ha nem akarod látni a "Memtest86+" bejegyzéseit, futtasd le ezt a parancsot:
- Túl sok a kernel? Ha a kerneleket Synaptic-kal, vagy az "apt-get remove" paranccsal távolítod el, automatikusan frissülni fog a grub.cfg fájl és nem igényel semmilyen felhasználói beavatkozást.
- Felhasználó által létrehozott bejegyzések.
- Egy felhasználó által létrehozott bejegyzés eltávolításához, töröld ki a hozzá tartozó fájlt az /etc/grub.d mappából.
- Ha ez egyéni fájl több bejegyzést tartalmaz, egyes elemeket eltávolíthatsz, másokat megtarthatsz.
- Miután a fájl el lett távolítva, vagy szerkesztve, futtasd le az "update-grub2" parancsot a grub.cfg frissítéséhez.
- Automatikusan.
- Grub 2 splash képek
Miért találnád fel újra a kereket? Látogasd meg ezt az oldalt, ami egy remek bemutatót tartalmaz Grub 2 splash képek készítéséről:
http://members.iinet.net/~herman546/p20/GRUB2%20Splashimages.htmlAzonban, ha a titkosított merevlemez nem jelent problémát, itt vannak az alapok:
- Másold át kézzel a splash képeket az /usr/share/images/grub mappába, vagy telepítsd fel az alapértelmezett grub2 splash képeket a Synaptic segítségével:
sudo apt-get install grub2-splashimages - A Grub2 splash képei az /etc/grub.d/05_debian_theme fájl irányítása alatt vannak. Nyisd meg ezt a áfjlt szerkesztésre:
gksudo gedit /etc/grub.d/05_debian_theme
Keresd meg a következő sort és szerkeszd a kiemelt részt, helyettesítsd azzal a grub splash képpel (az /usr/share/images/grub mappában található), amit használni szeretnél:
for i in {/boot/grub,/usr/share/images/grub}/moreblue-orbit-grub.{png,tga} ; do
Megjegyzés: Ott van egy periódus ( . ) a fájlnevet követően.- Egy időben a Grub 2 splash képei, amik le lettek töltve, az /usr/share/images/desktop.base mappában tárolódtak. Ha itt találhatóak, add meg a megfelelő elérési utat az előző parancsban ( ... /usr/share/images/desktop-base} ... ).
- Mentsd el a fájlt, majd frissítsd a Grub2-t:
sudo update-grub2
- Másold át kézzel a splash képeket az /usr/share/images/grub mappába, vagy telepítsd fel az alapértelmezett grub2 splash képeket a Synaptic segítségével:
- Menü felbontásának megváltoztatása
-
Ha meg szeretnéd változtatni a felbontását a Grub 2 képernyőjének, amikor splash képet használsz, kövesd a következő lépéseket:
- Add meg a kívánt felbontást az /etc/default/grub fájlban
- Változtasd meg a "GRUB_GFXMODE=" értékét (Pl.: GRUB_GFXMODE=800x600)
- Ha nem vagy biztos abban, hogy milyen felbontások állnak a Grub 2 rendelkezésére, meg tudod jeleníteni őket, ha beírod a "vbeinfo" parancsot a GRUB 2 parancssorába. A parancssor a "c" gomb lenyomásával érhető el, amikor a fő Grub 2 menü kép megjelenik.
- Változtasd meg a "GRUB_GFXMODE=" értékét (Pl.: GRUB_GFXMODE=800x600)
- Válassz egy képet azonos felbontással és módosítsd az /etc/grub.d/05_debian_theme fájlt
- A kép neve is az alábbi szöveggel kezdődő sorban található:
" for i in {/boot" - Ha egy kép felbontása nem megfelelő, a menü nem fog pontosan elhelyezkedni.
- Használd az általad választott képszerkesztőt, hogy létrehozz/átméretezz egy képet a megfelelő méretben.
- A kép méretét a tulajdonságok segítségével meg lehet nézni a fájlkezelőben (nézd meg a kép fület Nautilus-ban).
- A kép neve is az alábbi szöveggel kezdődő sorban található:
- Futtasd az
update-grubparancsot rootként, hogy az új beállítások hozzá legyenek azva a /boot/grub/grub.cfg fájlhoz
- Add meg a kívánt felbontást az /etc/default/grub fájlban
- Recovery Mode-ba bootolás menüpont nélkül
- Ha a Grub 2 úgy van beállítva, hogy egyáltalán ne jelenítse meg a menüt bootoláskor, tartsd lenyomva a SHIFT billentyűt, amíg a menü meg nem jelenik. (A régi Grub-nál ez volt az ESC billentyű.)
- Nyomj meg egy gombot egyszer, amikor a menü megjelenik, hogy 'kimerevítsed'. Aztán válaszd ki az a kernelt, amit el akarsz indítani.
- Nyomd meg az E-t
- Menj a "linux /boot/vmlinuz...." sor végére. Ha látható, akkor távolítsd el a "quiet" és/vagy "splash" paramétereket. Írd a "single" paramétert a sor végére.
- Nyomj CTRL-X-et a visszaállító menü elindításához.
- GRUB 2 eltávolítása > GRUB
A parancssor segítségével tisztábban lehet eltávolítani és újratelepíteni. Amíg a csomagok hozzáadása és eltávolítása megoldható Synaptic, néhány lépést muszáj parancssorból végezni.
- Nyiss egy terminált: Alkalmazások, Kellékek, Terminál.
- Készítsünk biztonsági másolatot a GRUB 2 fő mappáiról és fájljairól
-
sudo cp /etc/default/grub /etc/default/grub.old sudo cp -R /etc/grub.d /etc/grub.d.old sudo cp -R /boot/grub /boot/grub.old
-
- GRUB 2 eltávolítása
sudo apt-get purge grub2 grub-pc- Figyelmeztetni fog, hogy a rendszer képtelen lesz elindulni másik rendszerbetöltő telepítése nélkül.
- Amikor a csomagok el lesznek távolítva, néhány fájl benne fog maradni a '/boot/grub' mappában
- GRUB 0.97 telepítése
sudo apt-get install grub- A "grub" telepítésével, a felhasználónak még létre kell hoznia a "menu.lst" és a "stage1/stage2" fájlokat.
sudo update-grub- Létrehozza "menu.lst" fájlt. Tab-bal válaszd ki a "Yes/Igen"-t amikor kéri.
sudo grub-install /dev/sdX- Válaszd a megfelelő eszközt (sda, sdb, etc), általában azt, amire az Ubuntu lett telepítve.
- Létrehozza a "stage1" és "stage2" fájlokat a "/boot/grub" mappában és beírja megát az MBR szektorba.
- Indítsd újra
- GRUB 2 újratelepítése LiveCD-ől
Ha nem indul a GRUB 2 és újra kéne telepíteni:
- Bootolj be az Ubuntu 9.10 LiveCD-ről.
- Nyiss egy terminált: Alkalmazások, Kellékek, Terminál.
- Állapítsd meg, hogy melyik a rendes rendszer partíciód - `sudo fdisk -l` (Végén egy kis L van.)
- Ha nem vagy biztos, futtasd a `df -Th` parancsot. Figyelj a lemez méretére, meg hogy ext3, vagy ext4 fájlrendszerű.
- Csatold fel a rendszer partíciódat:
sudo mount /dev/sdXX /mnt- Megjegyzés: helyettesítsd be a megfelelő partíciót: sda1, sdb5, etc.
- Megjegyzés: A GRUB 2 az első eszközt "0"-ként számozza, de az első partíciót meg "1"-ként
- Csak akkor, ha külön boot partíciód van:
sudo mount /dev/sdYY /mnt/boot- Az sdYY helyére a /boot partíciód helyét add meg.
- Eszközök felcsatolása:
sudo mount --bind /dev/ /mnt/dev - Chroot-olj a rendes rendszer eszközödbe:
sudo chroot /mnt - GRUB 2 újratelepítése:
sudo grub-install /dev/sdX- Megjegyzés: Helyettesítsd be a megfelelő eszközt - sda, sdb, sdc.. Ne adj meg partíció számot.
- Ellenőrizd a telepítést:
sudo grub-install --recheck /dev/sdX- Megjegyzés: Helyettesítsd be a megfelelő eszközt - sda, sdb, sdc.. Ne adj meg partíció számot.
- Lépj ki a chroot-ból: CTRL-D
- Csatold le az eszközöket:
sudo umount /mnt/dev - Ha külön /boot partíciót csatoltál:
sudo umount /mnt/boot - Csatold le az utolsó eszközt:
sudo umount /mnt - Indítsd újra a géped.
- Linkek
Grub2 (help.ubuntu.com)
Grub 2 Title Tweaks
Grub 2 Introduction
Grub 2: A Guide for Users (from Kubuntu Forums)
https://wiki.ubuntu.com/KernelTeam/Grub2Testing
GNU Grub 2 Manual Links
GNU Grub 2 Manual (in development)
Grub 2 Wiki
Herman's Grub 2 Site Comprehensive
