Používáme GRUB


Souhrn

Instalace GRUBu snadno a rychle. Doplněk k referátu předneseném na Linuxovém semináři MFF UK.

Autorská práva

Copyright © 2000 Petr Čech

Tento text můžete distribuovat a modifikovat podle požadavků GNU General Public Licence verse 2.


Obsah


1. Proč GRUB?


Pro používán každého operačního systému ho musíme nejdříve spustit. Pro spuštění Linuxu se většinou používá program lilo, který naleznete v (asi) každé distribuci jako standardní nástoj pro spuštění. Lilo má však některá omezení a nejvetším z nich je, nutnost jej spustit po každé změně v jádře nebo případných spouštěcích volbách. Toto a další omezení odstraňuje grub.


2. Instalujeme GRUB


Nejjednoduší je nainstalovat přímo balík pro vaši distribuci. Pro uživatele Debianu je připraven jako balík. Balíček grub je ve versi 2.2 (potato) a samozřejmě i ve vývojové versi woody. Tam je novejší verse a vřele doporučuji použít ji. Pokud nemáte nebo nechcete používat balíček, zdrojové kódy naleznete na ftp://alpha.gnu.org/gnu/grub/ nebo v CVS na adrese :pserver:anoncvs@subversions.gnu.org:/cvs modul grub s prázdným heslem.

Programu používá GNU autoconf, takže přeložení by nemělo činit problém. Po nainstalování vytvořte adresář /boot/grub/ a skopírujte do něj soubory stage1 a stage2. Pokud hodláte více experimentovat s grubem, můžete zkopírovat také tzv. stage1.5 soubor, podle filesystému, na kterém se nachází stage2, typicky ext2 (e2fs_stage1.5), ale grub zvládá i reiserfs, fat, minix a ffs. To umožní změnit soubor stage2 bez spuštění grubu.


2.1. Instalace na disketu

Nainstalování grubu na disketu je velmi jednoduché. Stačí nakopírovat následujícím způsobem dva soubory.

     # cd /boot/grub
     # dd if=stage1 of=/dev/fd0 bs=512 count=1
     # dd if=stage2 of=/dev/fd0 bs=512 seek=1

Toto samozřejmě zničí obsah diskety. Nyní můžete grub kdykoli z této diskety nabootovat.


2.2. Instalace na disk

Ke korektnímu nainstalování na disk není od verse 0.5.93 potřeba nic jiného, než spustit grub a zadat (například) tyto příkazy:

     grub> root (hd0,4)    # == /dev/hda5
     grub> setup (hd0)     # == /dev/hda
     grub> quit

Toto nastaveni předpokládá, že máte Linux naistalovaný na /dev/hda5 a grub chcete umístit do MBR. Pouštěcí část lze samozřejmě umístit i do boot sektoru primary partition, nebo i logického disku. To ovšem předpokládá, že používáte ještě jiný boot-loader, který je schopen na takovém místě grub spustit. grub označuje disky trochu jinak než Linux. Popis naleznete v další části.

Pokud máte správně vytvořený konfigurační soubor menu.lst, bude při startu grubu načten a zpracován. Formát souboru a konfigurařní direktivy jsou popsány v dále.


3. Pojmenovávání disků a jiných zařízení


Diskety se označují (fd<číslo>), tedy téměř shodně s Linuxem.

Dalším zařízením, které grub podporuje je síť. Pokud grub nalezne podpoovanou síťovou kartu a povede se získání odpovědi z rarp/bootp/dhcp serveru, je k dispozici zařízení (nd).

Konečně pevné disky se označují jako (hd<číslo1>[,<číslo2>]), kde číslo1 je číslo disku podle BIOSu a volitelně číslo2 je označení partition (oddílu). Obě čísla se počítají od 0. Tedy např. /dev/hda3 je (hd0,2) a /dev/hda je (hd0). Seznam detekovaných disků lze získat při bootu, zadáním třeba root (hd a stiskem klávesy <TAB>.


4. Konfigurační soubor a jeho příkazy


Začněme trochu obsáhlejším příkladem:

     #
     # Boot menu configuration file
     #
     color white/blue blue/light-gray
     
     # standard location of configuration file and boot images
     root (hd0,4)
     
     # Boot automatically after 5 secs.
     timeout 5
     
     # By default, boot the first entry.
     default 0
     
     # Fallback to the second entry.
     fallback 1
     
     # Password for command line editing
     password s3kr3t
     
     # For booting Windows 98
     title Windows 98 boot menu
     root        (hd0,1)
     chainloader +1
     
     # For DOS booting
     title DOS
     root (hd0,0)
     chainloader +1
     
     # For booting Linux
     title  GNU/Linux 2.2.16
     kernel /boot/vmlinuz-2.2.16 root=/dev/hda5 reboot=warm

Význam jednotlivých voleb by měl být zřetelný z komentářů, ale přesto si je vysvětlíme. Pro detailnější popis konfigurace doporučuji přečíst info stránky dodávané s grubem.

Příkaz color nastavuje barvu bootovacího menu. Od verze 0.5.94 lze používat jména. V předchozích verzích se psala jen čísla. První složkou je barva popředí a za lomítkem je uvedena barva podkladu. Druhým parametrem je barva tzv. "klády", jinak také kurzoru na výběr položek.

Volba root říká, kde se mají hledat soubory s neuvedenou plnou cestou (bez (hdX,Y)).

Prodlevu před startem defaulní volby nastavíme příkazem timeout.

Příkazy default a fallback nastavují primární a žáložní volbu pro automatické spuštění. Prodleva se udává v sekundách.

Příkazem password zamezíte změně natavených parametrů při startu. Pokud vložíte správné heslo, bude uvolněna editace. Ve verzi 0.5.96 je rozšířena možnost zaheslování i na spuštění nastavené volby.

Příkaz title uvozuje vlastní definici položky v menu a její název. Následující příkazy až do dalšího příkazu title nebo do konce souboru patří k tomuto návěští. Asi nejdůležitějším příkazem, který se zde může nacházet je kernel. Tento příkaz říká, co se má spustit a s jakými parametry. Zde nutno podotknout, že grub automaticky přidává parametr mem= při spouštění Linuxového jádra, pokud již není uveden.

V dalším návěští vidíme použití příkazu root, který určuje oddíl, spolu s příkazem chainloader, který udává offset boot-loaderu v partition. Takto lze spustit prakticky kterýkoli operační systém, pokud má správně nastaven boot sektor.

Příkazy občasného použití - počkání po vybrání příkazu (pause), initrd pro určení startovacího ramdisku (jak jinak, že).


[ Obsah ] [ Linuxový seminář ]
Používáme GRUB
25. září 2000
Petr Čech cech@debian.org