GRUB

<small>Z PVwiki</small>

Obsah

GRUB

Asi nejčastěji hledaným postupem bude GRUB#Reinstalace zavaděče GRUB

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 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(([[1]])) 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

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

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

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 Debian "přepsal" 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 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.

Zákaz změny nastavení menu

V příkazové řádce spusťte

 grub

nastavte šifrované heslo

 grub> md5crypt
 Password: ****** (Debian)
 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 Debian (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 Debian (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

V příkazové řádce spusťte

 grub

nastavte šifrované heslo

 grub> md5crypt
 Password: ****** (Debian)
 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ř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 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 =

GRUB používá označení disků odlišné od značení běžného v Linuxu (hda hdc sdb...) . 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 GRUB#Číslování disků zavaděčem 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 Linux. V tomto případě Vám po instalaci zavaděč nastartuje pouze do shellu grub>.

Nabootujte z DVD do záchranného módu a postupujte podle uvedeného návodu (síť není zapotřebí).

Po té, co záchranné DVD nalezne Linux, 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 =

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 GRUBu používat LILO (**LI**nux **LO**ader), který v Debianu 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 Linuxový diskový oddíl.


Čerpáno z http://wiki.fedora.cz a dalších zdrojů


Hlavní stránka

Osobní nástroje