GRUB (bloková zařízení)

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


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.

Identifikaci fyzických blokových zařízení z BIOSu zajišťuje u GRUB2 modul biosdisk. Stejně jako BIOS není schopen rozlišit, zda je blokové zařízení typu SATA nebo IDE, ale podle tzv. biosového čísla a jednoduchých testů dokáže přidělit identifikátor zařízení a odpovídající pořadové číslo.

hd
je identifikátor všech diskových zařízení, včetně těch, která jsou připojená přes USB (biosová čísla v rozmezí 0x80 až 0x90)
fd
je identifikátor disketové mechaniky (floppy disc) (biosová čísla od x00)
cd
je identifikátor CD mechaniky (biosové číslo nad 0x90)
Poznámka U USB klíčenek záleží na tom, jak jsou identifikovány BIOSem konkrétní desky. Některé dostanou biosové číslo odpovídající disketové mechanice, jiné zase takové co odpovídá pevnému disku.
Upozornění Jsou-li nad fyzickým blokový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!

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