PXE boot s iVentoy

Pred viac ako 4 rokmi som sa pohrával s inštaláciou OS po sieti a nebolo to nič jednoduché. Pred nedávnom som našiel skvelý projekt iVentoy, ktorý inštaláciu po sieti (PXE) veľmi zjednodušuje. O čo vlastne ide? Predstavme si, že máme počítače, na ktoré chcem nainštalovať OS MS Win 11 (napr. malá firma školská učebňa a pod). Inštalovať môžeme z inštalačného média (DVD, USB). Ak máme väčšie množstvo PC (napr. 20), tak potrebujeme 20 DVD/USB. Stačí nám teoreticky aj jedno inštalačné médium, ale tým by sa stala inštalácia časovo náročná.

Obsah

Základné info

iVentoy je nástroj, ktorý zabezpečuje bootovanie OS cez počítačovú sieť. Je multiplatformový a preto môže bežať na OS Linux, ale tiež na OS MS Win (Windows som neskúšal). V súčasnosti podporuje x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI a ARM64 UEFI. iVentoy má okrem bezplatnej edície v ponuke aj komerčný produkt. V bezplatnej verzii sme obmedzený počtom klientov na 20 a nemáme podporu ARM64. Ak potrebujeme inštalovať súčasne viac ako 20 PC, alebo chceme podporu ARM, tak si iVentoy môžeme kúpiť za 49$

Inštalácia

Ja budem pracovať v Linuxovom prostredí (konkrétne Linux Mint 22). Najprv stiahneme aktuálnu verziu inštalačného balíka z github (v dobe inštalácie je posledná verzia iVentoy 1.0.20). Zároveň stiahneme aj kontrolný súčet pre stiahnutý balík a overíme, či bolo sťahovanie v poriadku. Otvoríme si terminál a môžeme použiť trochu dlhší jednoriadkový skript

 wget https://github.com/ventoy/PXE/releases/download/v1.0.20/iventoy-1.0.20-linux-free.tar.gz && wget https://github.com/ventoy/PXE/releases/download/v1.0.20/sha256.txt && echo -e "Downloaded SHA256 and Sum SHA256:\n$(grep 'iventoy-1.0.20-linux-free.tar.gz' sha256.txt)\n$(sha256sum iventoy-1.0.20-linux-free.tar.gz)" && sha256sum -c sha256.txt --ignore-missing

Výsledkom kontroly by mohlo byť niečo podobné (v závislosti od verzie, ktorú sťahujeme). Všimnime si riadok 2 a 3, kde by sa mali kontrolné súčty zhodovať. Ak sa nezhodujú, tak musíme stiahnuť znova.

Downloaded SHA256 and Sum SHA256:
e29fed7921b0efbbceb371b710ab20da758e3b6456c8e713694690689a1cf119  ./iventoy-1.0.20-linux-free.tar.gz
e29fed7921b0efbbceb371b710ab20da758e3b6456c8e713694690689a1cf119  iventoy-1.0.20-linux-free.tar.gz
./iventoy-1.0.20-linux-free.tar.gz: V PORIADKU

Stiahnutý balík rozbalíme, vojdeme dovnútra a spustíme skript (samotné spustenie iVentoy vyžaduje sudo, resp. privilégia roota).

tar -xzvf iventoy-1.0.20-linux-free.tar.gz && cd iventoy-1.0.20 && sudo bash iventoy.sh start

Po rozbalení a spustení skriptu v posledných riadkoch uvidíme inštrukcie, kde bude uvedené akú IP adresu a port máme použiť vo webovom prehliadači aby sme mohli konfigurovať a manažovať iVentoy

iventoy start SUCCESS PID=4584

Please open your browser and visit http://127.0.0.1:26000 or http://x.x.x.x:26000 (x.x.x.x is any valid IP address)

Konfigurácia

Veľkou výhodou iVentoy je, že konfigurácia prebieha cez webový prehliadač. V rámci lokálneho PC funguje pod adresou http://localhost:26000, http://127.0.0.1:26000, alebo http://x.x.x.x:26000 (kde x.x.x.x je naša platná IP adresa v LAN sieti) ale tiež sa môžeme prihlásiť z ľubovoľného PC v LAN (dokonca som skúsil mobilnú verziu a responzivita webu je samozrejmosťou). Po prihlásení by sme mohli vidieť niečo také

V ľavej časti je menu

  • Boot Information
  • Configuration
  • MAC filter
  • Image Managment
  • Register Information

Menu je skôr intuitívne. na obrázku vidíme IP adresu servera z ktorého bol spustený iVentoy. Ďalej je tam IP pool. To je rozsah DHCP. iVentoy môže pracovať s vlastným DHCP serverom, alebo so serverom tretej strany. Aby sme to nekomplikovali, použijeme interný DHCP server.

Vo svojej LAN sieti používam DHCP pool 192.168.1.10-192.168.1.99, čiže DHCP pre PXE boot môžeme vymyslieť nejaký iný pool a to napr. 192.168.1.200-192.168.1.219. Aj keď 2 DHCP servery na jednej sieti sa neodporúčajú, ale rozdelenie do dvoch poolov by nemal byť problém. Stroj, ktorý chce bootovať zo siete vysiela špeciálnu broadcastovu UDP správu, v ktorej sa nesie požiadavka DHCPDISCOVER s príznakom PXE. Na túto správu odpovedá len DHCP server, ktorý je nakonfigurovaný aby odpovedal strojom, ktoré žiadajú o sieťové bootovanie

V menu Configuration preveríme či je všetko v poriadku a hlavne či je nastavený DHCP mód na internal.

Pre bezproblémový beh iVentoy potrebujeme mať otvorené tieto porty, 67, 68, 69, 26000, 16000, 10809. Ak pracujeme v rámci LAN siete, tak firewall je defaultne vypnutý (o otvorenie portov sa nemusíme starať).

Tu je tabuľka s adresárovou štruktúrou a popisom ku každému adresáru (prebrané z iVentoy webu).

DirectoryDescription
dataFor License file, config files.
docFor document
isoFor ISO files.
libFor library files that needed by iVentoy. Don’t put other files here.
logFor log files.
userFor user files, third-part software, auto install scritps …

Pre nás je teraz zaujímavý adresár ISO, pretože ak v menu prejdeme do Image Managment, zistíme, že adresár je prázdny. Do tohto adresára musíme nahrať nejaký IMG (napr Win 10/11, Debian, Ubuntu a pod). Teoreticky nemusíme do ISO adresára nahrávať ISO obraz, ale môžeme použiť symbolické linky, napr.

ln -s /path_to_imgs/win10-11/Win10_22H2_Slovak_x64v1.iso  /home/user/iventoy-1.0.20/iso/Win10_22H2_Slovak_x64v1.iso

Ja som do adresára nahral linuxmint-22-cinnamon-64bit.iso a nalinkoval Win10_22H2_Slovak_x64v1.iso, ktorý sa nachádza na inom úložisku (dokonca je uložený na súborovom systéme NTFS)). To znamená, že ak sa pozrieme do Image Managment, uvidíme tam 2 ISO obrazy (ak tam nebudú, klikneme na refresh).

Stručný popis o položkách v IMG files.

  • Set as default boot file – ON/OFF môžeme nastaviť ako predvolený boot file
  • ID – ID číslo priradené každému ISO pri spustení iVentoy
  • PMD5 – hodnota md5 cesty k súboru ISO (vo vzťahu k adresáru iso), takže sa nezmení, pokiaľ sa nezmení cesta k súboru ISO
  • Boot Password – pri bootovani sa vyžaduje zadanie hesla
  • Injection File – Tu môžeme vložiť niektoré súbory (napr. ovládače/skripty …) do runtime prostredia po zavedení.
  • ID auto install script – môžeme použiť skript, ktorý zabezpečí automatickú inštaláciu

Posledné možnosti sú pokročilejšie, kde potrebujeme vytvoriť autoskript, alebo upraviť už prednastavené skripty (ukážkové skripty sú v adresári /user/scripts/example). Ja zatiaľ tieto pokročilejšie možnosti nebudem používať.

Nie až tak zaujímavou ponukou v menu je MAC Filter, kde môžeme zakázať, alebo povoliť zoznam MAC adries.

Teraz môžeme spustiť službu PXE a to tak, že prejdeme v menu na Boot Information a klikneme na zelene tlačidlo Štart. Ak by sme v adresári ISO nemali žiadny ISO obraz, tak po stlačení tlačidla štart uvidíme správu, že k behu služby potrebujeme aspoň jeden ISO.

Bootujeme po sieti

Predpokladom je aby PC/NTB, alebo nejaký virtuálny stroj (napr. KVM) ktorý chceme bootovať po sieti, mal podporu bootovania po sieti (samozrejme táto podpora musí byť v BIOS/UEFI povolená). Prvé zariadenie, ktoré som skúsil bol fyzický NTB Dell. Ethernetovým káblom som prepojil NTB a switch do ktorého je zapojený aj iVentoy server. Po spustení NTB som tlačil kláves F12, aby nabehla boot ponuka (pri iných počítačoch to môže byť iná kláves, napr. F11, Del, a pod.).

V ponuke boot máme niekoľko možnosti, ale nás bude zaujímať vyznačená ponuka v sekcii Legacy Boot a to konkrétne Onboard NIC (sieťová karta na základnej doske). Ak by boli problémy s bootovanim, tak je možné, že v BIOS/UEFI je povolená možnosť Secure Boot a v takom prípade ju musíme zakázať. Ak je všetko v poriadku, tak by sme mohli vidieť niečo podobne ako je na nasledujúcom obrázku. Máme na výber z dvoch OS (tie ktoré sme nahrali, resp. nalinkovali do ISO adresára). Ďalej sú tam základné nástroje pre reštart počítača, nastavenie rozlíšenia obrazovky príp. opustiť ponuku a pokračovať do BIOS boot

Ak prejdeme na web iVentoy do sekcie Boot Information, tak v tabuľke Device List vidíme zariadenia, ktoré žiadali a obdržali od DHCP servera IP adresu (v mojom prípade je tam len jednno zariadenie).

Zavedenie systému fungovalo excelentne. Ako testovacie OS som použil Linux Mint 22 a Windows 10. Neinštaloval som ani jeden OS (v boot menu je vidieť, že obidva OS sú na NTB nainštalované) ale linux som spustil ako live distro a pri zavedení Win 10 som sa preklikal až k položke inštalácia.

Záver

Práca s iVentoy je oproti tomu čo som riešil pred 4 rokmi veľmi jednoduchá. Úplne stačí rozbaliť stiahnutý balík, nahrať (nalinkovať) do správneho adresára ISO obrazy a spustiť server. Následne spustíme PXE službu. Ak iVentoy postavíme na LXC, alebo docker kontajnery, ktorý bude 24/7 online v rámci LAN, tak už nikdy nebudeme potrebovať inštalačné média a OS môžeme bootovať pekne po sieti. Bootovanie po sieti som vyskúšal aj na VM (Virtualbox) a fungovalo bez problémov. Veľmi potrebné je dávať pozor aby stiahnuté ISO obrazy boli skontrolované nástrojom pre kontrolný súčet, pretože neraz sa mi stalo, že inštalácia OS zlyhala pri kopírovaní súborov na disk. Ak si nájdem viac času, tak jeden z nasledujúcich článkov by sa mohol venovať auto inštalácii OS po sieti.

Použitá literatúra

Leave a Reply

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *