Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Poznejte boot loader GRUB2

Boot loader GRUB je z mnoha důvodů mezi linuxovými uživateli a distributory velmi oblíbený. Velké distribuce postupně přecházejí na druhou verzi, která je ale co do správy podstatně jiná a komplexnější. Mnoho uživatelů tedy hledá staré konfigurační soubory tam, kde nejsou. Jak se nový GRUB spravuje?

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

GRUB byl původně vyvíjen v rámci projektu Hurd, tedy přímo pod iniciativou GNU. Od roku 1999 je to oficiální boot loader projektu GNU a postupně jej převzaly všechny velké distribuce. Proti zavaděči LILO, který byl používán dříve, je GRUB výrazně mocnější, rozumí obsahu souborového systému a umí proto dynamicky načítat konfiguraci při startu nebo je možné jej dodatečně konfigurovat už za běhu.

Původní první řada (nejnovější je verze 0.97) je dnes označována jako GRUB Legacy a už není nadále vyvíjena. Vývojáři do ní budou jen přidávat opravy chyb, ale další vývoj se zaměřuje na GRUB2. Současná verze nese označení 1.97.2. Dvojková řada se z uživatelského hlediska od té první výrazně liší. Cílem článku je tyto rozdíly představit a vysvětlit principy novější řady. Část distribucí už na novou verzi přešla.

Anketa

Kterou řadu GRUB máte nainstalovanou?

       

Proč GRUB2?

GURB2 je logickým pokračovatelem první řady, jedná se ale o kompletní přepis původního kódu s cílem přinést robustnější, modulární a mocnější nástroj. Hlavní novinky můžeme shrnout do několika bodů:

  • podpora ne-x86 platforem
  • podpora lokalizace
  • možnost zobrazení ne-ASCII znaků
  • podpora modulů
  • vylepšená správa paměti
  • vlastní skriptovací jazyk
  • přesun platformně závislého kódu do modulů

Zmíněné moduly naleznete v adresáři /boot/grub a obvykle mají jen několik málo kilobajtů. Mají příponu .mod a v konfiguračním souboru se volají příkazem insmod. Naleznete tu například podporu pro png či tga obrázky pozadí, ovladač pro čtení ze souborových systému etx2, ZFS, NTFS a dalších. V mém Debianu je modulů celkem 158.

Důležitý je také důraz na automatickou konfiguraci zavaděče. Zatímco dříve různé aplikace parsovaly centrální konfigurační soubor, dnes je vše prováděno na úrovni automatických skriptů a modulů. To je také hlavní kámen úrazu u uživatelů, kteří nemají s novou verzí zkušenosti. Stará pravidla zde neplatí a vše je zcela jinak.

Konec ruční editace

Původní GRUB byl konfigurovatelný pomocí standardního textového souboru, který se nacházel v /boot/grub/menu.lst. V něm byla uložena celá konfigurace zavaděče a odtud ji také při každém startu natahoval. Tento soubor se nadále nepoužívá a nahradil jej soubor /boot/grub/grub.cfg. Podstatný rozdíl je, že tento nový soubor už se ručně needituje.

O jeho vygenerování se starají specializované utility, především update-grub2. To je ovšem jen zástupce pro zpětnou kompatibilitu, který doopravdy spouští příkaz update-grub. Aby toho ale nebylo málo, poslední jmenovaný skript je velmi jednoduchý a vlastně jen zavolá následující příkaz:

# grub-mkconfig -o /boot/grub/grub.cfg

Tím spouštíme skript, který začně automaticky na základě jiných souborů generovat finální konfiguraci. Pokud si chcete jeho funkčnost vyzkoušet „nanečisto“, můžete vynechat parametr -o a výstup se bude objevovat na obrazovce.

Odkud se berou podklady

Podklady pro tvorbu konfigurace se sbírají z několika zdrojů. Především se jedná o soubor /etc/default/grub a skripty v adresáři /etc/grub.d/. To je také způsob, jak mohou nově nainstalované balíky přidat položku do menu GRUB. Prostě jen přidají svůj skript do adresáře /etc/grub.d/. Vezmeme to ale postupně.

Už zmíněný soubor /etc/default/grub obsahuje základní globální konfigurace zavaděče. Zde je možné ručně nastavit, která položka bude po startu standardně zvolena, kolik sekund bude GRUB čekat na uživatelský vstup a podobně. Také zde ovlivňujeme některé skripty, které například nemusejí generovat položky s „recovery“ režimem a podobně. Tento soubor je určen pro ruční editaci.

To nejdůležitější se ukrývá v adresáři /etc/grub.d/. Jsou to spustitelné bash skripty, které utilita update-grub postupně spouští. Skripty začínají číslem (podobně jako init skripty) a jsou automaticky spouštěny ve správném pořadí. Čísla nejsou volena náhodně, ale mají vlastní pravidla:

  • 00 je rezervováno pro generování hlavičky z konfiguračního souboru
  • 10 hlavní bootovací položky
  • 20 aplikace třetích stran

Pokud tedy nainstalujete například utilitu Memtest, balíček kromě samotného programu dodá také skript 20_memtest, který se při spuštění postará o nezbytné akce a předá generátoru konfigurace informace pro další položku v GRUB menu. Skripty jsou jednoduše spouštěny a výstup vypisují na standardní výstup. Můžeme si tak zkusit skript ručně spustit:

$ ./20_memtest86
Found memtest86 image: /memtest86.bin
menuentry "Memory test (memtest86)" {
    linux16 /memtest86.bin
}

Vidíte, že skript našel obraz s aplikací Memtest a vygeneroval novou položku pro GRUB. Následující výstup by byl při normálním provozu zapsán do souboru  /boot/grub/grub.cfg.

Pokud chcete přidat vlastní položky menu, máte dvě možnosti: buďto si napíšete celý vlastní skript nebo můžete využít souboru 40_custom, který je standardně prázdný a je určen právě pro uživatele. Skript může být velmi jednoduchý, nemusí nic kontrolovat, jen může prostě vypsat to, co byste postaru vepsali do konfiguračního souboru. Nezapomeňte, že se skripty spouštějí vždy ve stejném pořadí, tím můžete ovlivňovat také to, jak bude poskládána výsledná konfigurace.

Co dělají standardní skripty

V každé distribuci jsou k dispozici jiné standardní grub.d skripty, jejich funkce je ale obvykle podobná. Soubor 00_header sleduje obsah souboru /etc/default/grub a na jeho základě vytvoří základ konfigurace. U mě v Debianu (a v Ubuntu také) následuje soubor 05_debian_theme, který nastavuje vzhled zavaděče. Zde se vybírá obrázek pro pozadí a barvičky fontů. Důležitý skript 10_linux prohledá disk, najde všechna linuxová jádra a vytvoří pro ně položky v menu, případně i položky s (recovery), pokud jsme mu to dříve nezakázali.

TIB2012

       

Dále u mě následuje zmíněný skript 20_memtest86 následovaný 20_memtest86+, pro jinou verzi Memtestu. Jak vidíte, dva různé programy zde nijak nekolidují, každý si jednoduše dodal svůj vlastní skript a nakonec se provádějí oba. V menu jsou pak položky pro obě aplikace. Předposlední skript 30_os-prober se stará o hledání dalších operačních systému (třeba Windows) a jejich zařazení do zavaděče a konečně poslední 40_custom slouží pro přidání uživatelských položek. Počet skriptů v adresáři se může samozřejmě lišit v závislosti na distribuci a nainstalovaných balíčcích.

Závěrečné shrnutí

Cílem článku bylo vysvětlit principy konfigurace nové verze zavaděče GRUB2, se kterou ještě nemá většina uživatelů zkušenosti. Jelikož se změnil a zkomplikoval celý koncept nastavování, jsou uživatelé často zmatení z toho, že na disku nenacházejí obvyklý konfigurační soubor a tápou při hledání toho, kde se ten nový nachází. GRUB2 je velmi mocným a silně konfigurovatelným nástrojem, se kterým se ale většina uživatelů musí teprve sžít. Stále však platí to, co zaznělo před šesti lety na OpenWeekendu: Co nejde nabootovat Grubem… to nejde nabootovat.

Petr Krčmář

Petr Krčmář

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Vystudoval elektroniku se zaměřením na počítačové systémy, nyní se zabývá médii, především těmi elektronickými.

Školení: TCP/IP na Linuxu I.

V tomto kurzu se seznámíte se síťováním v Linuxu na všech vrstvách. Ujasníte si možnosti použití Linuxu v roli klienta, serveru i routeru.

  • Počítačové sítě
  • Architektura TCP/IP
  • Ethernet
  • Protokol PPP
  • Protokoly IPv4 a IPv6
  • IP na ethernetu
  • IP routing
  • Chybové a řídící zprávy
  • Transportní protokoly
  • Překlady jmen a adres
  • Aplikace
  • Překlady síťových adres a proxying
  • Testování sítě
  • Aktuální situace na poli TCP/IP

Podrobnější informace a přihláška  

Ohodnoťte jako ve škole:
Průměrná známka 2,79

Přehled názorů

Jak to vypnout?
Kos 11. 2. 2010 00:28
Nový
├ 
Re: Jak to vypnout?
gilhad 11. 2. 2010 00:44
Nový
│
└ 
Re: Jak to vypnout?
Petr Nesnidal 11. 2. 2010 10:10
Nový
├ 
Re: Jak to vypnout?
bery 11. 2. 2010 01:34
Nový
│
└ 
Re: Jak to vypnout?
Xjmeno363 11. 2. 2010 09:09
Nový
│
 
└ 
Re: Jak to vypnout?
jaromrax 7. 2. 2011 17:10
Nový
│
 
 
├ 
Re: Jak to vypnout?
renergy 28. 2. 2011 15:31
Nový
│
 
 
└ 
Re: Jak to vypnout?
renergy 28. 2. 2011 18:03
Nový
└ 
Re: Jak to vypnout?
neldor 11. 2. 2010 18:18
Nový
 
├ 
Re: Jak to vypnout?
Petr Krčmář 11. 2. 2010 19:00
Nový
 
│
├ 
Re: Jak to vypnout?
mcx 11. 2. 2010 21:15
Nový
 
│
└ 
Re: Jak to vypnout?
Eugene 12. 2. 2010 07:00
Nový
 
│
 
└ 
Re: Jak to vypnout?
Xjmeno363 17. 9. 2010 15:43
Nový
 
└ 
Re: Jak to vypnout?
lolo 12. 2. 2010 09:48
Nový
Grub2
x 11. 2. 2010 01:06
Nový
└ 
RHGB
Yenya 12. 2. 2010 10:12
Nový
 
└ 
Re: RHGB
koroptev 15. 2. 2010 14:01
Nový
 
 
└ 
Re: RHGB
Yenya 16. 2. 2010 10:43
Nový
 
 
 
└ 
Re: RHGB
koroptev 3. 3. 2010 16:31
Nový
Zase dalsi blbost
Hulka 11. 2. 2010 02:07
Nový
├ 
Re: Zase dalsi blbost
??? 11. 2. 2010 02:27
Nový
│
└ 
Re: Zase dalsi blbost
Simi 11. 2. 2010 02:40
Nový
│
 
└ 
Re: Zase dalsi blbost
sdfgh 11. 2. 2010 09:22
Nový
│
 
 
└ 
Re: Zase dalsi blbost
PavelM 11. 2. 2010 15:00
Nový
│
 
 
 
├ 
Re: Zase dalsi blbost
xurfa 11. 2. 2010 15:19
Nový
│
 
 
 
│
├ 
Re: Zase dalsi blbost
sdfgh 11. 2. 2010 18:24
Nový
│
 
 
 
│
├ 
Re: Zase dalsi blbost
paf1 16. 2. 2010 17:06
Nový
│
 
 
 
│
└ 
Re: Zase dalsi blbost
Kaacz 7. 2. 2011 12:04
Nový
│
 
 
 
└ 
Re: Zase dalsi blbost
redyuri 11. 2. 2010 23:32
Nový
└ 
Re: Zase dalsi blbost
vd 11. 2. 2010 09:32
Nový
 
├ 
Re: Zase dalsi blbost
EuGenio 11. 2. 2010 09:40
Nový
 
│
├ 
Re: Zase dalsi blbost
tim kutil taylor 11. 2. 2010 09:53
Nový
 
│
│
└ 
Re: Zase dalsi blbost
EuGenio 11. 2. 2010 12:14
Nový
 
│
└ 
Re: Zase dalsi blbost
Ganimoth 11. 2. 2010 09:57
Nový
 
├ 
Re: Zase dalsi blbost
gilhad 11. 2. 2010 23:55
Nový
 
└ 
Re: Zase dalsi blbost
jaromrax 7. 2. 2011 17:15
Nový
Co nejde nabootovat GRUBem...
rcs-34 11. 2. 2010 06:52
Nový
├ 
Re: Co nejde nabootovat GRUBem...
finn 11. 2. 2010 09:04
Nový
│
└ 
Re: Co nejde nabootovat GRUBem...
Petr Krčmář 11. 2. 2010 09:44
Nový
│
 
├ 
Re: Co nejde nabootovat GRUBem...
ondra.novacisko.cz 11. 2. 2010 10:07
Nový
│
 
│
└ 
Re: Co nejde nabootovat GRUBem...
Zdenek - 11. 2. 2010 20:08
Nový
│
 
│
 
└ 
Re: Co nejde nabootovat GRUBem...
JirkaS 12. 2. 2010 11:56
Nový
│
 
│
 
 
└ 
Re: Co nejde nabootovat GRUBem...
Sten 13. 2. 2010 02:55
Nový
│
 
├ 
Re: Co nejde nabootovat GRUBem...
ByCzech 11. 2. 2010 12:10
Nový
│
 
│
├ 
Re: Co nejde nabootovat GRUBem...
Skudlik 11. 2. 2010 16:28
Nový
│
 
│
└ 
Re: Co nejde nabootovat GRUBem...
phoenix 15. 2. 2010 16:43
Nový
│
 
├ 
Re: Co nejde nabootovat GRUBem...
hm 11. 2. 2010 12:13
Nový
│
 
│
└ 
Re: Co nejde nabootovat GRUBem...
ByCzech 11. 2. 2010 12:23
Nový
│
 
│
 
└ 
Re: Co nejde nabootovat GRUBem...
Petr Krčmář 11. 2. 2010 19:01
Nový
│
 
├ 
Re: Co nejde nabootovat GRUBem...
BLEK. 11. 2. 2010 16:06
Nový
│
 
│
├ 
Re: Co nejde nabootovat GRUBem...
Zdenek - 11. 2. 2010 20:12
Nový
│
 
│
└ 
Re: Co nejde nabootovat GRUBem...
Sten 12. 2. 2010 01:38
Nový
│
 
│
 
└ 
Re: Co nejde nabootovat GRUBem...
BLEK. 13. 2. 2010 18:48
Nový
│
 
└ 
pouzivam LILO
klusacek 14. 2. 2010 16:46
Nový
├ 
Re: Co nejde nabootovat GRUBem...
Eduard DRUSA 11. 2. 2010 09:12
Nový
└ 
Re: Co nejde nabootovat GRUBem...
wondra 11. 2. 2010 09:39
Nový
Je to opravdu tak?
konecny 11. 2. 2010 06:57
Nový
Už to umí bootovat z CD/DVD?
Inkvizitor 11. 2. 2010 06:58
Nový
├ 
Re: Už to umí bootovat z CD/DVD?
koroptev 11. 2. 2010 12:47
Nový
│
└ 
Re: Už to umí bootovat z CD/DVD?
Stanislav Hoferek 11. 2. 2010 15:19
Nový
└ 
Re: Už to umí bootovat z CD/DVD?
BLEK. 11. 2. 2010 16:10
Nový
 
└ 
Re: Už to umí bootovat z CD/DVD?
Inkvizitor 11. 2. 2010 19:13
Nový
Musím se smát
Praclovek 11. 2. 2010 07:50
Nový
├ 
Re: Musím se smát
festr 11. 2. 2010 10:20
Nový
│
└ 
Re: Musím se smát
Praclovek 11. 2. 2010 11:05
Nový
│
 
└ 
Re: Musím se smát
gfsdfsdfsdfsdfsdsadfsad…sadfsadf 11. 2. 2010 16:16
Nový
│
 
 
├ 
Re: Musím se smát
Jarda 11. 2. 2010 17:14
Nový
│
 
 
│
└ 
Re: Musím se smát
Hobil 15. 2. 2010 10:43
Nový
│
 
 
└ 
Re: Musím se smát
Kaacz 7. 2. 2011 12:21
Nový
└ 
Re: Musím se smát
Zdenek - 11. 2. 2010 20:18
Nový
 
├ 
Re: Musím se smát
koroptev 15. 2. 2010 13:56
Nový
 
└ 
Re: Musím se smát
Kaacz 7. 2. 2011 12:28
Nový
Grub a Ext4
okwe 11. 2. 2010 08:04
Nový
└ 
Re: Grub a Ext4
Juli 11. 2. 2010 14:52
Nový
Grub2
daks 11. 2. 2010 08:55
Nový
├ 
Re: Grub2
Radovan Garabík 11. 2. 2010 09:16
Nový
├ 
Re: Grub2
EuGenio 11. 2. 2010 09:28
Nový
│
└ 
Re: Grub2
daks 11. 2. 2010 09:46
Nový
└ 
Re: Grub2
WWWWWWWWWWWWWWWWWWWWWWW…WWWWWWWW 11. 2. 2010 16:18
Nový
grub2 je fajn
alblaho 11. 2. 2010 08:58
Nový
├ 
Re: grub2 je fajn
tom 11. 2. 2010 09:14
Nový
├ 
Re: grub2 je fajn
Xjmeno363 11. 2. 2010 09:15
Nový
└ 
Re: grub2 je fajn
Ondra 11. 2. 2010 09:18
Nový
Pohroma jménem GRUB2
EuGenio 11. 2. 2010 09:19
Nový
├ 
Re: Pohroma jménem GRUB2
Praclovek 11. 2. 2010 10:13
Nový
└ 
Re: Pohroma jménem GRUB2
ByCzech 11. 2. 2010 12:22
Nový
 
├ 
Re: Pohroma jménem GRUB2
mirobor 11. 2. 2010 13:13
Nový
 
└ 
Re: Pohroma jménem GRUB2
Sten 12. 2. 2010 01:46
Nový
 
 
└ 
Re: Pohroma jménem GRUB2
mizar 12. 2. 2010 02:19
Nový
 
 
 
├ 
Re: Pohroma jménem GRUB2
Vincek 15. 2. 2010 18:05
Nový
 
 
 
└ 
Re: Pohroma jménem GRUB2
Kaacz 7. 2. 2011 12:36
Nový
zmente anketu
hehe 11. 2. 2010 09:27
Nový
neumi zaheslovat konfiguraci
Polish 11. 2. 2010 09:27
Nový
├ 
Re: neumi zaheslovat konfiguraci
ByCzech 11. 2. 2010 11:56
Nový
└ 
Re: neumi zaheslovat konfiguraci
Xjmeno363 12. 2. 2010 07:39
Nový
jako u MS
Mi. Chal. 11. 2. 2010 09:49
Nový
└ 
Re: jako u MS
Hulka 11. 2. 2010 11:48
Nový
Re: Poznejte boot loader GRUB2
Ravensun 11. 2. 2010 09:52
Nový
└ 
Re: Poznejte boot loader GRUB2
IIIIIIIIIIIIIIIIIIIIIII…IIIIIIII 11. 2. 2010 16:23
Nový
Zatím GRUB legacy
bman 11. 2. 2010 09:56
Nový
startup manager
rastakajakwanna 11. 2. 2010 09:59
Nový
Syslinux rules
Ondřej Caletka 11. 2. 2010 10:29
Nový
grub2 plus minus
r0b0 11. 2. 2010 10:30
Nový
├ 
Re: grub2 plus minus
aiR 11. 2. 2010 12:50
Nový
│
└ 
Re: grub2 plus minus
Sten 12. 2. 2010 02:00
Nový
├ 
Re: grub2 plus minus
Iny 12. 2. 2010 10:50
Nový
│
└ 
Re: grub2 plus minus
Pev 19. 3. 2010 07:49
Nový
├ 
Re: grub2 plus minus
bitsmith 13. 2. 2010 03:07
Nový
└ 
Re: grub2 plus minus
Kaacz 7. 2. 2011 12:48
Nový
Díky
Michal Breškovec 11. 2. 2010 11:07
Nový
Grub
. 11. 2. 2010 11:49
Nový
Tucne pismo
Jirka 11. 2. 2010 12:17
Nový
Grub2
mooi 11. 2. 2010 12:44
Nový
Alternativa k "lilo -R"
P. 11. 2. 2010 12:49
Nový
└ 
Re: Alternativa k "lilo -R"
David Šmíd 11. 2. 2010 13:56
Nový
windows po linuxe...
Mato Rachela 11. 2. 2010 15:59
Nový
└ 
Re: windows po linuxe...
Zdenek - 11. 2. 2010 20:32
Nový
A jak ho lze nakonfigurovat odjinud ???
libcha 11. 2. 2010 16:00
Nový
naštěstí návodů jak odinstalovat GRUB2
pavel dopita 12. 2. 2010 09:30
Nový
Vyvojovy model :-(
Yenya 12. 2. 2010 10:22
Nový
No to mě nasralo!
Polevka 12. 2. 2010 19:06
Nový
└ 
Re: No to mě nasralo!
Polevka 12. 2. 2010 19:35
Nový
 
└ 
Re: No to mě nasralo!
Polevka 13. 2. 2010 12:58
Nový
default OS nestartuje automaticky
beedo 13. 2. 2010 20:05
Nový
Nainstaloval
jáá 14. 2. 2010 14:59
Nový
GRUB2 & PXE (etherboot)?
me 16. 2. 2010 23:48
Nový
GRUB2 & CD/DVD/FD?
me 17. 2. 2010 00:05
Nový
Pochvala
Kibo 20. 2. 2010 11:26
Nový
Jak je to v jiných distribucích
Pev 19. 3. 2010 07:53
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem