Zavádění bezdiskových strojů

Z DCEwiki
(přesměrováno z syslinux)
Skočit na navigaci Skočit na vyhledávání
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:
  1. Ethernetové zařízení, které podporuje PXE, vyšle do sítě broadcastový paket
  2. 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]
  3. 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.
  4. 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.
Poznámka Pokud má zařízení k dispozici lokální blokové zařízení, na kterém je nainstalován zavaděč, nepotřebuje ethernetové zařízení s podporou PXE, ani DHCP server, protože konfiguraci sítě lze jádru předat prostřednictvím konfiguračního souboru zavaděče ještě před zavedením jádra do RAM.
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

https://wiki.syslinux.org

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.

Upozornění GRUB2 rovněž umožňuje tak, jako GRUB legacy bezdiskové zavedení systému. Také si umí přes PXE z TFTP serveru dotahovat další moduly, ale pozor! Přes TFTP nelze provést vylistování vzdáleného adresáře. Starší verze (1.97) měla ještě ke všemu problém se zavedením samotného OS.

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/

http://delivery.acm.org/10.1145/1050000/1048013/7111.html?key1=1048013&key2=8155986521&coll=GUIDE&dl=GUIDE&CFID=59050524&CFTOKEN=16368376

Konfigurace DHCP a zavádění přes PXELINUX

  1. 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 PXE
    PXEClient:Arch:0000b : ARM 64-bit UEFI PXE
    PXEClient:Arch:00029 : arm rpiboot
  2. 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.