Bootowanie z sieci – PXE na Windowsie

Przystępując do lektury tej części cyklu artykułów o bootowaniu z sieci lokalnej zakładam, że skonfigurowałeś swój router z alternatywnym firmware OpenWrt, a w BIOS-ie bootowanego klienta ustawiłeś opcję Boot from LAN. Jeśli nie zapraszam do lektury pierwszej części cyklu – Bootowanie z sieci – konfiguracja routera.

Serwer TFTP

Użyjemy serwera Tftpd32 w wersji 64-bitowej zwanej Tftpd64, ściągniemy go z tej strony. Aktualna wersja to V4, wybieramy service edition, adekwatną do architektury systemu operacyjnego. Po zainstalowaniu i uruchomieniu serwera jako usługi Windows, przechodzimy do panelu administracyjnego. Na zakładce Global pozostawiamy uruchomiony jedynie serwer TFTP, reszta nie jest nam potrzebna.

Tftpd64 Global Settings

Tftpd64 Global Settings

Tworzymy gdzieś na dysku główny katalog naszego serwera TFTP, przykładowo C:\ProgramData\tftpboot. Jego lokalizację podajemy na zakładce TFTP, pozostałych opcji nie zmieniamy.

Tftpd64 TFTP Settings

Tftpd64 TFTP Settings

Ostatnią rzeczą jaką musimy zrobić to odblokować serwer TFTP na firewall-u. W zasadzie stosowny monit powinien pojawić się automatycznie, ale skoro tak się nie stało wywołujemy komendę:

lub dla systemów 32-bitowych:

i potwierdzamy chęć odblokowania aplikacji na firewall-u.

Tftpd32 Firewall

Tftpd32 Firewall


Teraz możesz zamknąć panel administracyjny i zapomnieć o nim – serwer TFTP masz już bowiem skonfigurowany.

Syslinux

Ze strony domowej projektu Syslinux ściągamy wersję 4.06. Co prawda w chwili pisania tego artykułu najnowsza dostępna wersja to 5.01, ale zarówno 5.01 jak i 5.00 sprawiały u mnie problemy, np. nie były w stanie wczytać antywirusa Windows Defender Offline. Rozpakowujemy archiwum i do głównego katalogu naszego serwera TFTP, którym jak wcześniej ustaliliśmy będzie C:\ProgramData\tftpboot kopiujemy 4 pliki, dla ułatwienia podaję poniżej ich lokalizację w archiwum:

  • gpxe\gpxelinux.0
  • com32\menu\vesamenu.c32
  • memdisk\memdisk
  • com32\chain\chain.c32

Ostatnim krokiem konfiguracji Syslinuksa jest utworzenie głównego pliku konfiguracyjnego PXE / gPXEC:\ProgramData\tftpboot\pxelinux.cfg\default. Zawartością tego pliku zajmiemy się w ostatniej, najważniejszej części cyklu – Bootowanie z sieci – konfiguracja PXE

Serwer NFS

Serwer NFS, zwany FreeNFS ściągamy natomiast z tej strony. Konfiguracja FreeNFS jest jeszcze bardziej trywialna niż Tftpd32. W głównym katalogu naszego serwera TFTP tworzymy podkatalog images, w którym będziemy trzymać obrazy bootowalnych płyt CD/DVD. Na zakładce Server podajemy lokalizację tego podkatalogu,

FreeNFS Server Settings

FreeNFS Server Settings


a na zakładce Filenames, wybieramy standard kodowania znaków UTF-8.
FreeNFS Encoding Settings

FreeNFS Encoding Settings

FreeNFS to niestety samodzielna aplikacja a nie usługa. Aby uruchomić FreeNFS jako usługę Windows użyjemy jeszcze jednego malutkiego programu NSSMthe Non-Sucking Service Manager. Wypakowujemy plik wykonywalny adekwatny do architektury. Ja zarówno FreeNFS.exe jak i nssm.exe wypakowałem do istniejącego już katalogu C:\Program Files\Tftpd64_SE. Teraz jako administrator wykonujemy następującą komendę:

Jako że, konfiguracja programu FreeNFS znajduje się w HKEY_CURRENT_USER\Software\FreeNFS usługę FreeNFS musimy uruchomić z prawami użytkownika na którym dokonaliśmy konfiguracji, w tym celu przechodzimy do Właściwości usługi FreeNFS i na zakładce Logowanie wskazujemy użytkownika i podajemy hasło.

Logowanie FreeNFS

Logowanie FreeNFS

Usługa została zainstalowana, teraz wystarczy uruchomić Usługi i wystartować usługę.

Uruchom FreeNFS

Uruchom FreeNFS


Na firewallu-u musimy jeszcze odblokować samą aplikację nssm.exe, w tym celu przechodzimy na Zaporę systemu Windows -> Dozwolone aplikacje i tam jawnie wskazujemy ścieżkę dostępu do nssm.exe.
nssm Firewall

nssm Firewall

Wszystkie niezbędne do działania środowiska PXE / gPXE serwery zostały skonfigurowane i uruchomione.

Spis treści artykułów o PXE / gPXE

Tematykę bootowania z sieci lokalnej opisuję w serii 5 artykułów, zapraszam do zapoznania się z pozostałymi częściami:

  1. Bootowanie z sieci – konfiguracja routera.
  2. Bootowanie z sieci – PXE na Linuksie.
  3. Bootowanie z sieci – PXE na Cygwinie.
  4. Bootowanie z sieci – PXE na Windowsie.
  5. Bootowanie z sieci – konfiguracja PXE.
  • Unique Post

5 Comments

  1. Hmmm a co w przypadku gdy pokazuje się informacja : PXE-T01: file /gpxelinux.0 not found

    Wszystko niby robiłem zgodnie z poradnikiem. W C:\ProgramData\tftpboot mam pliczek gpxelinux.0
    Path w FreeNFS jest ustawione na C:\ProgramData\tftpboot\images

    • Z tym, że do wczytania gpxelinux.0 używany jest TFTP a nie NFS. Sprawdź ustawienia serwera TFTP, sprawdź czy w ogóle działa, czy jest odblokowany na firewallu. Sprawdź adres IP w konfiguracji dnsmasq. Za mało szczegółów podałeś, więc zgaduję co jest źle 🙂

  2. Źle wpisywałem adres IP po gpxelinux.0 w ustawieniach routera. Teraz już mi działa.

    PS. Czy tylko ja widzę w komentarzach polskie znaki inną czcionką?

  3. Mi nie działa.
    Nic nie napisałeś jak sprawdzać błędy.
    Jaki image można wżucić ( udf ? czy noramalny iso )
    Jak sprawdzić czy tftp działa ?
    O co chodzi z routerem.
    Czy serwer może być po Wifi ?

Leave a Reply

Your email address will not be published. Required fields are marked *