Zavádění bezdiskových strojů

From DCEwiki
(Redirected from syslinux)
Jump to navigation Jump to search
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.