Portál AbcLinuxu, 2. července 2025 03:48

Řešení potencionálních problémů při upgrade grub2

24.5.2012 08:35 | Přečteno: 1474× | Za vším hledej Linux | Výběrový blog | poslední úprava: 24.5.2012 09:56

Včera jsem po nějakém čase aktualizoval jeden ze strojů. Mimo jiné se zaktualizoval i GRUB2, a tak jsem zkusil, zda-li již konečně jeho vývojáři pořešili fatální problém při sestavení core.img, pokud je systém postaven nad více než jednou vrstvou. Jak se zdá - tak stále NE. Přitom jsem jim o problému a způsobu jako ho řešit psal již před dvěma lety. Inu, asi mají jinou strategii. Takže tento blogpost bude o tom, jak řeším situaci se špatně sestaveným grubem.

V situaci, kdy máte v zaváděcím sektoru nainstalován grub sestavený tak, že postrádá modul na kterém je závislá vrstva na níž leží váš systém, nezbývá než použít externí bootovací médium. Dnes připadá do úvahy prakticky již pouze zařízení připojené přes USB. Což může být externí CD mechanika, nebo USB klíčenka.

USB klíčenka a GRUB2

U velkokapacitních USB klíčenek nejspíš narazíte na to, že z nich stroje odmítají nabootovat. Takže je pro tento účel lepší použít nějakou starou USB klíčenku. Je-li problém pouze ve špatně sestaveném grubu, tak bohatě postačí aby byl na ní nainstalován pouze GRUB2, přes který bude možné stroj nabotovat a opravu následně provést z vlastního systému. A ten nezabírá ani 3MB.

Instalace GRUB2 na klíčenku

Většina klíčenek má na sobě minimálně jeden diskový oddíl, naformátovaný na souborový systém FAT, který začíná na 62 sektoru. To však může být pro jádro GRUB2 s některými moduly poměrně málo. Proto je lepší původní rozdělení takového disku zrušit a přerozdělit jej znovu, tak aby první oddíl začínal až od sektoru 2048. Můžete také narazit i na klíčenky, které žádné diskové oddíly nemají a souborový systém je umístěn rovnou na zařízení. Takovou klíčenku by bez toho, aniž by na ní byl vytvořen logický disk nelze vůbec použít.

Předpokládám, že práci s fdiskem zvládá kdejaký ňouma, a navíc zde existuje slušný návod jak nainstalovat na USB klíčenku GRUB2 a SLAX, tudíž se nebudu moc rozmazávat. Jenom bych podotknul že na nastavení návěští souborového systému logického oddílu může být závislé pojmenování automaticky vytvářeného přípojného bodu.

Co je důležité

Aby byl GRUB2 schopen načítat další moduly, musí být schopen při startu:

To by mělo v zásadě stačit. Já osobně ještě přidávám modul minicmd, který zvyšuje komfort práce v prostředí příkazové řádky GRUB2. A lze si vytvořit i nějaký defaultní soubor grub.cfg

Jen pro úplnost přidávám příkaz, kterým dělám instalaci na USB klíčenku, která se v systému hlásí jako zařízení /dev/sdb, připojenou do bodu /media/SYSREC.

grub-install --boot-directory /media/SYSREC \
--modules="biosdisk part_msdos fat minicmd" \
/dev/sdb

Po (úspěšné) instalaci klíčenku korektně odmountujeme, a při novém připojení ji lze rovnou pomocí QEMU vyzkoušet jak funguje:

qemu -hdd /dev/sdb

Zajímá-li vás, jaké další moduly lze přidat a jak to vlastně je na tom disku uspořádáno, odkazuji na manuálové stránky pro GRUB2 v naší wiki

Oprava instalace GRUB2

Po nabootování systému opravím instalaci zavaděče následujícím příkazem:

grub-mkimage -o /boot/grub/core.img \
-O i386-pc -p "(data-system)/boot/grub" \
biosdisk part_msdos mdraid1x lvm reiserfs minicmd; \
grub-setup /dev/sda; \
grub-setup /dev/sdb

V prvním kroku se vytvoří soubor core.img s moduly, které mi aktivují nejprve SW MD raid, nad ním pak LVM skupinu a ovladač pro její souborový systém, který umožní přístup k dalším modulům. V dalším kroku se pak tento core.img nacpe do zaváděcí části obou disků, ze kterých je sestaven SW raid. Pro to aby to fungovalo by pochopitelně stačil i jeden z nich, ale nikdy nemůžete vědět, který z nich půjde pryč.

       

Hodnocení: 88 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

24.5.2012 09:20 Potent
Rozbalit Rozbalit vše Řešení potencionálních problémů při upgrade grub2
Odpovědět | Sbalit | Link | Blokovat | Admin
potenciálních
24.5.2012 09:27 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Mám kontrovat patvarem - česko?
David Watzke avatar 24.5.2012 09:31 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
To přece vychází ze slova potencionál, ne asi.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
24.5.2012 09:42 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Přípustné jsou oba tvary. Pan Potent je očividně purista.
24.5.2012 10:36 Potent
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
No a taky že jo! Tak jsem se něčemu přiučil. A purista fakt nejsem. PS: Zní to jako anální.
24.5.2012 10:49 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Zdroj? Potencionál jsem slyšel vždy jen od neznalých. "ergonometrie" je podobný případ.
David Watzke avatar 24.5.2012 13:41 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Zdroj. Taky čumím :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
24.5.2012 22:00 jekub
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
V tom případě bych u IT specialisty předpokládal použití kratšího :-)
24.5.2012 10:38 reb
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Odpovědět | Sbalit | Link | Blokovat | Admin
Co přesně má GRUB2 za problém? "problém při sestavení core.img, pokud je systém postaven nad více než jednou vrstvou" toho moc neřekne.
24.5.2012 13:02 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Co předpokládá instalační skript GRUB2...

Fyzické zařízení -> Tabulka rozdělení disku -> Souborový systém

A jak to vypadá u mne. Malé x naznačuje, bod ve kterém zůstane zavaděč viset..

Fyzické zařízení -> Tabulka rozdělení disku -x-> SW raid -> LVM skupina -> Souborový systém

Důsledkem toho, že nesestaví raid je, že nelze nahodit LVM skupinu a zpřístupnit tak souborový systém - umístěný na logickém disku - na kterém jsou umístěny další moduly.

Prostě výchozí instalační skript nemá žádnou konfigurační volbu, kterou by mu bylo možné říct, které moduly by měl do core.img zahrnout, a sám si to ani očividně neumí zjistit.

Možnost použít konfigurační volbu - to je to co jsem chtěl po nich zaintegrovat do toho skriptu před dvěma lety. Tu komunikaci, kterou bych to doložil jsem už ovšem smazal. Stejně k ničemu nevedla.
24.5.2012 14:04 sigma
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Debian Squeeze, layout velmi podobný, a žádný problém.

Disky /dev/sda a /dev/sdb, na obou GPT. /dev/sd[ab]2 jsou raid svazky, nad nimi /dev/md0, což je LVM PV. Nad touto PV je VG/LV pro root filesystem vč. /boot adresáře.

Debian instalovaný přes debootstrap, grub-install jsem pouštěl ručně, a žádný problém - všechno našel správně.

Ještě poznámka - ze zvyku nechávám na GPT první oddíl jako "bios_grub", s velikostí 4 MB. Kdysi mi nechtěla instalace GRUB2 fungovat, protože na začátku disku nebyl dost velký prostor, aby se tam vešly moduly na mdraid a lvm. Nezkoušel jsem, jestli je to ještě pořád potřeba.
24.5.2012 14:21 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Ještě poznámka - ze zvyku nechávám na GPT první oddíl jako "bios_grub", s velikostí 4 MB. Kdysi mi nechtěla instalace GRUB2 fungovat, protože na začátku disku nebyl dost velký prostor, aby se tam vešly moduly na mdraid a lvm. Nezkoušel jsem, jestli je to ještě pořád potřeba.
No právě v tom je ten vtip. Pokud to je tak jak to mám já, tak je naprosto jedno, kde se ten logický disk nachází a žádný extra diskový oddíl není třeba.

Jestli se používá GPT nebo MSDOS je vcelku jedno, ona i GPT tabulka používá MBR. Důležité je pouze to, aby bylo dost místa ještě před prvním diskovým oddílem. Pro GPT akorát platí, že do core.img musí být místo part_msdos vložený part_gpt.

Také je otázka jaký typ SW raidu je použitý - já používám verzi 1.2 (modul mdraid1x) ovšem ten je v Debianu až právě od sqeeze (grub verze 1.98+20100804-14+squeeze1). Předtím grub uměl sestavit pouze raid verze 0.9, jenže ten má jinak umístěná metadata.
24.5.2012 14:30 sigma
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
SW raid metadata 1.2:
md0 : active raid1 sda2[0] sdb2[1]
      39053240 blocks super 1.2 [2/2] [UU]
Příležitostně vyzkouším, jestli by mi to fungovalo i bez toho pomocného oddílu. Ale nevidím v něm problém, prostě jsem si zvyknul vždycky napřed napsat:
# parted /dev/sda
mklabel gpt
mkpart biosboot 4M 8M
set 1 bios_grub on
...
24.5.2012 14:38 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Na výsledek pokusu jsem sám zvědav. Není totiž vyloučeno, že chyba je specifická pouze pro mou konfiguraci. Testovat něco na ostrém stroji je dost riskantní, ale možná by stálo za to si ověřit, jestli tvůj systém nabootuje, když mu vyndáš disk /dev/sda.
xxx avatar 24.5.2012 21:18 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Mam pdobnou konfiguraci, /dev/sd[abc]2 jako /dev/md0 v raid5. A taktez mi to funguje. Co je ovsem blbe, tak v pripade ze jeden z disku failne, tak grub raid5 v degradovanem rezimu nesestavi.
Please rise for the Futurama theme song.
gtz avatar 24.5.2012 19:41 gtz | skóre: 27 | blog: gtz | Brno
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Odpovědět | Sbalit | Link | Blokovat | Admin
U velkokapacitních USB klíčenek nejspíš narazíte na to, že z nich stroje odmítají nabootovat. Takže je pro tento účel lepší použít nějakou starou USB klíčenku.
Lze to řešit i s klíčenkou která má FS na VFAT pomocí Grub4dos. Nainstaluje se defacto na jakoukoliv klíčenku i disk. Stačí dohrát nějaký image nebo iso (já používám RipLinux v kombinaci se skvělým HirensCD) bootnout do Linuxu a opravit bootloader.

Nevím proč, ale já jsem si k Grub2 nějak cestu moc nenašel, prozatím jsem stále u starého Grubu. No i Suse měl stále starý Grub ale nyní jak jsem se díval již nová verze 12.2 nabízí GRUB2 jako default. No naštěstí je tam volba i pro starý Grub.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
24.5.2012 21:26 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Lze to řešit i s klíčenkou která má FS na VFAT pomocí Grub4dos. Nainstaluje se defacto na jakoukoliv klíčenku i disk. Stačí dohrát nějaký image nebo iso (já používám RipLinux v kombinaci se skvělým HirensCD) bootnout do Linuxu a opravit bootloader.
S velkokapacitními klíčenkami mívá především problém bios těch strojů, ne grub. Nedají se použít kupř. ani pro upgrade firmware. I z toho důvodu je lepší ponechat nutné zlo - tedy fat, i když na nich může být klidně i jiný FS. A grub4dos není v podstatě nic jiného, než grub2 nainstalovaný tak jak uvádím v blogu.
gtz avatar 25.5.2012 06:56 gtz | skóre: 27 | blog: gtz | Brno
Rozbalit Rozbalit vše Re: Řešení potencionálních problémů při upgrade grub2
Vím, že některé staré modely desek i NTB mají problém bootnout z USB z nějakého disku přes USB (většinou to byly staré potvory). Na ty účely používám 128MB starou USB klíčenku a ta se chová celkem slušně. Dalším možným řešením je mít uložené ISO na klíčence a z ní pak bootovat/obnovovat (hodněkrát jsem to taky dělal :-) prostě jsem dd-čkem přeplácnul celý disk dd if=opensuse.iso of=/dev/sdb bs=1M Klíčenka se pak chová jako USB CDROMka), není to sice nejpřímější řešení, ale ve spoustě krizových situací postačí.
- nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.