Netboot.xyz to sposób na uruchamianie w środowisku PXE narzędzi bądź systemów operacyjnych poprzez sieć bez fizycznej instalacji nośnika na komputerze.
Dzisiejszy wpis będzie omawiał instalacje Netboot.xyz w wersji Docker oraz konfiguracje lokalnej sieci na przykładzie routera MikroTik. Używać będziemy obrazu z linuxserver.io
Jeśli jeszcze nie posiadasz Docker’a to zapraszam do zapoznania się z tutorialem Docker + Compose + Portainer
1. Instalacja Netboot.xyz używając Docker + Compose
Tworzymy plik docker-compose.yml
i wklejamy poniższy kod – można dostosować według własnych potrzeb.
version: "2.1" services: netbootxyz: image: ghcr.io/linuxserver/netbootxyz container_name: netbootxyz environment: - PUID=1000 - PGID=1000 - MENU_VERSION=2.0.32 #optional volumes: - /netboot/config:/config - /netboot/assets:/assets #optional ports: - 3000:3000 - 69:69/udp - 8080:80 #optional restart: unless-stopped
/netboot/assets
to miejsce gdzie będziemy przechowywać obrazy narzędzi bądz systemów operacyjnych,/netboot/config
ścieżka gdzie będziemy przechowywać pliki konfiguracyjne na hoscie. Należy pamiętać w obu przypadkachassets
orazconfig
aby nie zmieniać nic za znakiem:
gdyż jest to ścieżka w kontenerze3000
port przez który będzie dostęp do panelu zarządzania web (dowolna konfiguracja)69
TFTP server port – musi być dostępny dla kontenera8080
port przez który będą pobierane obrazy (dowolna konfiguracja)PUID
uprawnienia użytkownika (dowolna konfiguracja) więcej info na stronie linuxserver.ioPGID
uprawnienia grupy (dowolna konfiguracja) więcej info na stronie linuxserver.io
Teraz pozostaje nam utworzyć container używając docker-compose
docker-compose up -d
To wszystko, można śmiało otworzyć w przeglądarce port 3000 i zajrzeć do panelu administracyjnego – w moim przypadku będzie to http://192.168.10.100:3000
.
W takiej postaci Netboot.xyz już działa jednak będzie pobierał wszystkie obrazy z internetu, a my chcemy aby działał lokalnie bez dostępu do internetu.
2. Konfiguracja lokalnego repozytorium
Przechodzimy w panelu web do zakładki Menus
i klikamy z lewej strony plik boot.cfg
Zmieniamy poniższa linijkę według naszych potrzeb, czyli podajemy IP oraz port jaki utworzyliśmy wcześniej instalując Netboot.xyz
# set location of custom netboot.xyz live assets set live_endpoint http://192.168.10.100:8080/
w moim przypadku jest to 192.168.10.100:8080
3. Pobieranie obrazów na lokalny serwer
Przechodzimy w panelu web do zakładki Local Assets
następnie wybieramy dystrybucje jakie nas interesują
Na Koniec klikamy
Pull Selected
i w prawym górnym rogu powinien pojawić się pasek postępu
4. Konfiguracja routera oraz Bios w komputerze (klient)
Konfiguracja jest indywidualna i zależy od routera jaki wykorzystujemy, poniżej na przykładzie MikroTik gdyż taki posiadam w swojej sieci, przypominam aby dostosować swój adres IP serwera
Dodajemy next-server
oraz boot-file
do serwera DHCP
/ip dhcp-server network set 0 next-server="'192.168.10.100'" /ip dhcp-server network set 0 boot-file-name="'netboot.xyz.kpxe'"
Na koniec pozostaje nam uruchomienie opcji w Bios klienta aby startował z sieci w trybie Legacy (Boot mode), resztą zajmie się router oraz Netboot.xyz. Tutaj także nie opisze jak to się robi gdyż zależne jest od rodzaju Bios. Efekt końcowy prezentuje się tak:
Jak znaleźć swoją konfiguracje routera do działania w środowisku PXE? Musisz najzwyczajniej poszukać w swojej ulubionej wyszukiwarce pod frazami
TFTP PXE Boot
Jeśli podczas wybierania w menu jakiegoś obrazu otrzymamy error to znaczy iż nie pobraliśmy go na lokalny serwer.
Powodzenia i miłej zabawy 😉