- 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 -v
Valami 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-grub
parancsot.
- 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-grub
parancs 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.
- 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-grub2
vagy az update-grub
parancs rootként történű futtatásával frissíthető.
- Alapértelmezetten, illetve ha bármikor lefut az
update-grub2
parancs, 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 ###
- /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.
- 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.
- /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.
- 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.
- 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:
- 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 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.cfg
Megjegyzés: Ez a fájl vissza lesz állítva csak olvasható állapotba, amint lefut az update-grub parancs.
- 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.
- 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.
- 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.
- 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.html
Azonban, 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
- 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á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).
- Futtasd az
update-grub
parancsot rootként, hogy az új beállítások hozzá legyenek azva a /boot/grub/grub.cfg fájlhoz
- 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
- GRUB 2 eltávolítása
- GRUB 0.97 telepítése
- 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:
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:
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