Zavádění bezdiskových strojů
- PXE
- Pro zavádění bezdiskového systému je klíčové, aby ethernetové zařízení, stroje kde se má zavést bezdiskový operační systém (Diskless) podporovalo PXE (Preboot execution environment) – standard, který umožňuje zavedení operačního systému po síti. Ten funguje tak, že:
- Ethernetové zařízení, které podporuje PXE, vyšle do sítě broadcastový paket
- Ten odchytí DHCP server. Vyhledá pro MAC adresu ze které byl paket odeslán odpovídající konfiguraci a vrátí zařízení, které paket vyslalo zpět informace nezbytné pro nastavení sítě. Mezi nimi může být i adresa TFTP (či HTTP) serveru a cesta k zavaděči, kterou lze v konfiguraci DHCP měnit na základě identifikátoru PXE klienta, předaného v proměnné
vendor-class-identifier
[1] - PXE klient nastaví síť a předá získané informace BIOSu/UEFI, který skrze ni natáhne do RAM zavaděč a dál již pokračuje zavádění v jeho režii.
- Zavaděč, má-li podporu PXE[2], si natáhne přes TFTP konfigurační soubor a případně i další moduly, nezbytné pro zavedení operačního systému.
- DHCP a TFTP server
- Z DHCP serveru si klientské stanice natahují informace o nastavení sítě. TFTP server nabízí ke stažení soubory nezbytné pro bezdiskové zavedení systému. Může jít o stejný stroj, ale nemusí.
- Klientská stanice
- Stroj na kterém fyzicky zavádíme operační systém.
připojení NFS funkční síťovou konfiguraci a připojení. Dále je nutné odstavit služby, které by se při startu případně pokoušely o rekonfiguraci síťového připojení. V takovém případě by se totiž mohlo stát, že stroj zůstane viset, protože mu přestane fungovat připojení na NFS server.
syslinux
Pro bezdiskové zavádění se používá PXELINUX , ale také GRUB lze používat bezdiskově. Jak už bylo zmíněno u prvního stupně zavádění,
Bios klientské stanice si z TFTP serveru přes PXE síťové karty tento soubor stáhne a zavede stejným způsobem, jako by jej našel někde na disku. Pokud je k dispozici ovladač síťové karty, lze pak zavádět i distribuce bezdiskové rovnou ze sítě. Pokud ne, můžeme zavést pouze lokální systémy.
Projekt Syslinux ( http://syslinux.zytor.com/wiki/index.php ) vyvíjí balík malých utilit, určených pro zavádění OS z různých médií:
- SYSLINUX
- Zavádí OS ze souborového systému FAT ( typicky se používá na USB flash discích )
- PXELINUX
- Zavádí OS po síti
- ISOLINUX
- Zavádí OS z bootovatelných "El Torito" CD
- EXTLINUX
- Zavádí linux ze souborových systémů ext2/ext3
- MEMDISK
- Není zavaděčem jako takovým. Je to nástroj, který umožňuje spouštět konzervativní (legacy) operační systémy ( jako např. DOS ) z netradičních médií. Obvykle se používá v kombinaci s PXELINUX a ISOLINUX
Tyto utility jsou malé binární soubory, které se spouští podle potřeby. Jejich výhodou je, že nejsou nijak závislé na zaváděném OS a tudíž je lze bez problému používat bez ohledu na architekturu procesoru.
Projekt Syslinux má svůj ekvivalent např. v zavaděči Grub , předností jeho utilit však je, že jsou malé a svou práci dělají rychle a spolehlivě.
PXELINUX
Se obvykle používá v kombinaci s TFTP serverem pro bezdiskového zavádění ( diskless boot ) linuxových distribucí. Lze jej však ale využít také pro zavedení jiného zavaděče, v našem případě skrz něj natahujeme GRUB
Instalace
V Debianu je binární soubor pxelinux.0 součástí instalačního balíku syslinux. Stačí jej umístit někam, odkud si jej může klientská stanice stáhnout.
Konfigurace
Svoje konfigurační soubory hledá pxelinux.0 spuštěný na klientské stanici v serverovém adresáři ./pxelinux.cfg na základě MAC či IP adresy. IP adresa však není v obvykle používaném tvaru, ale v hexa.
http://frank.harvard.edu/~coldwell/diskless/
Konfigurace DHCP a zavádění přes PXELINUX
- ↑ Hodnota vychází z RFC 4578 (2006) a je daná architekturou procesoru. Tabulka není kompletní, protože stroje s architekturou x86, které by měly UEFI v rámci disklessu nepoužíváme, ani zavádění přes HTTP:
PXEClient:Arch:00000
: x86 BIOS (tzv. legacy PXE)PXEClient:Arch:00007
: x64 UEFI PXEPXEClient:Arch:0000b
: ARM 64-bit UEFI PXEPXEClient:Arch:00029
: arm rpiboot
- ↑ V roce 2005, kdy se na DCE s disklessem začínalo, se linuxové jádro zavádělo buď přes LILO nebo GRUB. LILO, vyvíjené v letech 1992–2015, žádnou podporu pro zavádění po síti nemělo. Ale GRUB (legacy), vyvíjený v letech 1995–2005, používal při zavádění mezistupeň, umístěný v MBR sektoru, do kterého mohl být zakompilován ovladač síťové karty klientské stanice, který zavádění po síti umožnil. Nebylo to však univerzální řešení. Pokud měl stroj jiný typ ethernetové karty, s jiným ovladačem, bylo nutné provést rekompilaci zavaděče a reinstalaci prvního zaváděcího bloku, který se musel vejít do MBR sektoru. Tento blok kódu, vytvořený jako soubor pxegrub, obsahoval oba zaváděcí stupně a tak bylo možné zavádět systém po síti.