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.

Přístup k fyzickým blokovým zařízení, tak jak je rozeznal BIOS zajišťuje u GRUB2 modul biosdisk. BIOS není schopen vzhledem ke svým omezením rozlišit, zda je blokové zařízení typu SATA nebo IDE a přiřazuje jim tzv. biosová čísla. Podle nich pak GRUB přiděluje identifikátor zařízení a odpovídající pořadová čísla.

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


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
...