Portál AbcLinuxu, 6. listopadu 2025 22:46
".
Legacy GRUB byl/je pro mně ideální kompromis mezi složitostí a funkcionalitou. Jeden konfigurační soubor, pár stage souborů a uživatelsky příjemné rozhraní ať už při bootu nebo v systému. Pravda, chyběla tomu podpora RAID5,6, pořádné bootování ze sítě, ale zase jsem byl schopen nabootovat grub z CD, vlézt na lokální disk, opravit instalaci grubu a spustit OS. Když tady vidím, jak se konfigurační soubor dělá pomocí sady skriptů, které generují jeho fragmenty a ještě pak mám defaultní volbu 0, tak se děsím, že jednou z toho místo konfiguráku vyjede kočkopes jak Brno (bez urážky kočkopsa případně Brrrrrna)...
Kacířská myšlenka na závěr. V Linuxu už přece jsou mechanismy na zavedení jiného jádra, proč tedy místo grubu nepřipravit nějaký Linux, který nabootuje (najde se stejným způsobem jako se teď hledá GRUB a jeho moduly), rozjede všechny periferie, všechno najde, nějakým pěkným způsobem dá uživateli vybrat (třeba včetně videa, zvuku a youtube, když uživatel bude chtít) a pak prostě nenačte ty dva soubory a kernel parametry k nim a nespustí to? A když se něco poto, tak si v konzoli opravím, co budu chtít...
Automatické generování konfiguráku pro GRUB Legacy používal už Red Hat 7 (a možná i dřív, tam si to už nepamatuju). Na druhou stranu ten konfigurák si samozřejmě stále můžete napsat ručně
Protože GRUB2 musí spolupracovat s BIOSem (a to ve stage 1 jenom pomocí 440 bajtů) a přepnout se do 32-bitového režimu, aby spustil sebe a potom Linux. Na druhou stranu pokud máte kompatibilní desku, tak není problém přidat Linux jako payload pro coreboot (přímo na desku) a GRUB úplně vynechat.
Co se týče té spolupráce s BIOSem, to musí řešit GRUB stejně jako kdokoliv jiný. Jen Lilo se bylo schopné namačkat do těch pár bajtů. Ale už legacy grub to dělá tak, že má stage1, která funguje jako staré lilo (natvrdo zadrátované načti z disku 0x80 bloky x,y,z a spusť je) a tím se nahraje stage 1.5, která pak obdobně nahraje už kompletní stage2. Systém už je dávno v 32bit režimu a už je poměrně pěkně nažhavený. V tu chvíli už je jedno, jestli načte 300KB stage2 nebo 5MB kernelu...
A teď přijde dracut, kde konečně jsou všechny moduly a funguje to krásně. Proč grub2, když už musí mít moduly, neskočí rovnou do fáze dáme tam všechny?
*) Server bootuje z flashky, myšlenka je, že ať strčím flashku do jakéhokoliv hardware, tak se server rozjede. To připadá jednoduché ne? Ale zkuste na initrd dostat drivery od všech řadičů, raidů a síťovek (pro síťový boot), když mkinitrd, pokud ho neumlátim parametrama, tupě nainstaluje jeden od řadiče, jednu síťovku a ještě třeba jen raid0, ale ne raid1...
set root=(DISK)
loopback loop /CESTA_K_ISO_SOUBORU
ZAVADEC (loop)/JADRO
insmod loopback
insmod iso9960
set root=(DISK)
loopback loop /CESTA_K_ISO_SOUBORU
ZAVADEC (loop)/JADRO
). Ale vzít libovolné .ISO a z něj ElTorrito nabootovat, to by byla killer feature
V kapitolce Zjednodušené nastavení v prvním odstavci přebývá háček ve slově šahá.
V kapitolce Pokročilejší nastavení je v druhém odstavci elegentní, ve třetím odstavci přebývá háček ve slově šahat, a ve třetím odstavci od konce této kapitolky bych "p" v samopopisné... příkaz nahradil "P", protože mi to připadá jako začátek nové věty.
Arch bez os-prober...
menuentry "MacOS X Leopard" {
insmod hfsplus
set root=(hd0,X) #změň X na Mac partition
multiboot /boot
}
a pak update-grub. V případě přeinstalování zavaděče v mbr, se přepnete na roota a dáte logicky grub-install /dev/sda.
Docela mi tenhle článek přijde, jako obšlehlý z http://wiki.ubuntu.cz/GRUB2 a trochu zkrácený. Ale co jiného psát, že?
menuentry "Mac OS X Snow Leopard" {
insmod efiemu
insmod hfsplus
insmod xnu
acpi -e (hd0,1)/Extra/DSDT.aml
efiemu_loadcore (hd0,1)/grub/efiemu64.o
set root=(hd0,2)
xnu_kernel /mach_kernel rd=disk0s2
xnu_kextdir /System/Library/Extensions
xnu_kextdir (hd0,1)/Extra/Extensions
xnu_devprop_load (hd0,1)/Extra/device-properties.bin
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.