[[obsah|Hlavní stránka]] ===== GRUB ===== {{:navody:48x48:devices:drive-harddisk.png }} //GRUB// (**Gr**and **U**nified **B**ootloader) je zavaděč operačního systému (//OS//). Zavaděč se aktivuje ihned po ukončení POST testu BIOSu a jeho úkolem je nakopírovat jádro //Linuxu// do paměti a spustit ho (předat mu řízení počítače). //GRUB// na rozdíl od standardního zavaděče umožňuje předat jádru parametry, umožňuje uživateli vybrat z více variant pomocí menu a umožňuje též položky menu upravovat, k čemuž používá vlastní interní //shell//. //GRUB// je v současné době nejrozšířenějším linuxovým zavaděčem, který vytlačil dříve populární a o něco jednodušší zavaděč //LILO//. Kromě //Linuxu// umožňuje spustit i jiné operační systémy, kde je nejčastější doplňující možností //MS Windows//. Za běžných okolností není potřeba do činnosti //GRUBu// zasahovat, protože je automaticky spuštěn preferovaný systém (viz kapitola [[grub#Změna výchozího OS v menu GRUB|Změna výchozího OS v menu GRUB]]). Avšak v případě potřeby (havárie systému, zapomenuté administrátorské heslo, ...) je to velmi silný nástroj, pomocí kterého můžete ovlivnit start počítače, resp. vybraného operačního systému. ==== Ovládání zavaděče GRUB ==== //GRUB// je zaveden do paměti při startu počítače jako první, hned po POST(([[http://en.wikipedia.org/wiki/Power-on_self-test]])) testech BIOSu((http://cs.wikipedia.org/wiki/BIOS)). Zobrazí se odpočet (obvykle nastavený na 3 vteřiny, viz kapitola [[grub#Nastavení časového limitu pro automatické spuštění]]). Tento odpočet je možné přerušit stiskem libovolné klávesy, po kterém se zobrazí menu. V menu lze pomocí kláves se šipkami vybrat libovolnou položku a stiskem klávesy //Enter// ji aktivovat, případně ji ještě před aktivací upravit pomocí interního //shellu//. **Poznámka:** Na obrazovce zavaděče je vždy uvedena nápověda. === Přidání parametru === Mezi hlavní úkoly //GRUBu// patří předávání parametrů jádru. Jednotlivé parametry jsou odděleny mezerami. Jádro tak při startu může změnit své chování (používá se při aktivaci experimentálních funkcí, při řešení problémů a podobně). Pokud jádro předanému parametru nerozumí, je ignorován, protože se může jednat o parametr, který bude zpracován až startovacími skripty. Přidání parametru můžete provést tak, že přerušíte odpočítávání //GRUBu//, vyberete příslušnou položku v menu, stiskněte klávesu ''a'' (**a**ppend, přidat), přidáte mezeru a doplňující parametr, takže celý řádek může vypadat takto: kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=c8f...57b rhgb quiet doplneny_parametr === Editace položky menu === Přerušte //GRUB// a stiskněte klávesu ''e'' (**e**dit). Následuje menu s výpisem, který je podobný následujícímu root (hd0,1) kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 ro root=UUID=c8f13..957b rhgb quiet initrd /boot/initrd-2.6.27.5-117.fc10.i686.img Najeďte na požadovaný řádek a opět stiskněte klávesu ''e''. Nyní můžete řádek editovat. Po ukončení editace stiskněte //Enter// a ''b'' (**b**oot). Tím systém nastartuje s pozměněnými parametry. === Trvalá změna v nastavení === Pokud si přejete některou volbu předávat jádru trvale, editujte soubor ''/boot/grub/menu.lst'', který jednotlivé položky menu obsahuje. === Start do textového režimu === Při startu přidejte jako doplňující parametr číslo ''3'' (oddělené od předchozích parametrů mezerou), postup viz výše. Pokud je při instalaci systému vybráno nějaké grafické prostředí, start systému automaticky předvolen na runlevel číslo 5, kdy je kromě klasických textových konzolí spuštěno i grafické prostředí //X Window System//, resp. jeho //X Display Manager//, který v grafické obrazovce žádá vstup přihlašovacího jména a hesla. Máte-li s grafickým prostředím problémy nebo jen chcete ušetřit paměť svého serveru, nechte aktivovat runlevel 3, kde je spuštěn jen //textový režim//, ve kterém se mezi jednotlivými textovými konzolemi můžete přepínat pomocí kláves ALT+F1 až ALT+F6. Pro aktivaci grafického rozhraní můžete na příkazový řádek zadat: init 5 Případně můžete systém restartovat příkazem ''reboot'' nebo stiskem kombinace kláves CTRL+ALT+DEL. === Start do jednouživatelského režimu === Při startu přidejte jako doplňující parametr číslo ''1'' (oddělené od předchozích parametrů mezerou), postup viz výše. V //jednouživatelském režimu// systém nastartuje do runlevelu 1, kde spustí pouze základní služby a neumožní přihlásit se více než jednomu uživateli (je aktivní jen jedna textová konzole). Není nutné se přihlašovat a automaticky je spuštěn //shell// superuživatele //root//. Jednouživatelský režim slouží jako nouzový pro opravu případných problémů (úprava konfiguračních souborů, změna administrátorského hesla apod.). Jednouživatelský režim můžete opustit jedním z níže uvedených příkazů (přechod do jiného runlevelu nebo restart): init 3 init 5 reboot ==== Změna předvolené položky v menu ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. V konfiguračním souboru ''menu.lst'' lze nastavit implicitní (výchozí) položku, která je automaticky aktivována po uplynutí nastaveného času bez zásahu uživatele. Uživatel může odpočet přerušit a vybrat jinou položku. Zazálohujeme původní konfiguraci a změníme řídící soubor: cp /boot/grub/menu.lst /boot/grub/menu.lst_backup gedit /boot/grub/menu.lst V souboru ''menu.lst'' nalezněte řádek ... default 0 ... Číslo, které následuje po ''default'' přepište na požadovanou hodnotu a soubor uložte. Toto číslo vyjadřuje pořadové číslo //OS// uvedeného v konfiguračním souboru ''menu.lst'' (číslování systémů opět začíná nulou). ==== Nastavení časového limitu ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. //GRUB// čeká stanovený časový limit na zásah uživatele a poté automaticky aktivuje předvolenou položku v menu. Následující postup popisuje nastavení tohoto časového limitu. cp /boot/grub/menu.lst /boot/grub/menu.lst_backup gedit /boot/grub/menu.lst V souboru //menu.lst// nalezněte následující řádek (číslo se může lišit). ... timeout 3 ... Číslo, které následuje po ''timeout'', přepište na požadovanou hodnotu a soubor uložte. ==== Vynucené zobrazení menu ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. Standardně nezobrazuje //GRUB// kompletní nabídku se všemi dostupnými //OS//, ale zobrazí pouze implicitně předvolenou položku. Nabídka všech položek menu se zobrazí teprve po stisku libovolné klávesy. Začínající uživatelé se tak domnívají, že jim //Fedora// "přepsala" původní //OS//. Jestliže chcete, aby //GRUB// zobrazoval kompletní nabídku //OS// automaticky, je třeba pozměnit konfigurační soubor ''menu.lst''. cp /boot/grub/menu.lst /boot/grub/menu.lst_backup gedit /boot/grub/menu.lst V souboru ''menu.lst'' nalezněte následující řádek ... hiddenmenu ... nahraďte ho řádkem ... #hiddenmenu ... a soubor uložte. ==== Přidání položky pro MS Windows ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[hardware#Vypsání tabulky rozdělení disku]]. * Přečtěte si kapitolu [[grub#Číslování dísků zavaděčem GRUB]]. Konfigurační soubor ''menu.lst'' by měl být již v rámci instalace //Fedory// nastaven tak, aby umožňoval spuštění //OS Windows//. Následující postup popisuje ruční přidání položky //OS Windows// do konfiguračního souboru.\\ Předpokládejme, že ''/dev/sda1'' je oddíl s nainstalovaným operačním systémem //Windows//. Nejprve vytvořte zálohu původního konfiguračního souboru ''menu.lst'' cp /boot/grub/menu.lst /boot/grub/menu.lst_backup a následně tento soubor otevřete pro editaci. gedit /boot/grub/menu.lst Na konec souboru ''menu.lst'' přidejte řádek title Microsoft Windows root (hd0,0) savedefault makeactive chainloader +1 a soubor uložte. ==== Změna grafického pozadí ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[grub#Konverze obrázku pro pozadí menu GRUB]]. * Přečtěte si kapitolu [[grub#Číslování dísků zavaděčem GRUB]]. Předpokládejme, že bootovací oddíl //Fedory// se nachází na disku ''/dev/sda1''. Grafické pozadí je možné stáhnout přímo z Internetu wget -c http://easylinux.info/uploads/fedora.xpm.gz chmod 644 fedora.xpm.gz popř. vytvořit z libovolného obrázku pomocí postupu uveřejněného v kapitole [[grub#Konverze obrázku pro pozadí menu GRUB]]. Dále je třeba vytvořit adresář ''/boot/grub/images/'', do kterého bude následně grafické pozadí přesunuto. mkdir /boot/grub/images Pak již pouze stačí přesunout soubor ''fedora.xpm.gz'' do adresáře ''/boot/grub/images/'' cp fedora.xpm.gz /boot/grub/images/ a modifikovat původní konfigurační soubor. Nejprve zazálohujte původní soubor ''menu.lst'' cp /boot/grub/menu.lst /boot/grub/menu.lst_backup a následně tento soubor otevřete pro editaci. gedit /boot/grub/menu.lst V kofiguračním souboru ''menu.lst'' nalezněte sekci ... # menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-doc/. ... pod tuto sekci přidejte následující řádek splashimage (hd0,0)/boot/grub/images/fedora.xpm.gz a soubor uložte. ==== Konverze obrázku pro pozadí ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[grub#Změna grafického pozadí menu GRUB]]. Předpokládejme, že obrázek, který má být překonvertován, je uložen v souboru ''wallpaper.png'' a výsledek konverze bude uložen v souboru ''fedora.xpm.gz''. convert -resize 640x480 -colors 14 wallpaper.png fedora.xpm && gzip fedora.xpm ==== Zákaz změny nastavení menu ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. V příkazové řádce spusťte grub nastavte šifrované heslo grub> md5crypt Password: ****** (Fedora) Encrypted: $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 (zakódované heslo) a opusťte //GRUB// grub> quit Zazálohujte soubor ''menu.lst'' cp /boot/grub/menu.lst /boot/grub/menu.lst_backup a otevřete jej pomocí textového editoru gedit /boot/grub/menu.lst V souboru ''menu.lst'' vložte na začátek následující řádek: password --md5 $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 (výše uvedené zakódované heslo) Pokud máte v souboru ''menu.lst'' sekci, která umožňuje spustit záchranný režim (recovery mode) v obdobné podobě, jako je uvedeno níže: ... title Fedora (2.6.27.5-117.fc10.i686) (recovery mode) root (hd0,1) kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 root=/dev/hda2 ro single initrd /boot/initrd-2.6.27.5-117.fc10.i686.img savedefault boot ... tak tuto sekci odstraňte nebo zakomentujte (přidejte na začátky řádků znak #): ... #title Fedora (2.6.27.5-117.fc10.i686) (recovery mode) # root (hd0,1) # kernel /boot/vmlinuz-2.6.27.5-117.fc10.i686 root=/dev/hda2 ro single # initrd /boot/initrd-2.6.27.5-117.fc10.i686.img # savedefault # boot ... Uložte soubor ''menu.lst''. ==== Změna hesla zavaděče GRUB v případě, že jste zapomněli původní heslo ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. V příkazové řádce spusťte grub nastavte šifrované heslo grub> md5crypt Password: ****** (Fedora) Encrypted: $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 (zakódované heslo) a opusťe //GRUB// grub> quit Zazálohujte soubor ''menu.lst'' a otevřete jej v textovém editoru cp /boot/grub/menu.lst /boot/grub/menu.lst_backup gedit /boot/grub/menu.lst V souboru ''menu.lst'' najděte řádek ... password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/ (staré zakódované heslo) ... nahraďte ho řádkem ... password --md5 $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 (nové výše uvedené zakódované heslo) ... a soubor uložte. ==== Obnovení zavaděče GRUB po instalaci Windows ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[oprava#Použití instalačního DVD k záchranným pracem na systému]]. * Přečtěte si kapitolu [[hardware#Vypsání tabulky rozdělení disku]]. Předpokládejme, že bootovací oddíl se nachází na disku ''/dev/sda''((Pokud máte v systému pouze jeden disk, je tento disk zcela jistě označen jako ''sda''.)). Nejprve je třeba s použitím instalačního //DVD// nabootovat do [[oprava#Použití instalačního DVD k záchranným pracem na systému|záchranného režimu]]. Zavaděč obnovíte pomocí příkazu grub-install /dev/sda Následně stačí pouze dvakrát po sobě stisknout klávesy //Ctrl + D//, což má za následek restart počítače. ==== Číslování disků zavaděčem GRUB ==== * Přečtěte si kapitolu [[hardware#Disky a mechaniky CD/DVD]]. //GRUB// používá označení disků odlišné od značení popisovaného v kapitole [[hardware#Disky a mechaniky CD/DVD]]. Např. disk ''sda1'' je pro účely zavaděče //GRUB// označován jako ''(hd0,0)'', disk ''sdb2'' pak jako ''(hd1,1)''. Logika označování je tedy ta, že první parametr je pořadovým číslem disku, druhý je pořadovým číslem diskového oddílu, přičemž číslovaní začíná od 0. ==== Reinstalace zavaděče GRUB ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[grub#Číslování disků zavaděčem GRUB]]. **Zdroj:** [[https://www.redhat.com/archives/fedora-list/2006-October/msg00976.html|Recovery from a screwed MBR (Install GRUB)]] **Poznámka:** Tento postup je také možné použít k správnému nastavení zavaděče //GRUB// při instalaci. Klasickým případem je situace, kdy se na prvním disku nachází //Windows// a na druhý jste nainstalovali //Fedoru//. V tomto případě Vám po instalaci zavaděč nastartuje pouze do shellu ''grub>''. Nabootujte z //DVD// do [[navody:zachranny_mod|záchranného módu]] a postupujte podle uvedeného návodu (síť není zapotřebí). Po té, co záchranné //DVD// nalezne //Fedoru//, stiskněte //OK//. Nepoužívejte příkaz ''chroot'' k získání práv superuživatele pro nalezenou instalaci. Spusťte //GRUB// příkazem grub Pokud je adresář ''/boot'' součástí kořenového adresáře (tj. není umístěn na samostatném diskovém oddílu), pokračujte find /boot/grub/stage1 V opačném případě zadejte do příkazové řádky find /grub/stage1 //GRUB// vám "odpoví" označením diskového oddílu, na kterém se nachází((Jestliže se např. nachází na prvním diskovém oddílu prvního disku, bude na výpisu figurovat ''(hd0,0)''.)). Nastavte kořenový svazek systému pro //GRUB// na diskový oddíl, který jste získali v předchozím kroku. root (hd0,0) Zapište //MBR// na první disk setup (hd0) **Poznámka:** //GRUB// vypíše řadu informací, které můžete ignorovat. Vyjměte instalační //DVD// z mechaniky a restartujte počítač. ==== Odstranění zavaděče GRUB ==== * Přečtěte si kapitolu [[obecne_poznamky|Obecné poznámky]]. * Přečtěte si kapitolu [[hardware#Vypsání tabulky rozdělení disku]]. Zavaděč systému (v tomto případě //GRUB//) není možné zcela odstranit - vždy musí být nahrazen jiným. Pokud chcete místo //GRUB//u používat //LILO// (**LI**nux **LO**ader), který ve //Fedoře// již není defaultně obsažen, nadefinujte jeho parametry v ''/etc/lilo.conf'' a spusťte příkaz lilo z příkazové řádky.\\ Pokud chcete nahradit //GRUB// zavaděčem systému //MS-DOS//, pak nastartujte z diskety //MS-DOS// a do příkazové řádky zadejte A:> fdisk /mbr Pokud chcete nahradit //GRUB// zavaděčem systému //NTLDR Windows XP//, pak nastartujte z instalačního //CD Windows XP// do záchraného módu a zadejte fixmbr Tím se zavaděč //GRUB// přepíše zavaděčem //NTLDR// a //GRUB// nebude nadále používán. **Poznámka:** Pokud odstraňujete z disku s více operačními systémy linuxovou instalaci, nejdříve nahraďte //GRUB// a pak teprve odstraňujte //Linux//ový diskový oddíl. ---- [[obsah|Hlavní stránka]]