GRUB (bloková zařízení)
Aby bylo zřejmé, jak probíhá proces zavedení systému, je třeba něco vědět co jsou bloková 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
GRUB shell se velmi podobá klasickému unixovému shellu. I jeho přístup k blokovým zařízením je podobný. Ovšem GRUB2 není - vzhledem k omezením BIOSu - schopen rozlišit, zda je blokové zařízení typu SATA nebo IDE. Proto jsou všechny pevné disky, ať již připojené přes USB, nebo některé ze zmíněných rozhraní identifikovány jako hd. Disketová mechanika fd a CD mechanika - cd. Podle toho jak jsou postupně tato zařízení rozpoznávány, jim jsou přidělovány i pořadová čísla.
Při bezdiskovém zavedení GRUB2 po síti, je-li zaveden příslušný modul, se síťové rozhraní objeví jako zařízení pxe. |
Jak vidí bloková zařízení linux
V linuxu se k veškerým blokovým zařízením přistupuje přes tzv. nody (komunikační uzly), které se u novějších verzí linuxového jádra, které používají udev, vytvářejí dynamicky v rámci adresáře /dev
. Jádro, má-li zaveden příslušný ovladač, identifikuje připojené zařízení a udev na základě této identifikace vytváří nody a symlinky do příslušných subsystémů.
Pojmenování nodu závisí na použitém ovladači a také počtu blokových zařízení využívajících stejný ovladač. To je velká výhoda linuxu, protože díky tomu je možné používat libovolný počet identických zařízení současně, a s každým z nich komunikovat samostatně.
Nevýhodou při dynamickém vytváření a rušení nodů je, že jsou-li bloková zařízení zapojena v jiném pořadí, může dojít ke zpřeházení nodů. Proto existují ještě tzv. subsystémy, do kterých udev umisťuje symlinky, vytvořené na základě dalších identifikačních údajů. Takže i když blokové zařízení od jádra dostane přidělen jiný nod, jeho symlink v rámci subsystému zůstává stejný.
Komplexní subsystém blokových zařízení je umístěn v adresáři /dev/disk
. Tady lze najít symlinky vytvořené na základě dalších identifikačních údajů, umístění na sběrnici, unikátního id blokového zařízení (uuid), aj.
- by-id
- symlinky, jejichž název je složen z názvu subsystému, přes který je zařízení připojeno a dalších identifikačních údajů získaných ze zařízení
- by-uuid
- symlinky v tomto subsystému jsou pojmenované podle uuid blokového zařízení. V případě že se UUID blokových zařízení shoduje (což se může stát), tak zde zůstane pouze symlink pro blokové zařízení, které bylo identifikováno naposled.
- by-path
- symlinky v tomto subsystému se vytváří podle zapojení na sběrnici, existují zde tedy pouze symlinky na fyzická zařízení.
- by-label
- symlinky v tomto subsystému se vytváří pouze pro bloková zařízení, které mají nastavenou jmenovku (label). Pokud v systému žádné takové zařízení není, pak neexistuje ani tento subsystém.
IDE
S IDE disky se dnes setkáte už spíše jen ve starších desktopových počítačích.
- IDE konektor desktopových a notebookových IDE disků není stejný. Napájení desktopových 3,5 palcových disků zajišťuje konektor MOLEX, zatím co u notebookové 2,5 palcové disky se napájí přímo přes konektor.
- IDE rozhraní nepodporuje hotswap, takže tyto disky nelze vyměnit za běhu.
- Na jedné "kšandě" v počítači mohou být max. 2 IDE zařízení ( disk, nebo CD mechanika ). Základní desky měly obvykle pouze 2 IDE porty, tzn. že mohly mít zapojeny současně maximálně 4 IDE disky
V linuxovém systému jména nodů pro IDE zařízení začínají na hd ( hard disc )+ písmeno (a, b, c, d,...). V případě, že je IDE disk rozdělen na diskové oddíly, tak mají pořadové číslo. Toto číslování začíná od čísla 1
/dev/hda /dev/hda1
Linux měl dříve 0 vyhrazenou pro celý disk, ale v současné době se již pro celé zařízení používá pouze jméno nodu bez čísla. |
USB, SCSI, SATA a SAS
Pro pojmenování nodů pro USB, SCSI, SATA a SAS disky se používá zkratka sd (serial device) + písmeno (a, b, c,...) tak jako u IDE disků. Stejně tak platí i číslování diskových oddílů, které začíná od čísla 1
/dev/sda
NBD
Network Blok Device (síťové blokové zařízení). Nevytváří se dynamicky. Je to ve skutečnosti přípojný bod, na který lze namapovat jiné blokové zařízení vypublikované přes síť z jiného stroje. Může jít jak o fyzické blokové zařízení, nebo soubor (podobně jako u loop zařízení).
/dev/nbd0
LOOP
Zařízení loop je virtuální zařízení, které umožňuje přistupovat k souboru tak jako by byl fyzickým blokovým zařízením. Pro správu loop zařízení se používá aplikace losetup
/dev/loop0
RAID
Při sestavení raid pole se pro každý nod souběžně vytváří také příslušné symlinky v subsystému /dev/md
a také v komplexním subsystému /dev/disk
. Nody pro raid zařízení začínají písmeny md. Číslo..
/dev/md126 /dev/md/datadisk /dev/disk/by-id/md-name-stroj:datadisk /dev/disk/by-id/md-uuid-f2789b5800cedb6930281b137d3c18f4 /dev/disk/by-uuid/f2789b58-00cedb69-30281b13-7d3c18f4 /dev/disk/by-label/datadisk
- V subsystému
/dev/disk/by-path
se symlink nevytvoří, protože SW raid pole samo o sobě na žádné sběrnici připojeno není. - V subsystému
/dev/disk/by-label
se vytvoří symlink pouze tehdy, pokud byl raid vytvořen s návěštím ("label") - V subsystému
/dev/disk/by-uuid
se vytvoří symlink pouze tehdy, pokud byl na raid poli vytvořen nějaký souborový systém
LVM
Při vytvoření LVM skupiny se vytvoří v adresáři /dev
subsystém s identickým názvem. Vytvořené logické disky jsou pak mimo jiné symlinkovány i do tohoto subsystému.
Tento subsystém však nelze využít při zavádění systému! |
Při vytvoření logického disku se založí nod začínající písmeny dm- a s příslušným číslem. Souběžně se přitom vytvoří také symlink v subsystému /dev/mapper
a také symlinky v komplexním subsystému /dev/disk
.
/dev/dm-0 /dev/data/disk /dev/mapper/data-disk /dev/disk/by-id/dm-name-data-disk /dev/disk/by-id/dm-uuid-LVM-F3MHYiQaxACfu6L95gC2Uz0TjhcGS1VsiJH1e29Qxz3Irv2DMud2bXnGfrdbZ2ku /dev/disk/by-uuid/f2789b58-00cedb69-30281b13-7d3c18f4 /dev/disk/by-label/diskovy_prostor
- Podobně jako u SW raid pole se u logických disků nevytváří symlink v subsystému
/dev/disk/by-path
. - V subsystému
/dev/disk/by-uuid
se vytvoří symlink pokud byl na raid poli vytvořen nějaký souborový systém - V subsystému
/dev/disk/by-label
se vytvoří symlink pouze tehdy, pokud byl souborový systém na raid poli vytvořen s návěštím ("label")