GRUB (bloková zařízení)

Z DCEwiki
Skočit na navigaci Skočit na vyhledávání


Aby bylo zřejmé, jak probíhá proces zavedení systému, je třeba něco vědět o tom jaká jsou specifika fyzických blokových zařízení a jak je "vidí" GRUB2. Je to důležité znát především proto, aby bylo jasné:

  • kam se instaluje GRUB2
  • kde lze najít soubory potřebné pro zavedení OS
  • odkud a jak zjistit parametry, s nimiž pak lze pracovat v souboru grub.cfg

Jak GRUB vidí fyzická bloková zařízení

Poznámka Bloková zařízení jsou taková, která komunikují po blocích dat. Tj. i když z nich chceme přečíst pouze jeden bajt, musíme načíst celý blok dat najednou. Totéž platí i pro zápis. Při práci s nimi se tedy využívá vyrovnávací paměť (tzv. buffer). Veškeré operace s daty se provádí v něm a k jejich uložení (opět po celých blocích) dochází teprve až když k tomu systém vydá příkaz.

GRUB shell se velmi podobá klasickému unixovému shellu, včetně práce s blokovými zařízeními. Na rozdíl od plnohodnotného OS však není - vzhledem k omezením BIOSu - GRUB schopen rozlišit, zda je blokové zařízení typu SATA nebo IDE.

hd
je identifikátor všech diskových zařízení, včetně těch, která jsou připojená přes USB
fd
je identifikátor disketové mechaniky (floppy disc)
cd
je identifikátor CD mechaniky

Rozpoznávání fyzických blokových zařízení řeší modul biosdisk, ten jim přiděluje i odpovídající pořadová čísla.

Upozornění Jsou-li nad fyzickým zařízením další logické vrstvy, jako např. RAID nebo LVM, musí být odpovídající moduly načítány až po nalezení a vytvoření blokových zařízení, nad kterými jsou jsou sestaveny!

Jak GRUB vidí logické vrstvy

Pro zpřístupnění logických vrstev musí GRUB2 nejdřív vidět fyzická zařízení, nad kterými jsou sestaveny. Teprve pak - po načtení příslušného modulu - je schopen tyto vrstvy identifikovat a s nimi pracovat.

SW RAID

Pro RAID zařízení se používají moduly:

raid
mdraid09
mdraid1x
raid5rec
raid6rec
Poznámka
grub> ls
(md/disky) (hd0) (hd0,msdos1) (hd1) (hd1,msdos1)

Příklad výpisu GRUB shellu s identifikovaným softwarovým raid polem disky, které je sestaveno z minimálně jednoho diskového oddílu fyzických blokových zařízení, identifikovaných jako hd0 a hd1. Před načtením modulu, který identifikoval raid pole musela být načtena tabulka diskových oddílů part_msdos, takže jde o pole sestavené nad diskovým oddílem, nikoliv celým diskem.

LVM

Pro práci s LVM musí být načten modul lvm. Rozezná-li při svém načítání nějaký logický disk, tak se objeví pod stejným názvem, jako je identifikován v linuxu v subsystému /dev/mapper. Od logických zařízení typu RAID se na první pohled liší mimo jiné v tom, že je v názvu přítomná pomlčka a ne lomítko.

Poznámka
grub> ls
(data-disk) (hd0) (hd1)

Příklad výpisu GRUB shellu s identifikovaným logickým diskem disk, který patří do LVM skupiny data, která je vytvořena ze dvou fyzických blokových zařízení, identifikovaných jako hd0 a hd1


Poznámka Je-li načten modul lvm dříve než je identifikováno zařízení nad kterým je LVM skupina vytvořena, tak ji zavaděč nerozpozná. V takovém případě je nutno nejprve všechny instance tohoto modulu příkazem rmmod odebrat, a po identifikaci zařízení nižší vrstvy modul lvm zavést znovu.

Jak GRUB pracuje se síťovým přípojením přes PXE

Při zavádění přes PXE je dostupný vzdálený adresář s dalšími moduly, a ev. i soubory pro bezdiskový linux, přes TFTP protokol. Díky jeho omezené funkcionalitě tak nelze (na rozdíl od lokálních zařízení) obsah vzdáleného adresáře vypsat pomcí příkazu ls. Nicméně lze použít příkaz cat a vypsat obsah vzdáleného souboru!


Příklad výpisu z GRUB shellu zavedeného přes PXE..

Poznámka
grub> ls
(hd0) (pxe)
grub> ls (hd0)/
. ../ adresar/ soubor.txt 
grub> ls (pxe)/

grub> cat (pxe)/boot/grub.cfg
#
# DO NOT EDIT THIS FILE
...