Hálózati bootolás "PXE nélkül" - iPXE

TFTP szerverről, SAN-ról, iSCSI-ról, NFS megosztásról, és sok egyébről is tudunk vele rendszert indítani. – írta: hcl, 9 hónapja

Alapvető működés

Az iPXE egy szabadon használható PXE firmware. Nem tévedés, ahogyan a többi hasonló implementáció, úgy ez is felírható akár a gép hálókártyájára is. Ugyanakkor betölthető a hálókártya módosítása nélkül is, PXE-ről, vagy CD-ről.

A bootolható ISO 700k. Nem tévedés, nincs egy MB. Mondjuk elég sok minden hiányzik is belőle, de alapvetően elég arra, hogy az alapfunkció működjön, azaz SAN eszközökről, HTTP, FTP iSCSI, és sok egyéb protokollról tud bootolni. Az NFS, meg még pár dolog támogatásához magunknak kell lefordítanunk, ami amúgy nem is nehéz.

A legegyszerűbb eset, hogy az iPXE-t egy CD-ről (vagy pendrive-ról) bootoljuk, ekkor a betöltés után elkezd DHCP-n IP címeket kérni, s ha talál PXE szervert, akkor onnan fogja folytatni a betöltést. Ennek hiányában bootol az első háttértárról, ha tud. Ha nem, akkor újra próbál PXE szervert találni.

Azonban valószínűleg nincs PXE szerver, így nyomjunk egy CTRL-B -t, amire egy iPXE promptot kapunk.
Amennyiben van DHCP a hálózaton, egy

dhcp

parancs kiadásával máris beállítottuk a hálózatot (már ha nincs baja, de ha a normál OS-sel futó számítógépek rendben kapnak címet, akkor csak nem lesz). Ha nincs, akkor kicsit gépelni kell - egy fix IP beállítása ennyi :

set net0/ip xxx.xxx.xxx.xxx
set net0/gateway xxx.xxx.xxx.xxx
set net0/netmask xxx.xxx.xxx.xxx
set dns xxx.xxx.xxx.xxx
ifopen net0

Illetve van egy remekbe szabott config parancs, ahol menüből beállíthatunk mindent.
Természetesen a net0 akkor igaz, ha a gépben csak egy hálókártya van, vagy több közül az első van bekötve. Nyilván a többi net1, net2... És ami a legjobb, az iPXE ezt wifi kártyákkal is tudja - bár sajnos ez sehol nincs rendesen dokumentálva (ahogyan az egész PXE nem egy szabvány dolog wifin). Amennyiben jól állítottuk be a hálót, a gépnek pingelhetőnek kell lennie kívülről (az iPXE-nek is van ping parancsa, de a mezei ISO-ban ez nincs benne). A hálózatot az iPXE-ről még a route paranccsal lehet ellenőrizni; ha nincs "inaccessible" felirat, akkor jók vagyunk. Fontos megjegyezni, hogy az iPXE elég háklis tud lenni a DNS-re, legalábbis nekem sok esetben nem működött, ha csak IP-ket használtam. Szóval a DNS beállítást nem érdemes kihagyni, de ha nincs, lehet IP alapon is próbálkozni.

Ha van hálózat, akkor már viszonylag egyszerű a dolog. Az iPXE legjobb pontja a scriptelés, azaz ha egy http(s) (NFS, FTP, SAN, akármi) elérésre ki tudjuk tenni a script file-unkat, akkor csak azt kell bebootolnunk, és a többi már az abban foglaltak szerint történik. A legegyszerűbb teszt az, ha a http://boot.ipxe.org/demo/boot.php scriptet bootoljuk, ami egy minimális demo Linuxot tölt be. A https://netboot.xyz/ oldalon pedig többféle, hálózatról induló telepítőt is találunk, amiket a boot.netboot.xyz címen található scriptet bootolva érhetünk el menüből.

A script bootolása pedig ennyi : chain http://szerver.címe.com/script.neve . A script neve akármi lehet, hiszen egy sima szövegfile-ről van szó. Nyilván a scriptben szerepelnie kell a megfelelő kernel, initrd, stb. beállításoknak, és a "boot" parancsnak, hogy el is induljon a folyamat.


A legegyszerűbb eset, script bootolása kézzel egy DHCP-vel rendelkező hálózaton

Persze a script tartalmát az iPXE parancssorba is be lehet gépelni, de ez csak grafománoknak ajánlott - az okot lásd a következő oldalakon...

Hirdetés

A cikk még nem ért véget, kérlek, lapozz!

Minden