Czwartek, 18 kwietnia 2024 r.
https://www.pichen.com/

Get Firefox!
Valid XHTML 1.0 Strict
Poprawny CSS!

Instalacja systemu operacyjnego z sieci przy użyciu PXE

1. Wprowadzenie

W ciągu ostatnich kilku lat bardzo przypadła mi do gustu dystrybucja openSUSE systemu Linux. Bardzo dobrze współgra ona z moimi komputerami w roli systemu desktopowego. Staram się być na bieżąco z kolejnymi wydaniami systemu, gdyż na ogół wprowadzają one wiele nowych usprawnień. Zazwyczaj nie korzystam z opcji aktualizacji całej dystrybucji oferowanej przez oprogramowanie YaST.
W takim wypadku wolę całkowicie sformatować partycję / i zainstalować na niej nową wersję systemu, pozostawiając partycję /home nienaruszoną. Dzięki temu, partycja / nie będzie zawierała żadnych pozostałości z poprzedniego systemu, podczas gdy dane użytkowników zostaną zachowane.
Pełne instalacje wymagają jednak nośników instalacyjnych. Wystarczy pobrać z sieci plik obrazu ISO i wypalić go na płycie. Niby łatwe, szybkie i przyjemne. Denerwuje mnie jednak to wypalanie płyt, gdyż po pewnym czasie nabierze się ich cała kolekcja. Jeśli ktoś lubi zbierać płyty, to w porządku. Ja jednak nie widzę powodu dla którego miałbym nagrywać płytę tylko po to, aby posłużyła do instalacji, a potem została zapomniana oraz wyrzucona do kosza.
W świecie uniksowych systemów operacyjnych jest jednak rewelacyjny wynalazek, który całkowicie eliminuje potrzebę stosowania jakichkolwiek nośników w celu instalacji systemu, a nawet pozwala na uruchomienie systemu operacyjnego na maszynie bezdyskowej! Mowa o technologii PXE (ang. Preboot Execution Environment). Pozwala ona na wystartowanie systemu, a ściślej programu rozruchowego (ang. bootloader), nie z dysku twardego, dyskietki, czy z płyty, a z sieci.

W niniejszym artykule opiszę jak zainstalować system openSUSE 11.2 na komputerze, który nie musi być wyposażony w napęd dysków optycznych (CD/DVD/BD). Wystarczy, że będzie posiadał kartę sieciową wspierającą PXE.
W przypadku nowych płyt głównych, karta sieciowa jest niemalże w 100% zintegrowana i jej BIOS zawiera odpowiednie oprogramowanie umożliwiające rozruch komputera poprzez PXE. Dotyczy to także laptopów. W przypadku oddzielonych kart sieciowych, czasem niezbędne jest zainstalowanie układu scalonego pamięci typu ROM. W takiej kości powinno być zapisane oprogramowanie umożliwiające przeprowadzenie rozruchu PXE.
W domu znalazłem jedną kartę sieciową PCI opartą na popularnym układzie Realtek 8139, na której zainstalowana jest podstawka opisana jako „Boot ROM”. Wkładając doń odpowiedni układ scalony, można także zyskać możliwość korzystania z dobrodziejstw PXE.

2. Wymagania

Oprócz komputera na którym instalowany będzie nowy system operacyjny, oczywiście potrzebna będzie druga maszyna, która posłuży jako serwer umożliwiający przeprowadzenie rozruchu PXE innym komputerom w sieci.
W mojej sieci domowej cały czas działa serwer oparty na systemie FreeBSD 8. W dalszej części artykułu zaprezentuję więc, jak skonfigurować tenże system. Bez obaw dla zwolenników Linuksa - mimo iż jest to system z rodziny BSD, to konfiguracja Linuksów jest bardzo podobna.

Reasumując, potrzebne będą:

Dla rodziny procesorów x86 możliwe do pobrania są dwie wersje systemu openSUSE, tj. wersja 32- i 64-bitowa. Można pobrać jakąkolwiek z nich, przy czym należy pamiętać, że instalacja wersji 64-bitowej nie powiedzie się na komputerze z procesorem 32-bitowym. W drugą stronę nie ma natomiast problemu, tj. możliwa jest instalacja wersji 32-bitowej na procesorze 64-bitowym. Architektura maszyny pełniącej rolę serwera nie ma przy tym jakiegokolwiek znaczenia.

W niniejszym artykule założę, że instalowana będzie 32-bitowa wersja systemu openSUSE 11.2. Przy czym w końcowej jego części zaprezentuję, jak udostępnić sieciową instalację obydwu wersji sytemu.

3. Konfiguracja serwera

3.1. Serwer DHCP

Serwer DHCP jest niezbędnym składnikiem technologii PXE. Musi on bowiem nadać adres IP maszynie, która wykonuje rozruch PXE, jak również przekazać jej informację o tym, jak nazywa się plik z programem rozruchowym i skąd można go pobrać. Nawet gdy w dotychczasowej sieci lokalnej stosowane są statyczne adresy IP, to i tak konieczne będzie użycie tego serwera.

Gdyby serwer dhcpd nie był zainstalowany, oczywiście należy go zainstalować. W systemie FreeBSD wystarczy skompilować i zainstalować port isc-dhcp31-server umieszczony w kartotece /usr/ports/net/isc-dhcp31-server. Następnie należy skonfigurować tenże serwer.
Wiele przydatnych artykułów w sieci opisuje jak to zrobić. Wśród nich warty polecenia jest rozdział „Installing and Configuring a DHCP Server” z podręcznika systemu FreeBSD. W nim zostało przejrzyście i dokładnie opisane jak zainstalować, skonfigurować i uruchomić serwer dhcpd.

Upewniwszy się, że serwer dhcpd działa prawidłowo, należy wprowadzić pewne poprawki do pliku dhcpd.conf (znajdującym się najprawdopodobniej w kartotece /usr/local/etc) tak, aby mógł obsługiwać klientów PXE. Należy uruchomić ulubiony edytor tekstu (vim) oraz dodać doń następujące wiersze:

server-name "edmo-2.pichen.com"; next-server edmo-2.pichen.com; filename "pxelinux.0";

Pierwszy wierszy informuje klientów PXE o nazwie serwera, z którego przeprowadzany jest rozruch. Wiersz ten nie jest zbyt istotny. Niezwykle ważne są z kolei dwa następne.
Wiersz drugi zawiera adres komputera, na którym działa serwer TFTP, natomiast trzeci wskazuje nazwę pliku, który ma zostać pobrany z tego serwera w celu przeprowadzenia rozruchu. Adres serwera może być zapisany zarówno w bezpośredniej postaci numerycznej (np. 172.17.17.1), jak też w postaci nazwy mnemonicznej. W wypadku tej drugiej, należy się upewnić, że serwer DHCP będzie w stanie tę nazwę znaleźć i zamienić na adres IP (np. poprzez DNS, plik /etc/hosts, itp.)! Nazwa pliku może być dowolna, jednakże musi się pokrywać z nazwą pliku umieszczonego na serwerze TFTP. W powyższym przykładzie użyłem nazwy pxelinux.0, gdyż jest to domyślna nazwa pliku rozruchowego programu PXELINUX, który zostanie użyty do uruchomienia jądra Linuksa systemu openSUSE.
Warto zwrócić uwagę, że jeśli powyższe wiersze zostaną dodane na początku pliku konfiguracyjnego serwera DHCP, to ustawienia charakterystyczne PXE staną się globalne, a co za tym idzie, stosowane będą dla wszystkich maszyn klienckich w sieci. Aby ograniczyć możliwość rozruchu PXE dla poszczególnych hostów, należy powyższe linie wstawić do odpowiedniej sekcji host. W przeciwnym wypadku, tzn. gdy adresy IP mają być nadawane dynamicznie dla klientów PXE, należy dodać opcję dynamic-bootp w sekcji range. Np.:

range dynamic-bootp 172.17.17.10 172.17.17.20;

Powyższa deklaracja spowoduje, że adresy IP z przedziału od 172.17.17.10 do 172.17.17.20 włącznie będą nadawane zarówno dla zwykłych klientów DHCP, jak również dla klientów PXE.

Po przeprowadzeniu modyfikacji w pliku dhcpd.conf, należy zrestartować serwer DHCP w celu wprowadzenia nowych ustawień. W systemie FreeBSD, wystarczy uruchomić poniższy skrypt:

# /usr/local/etc/rc.d/isc-dhcp restart

3.2. Serwer TFTP

Serwer TFTP zainstalowany jest domyślnie wraz z systemem FreeBSD. W innych systemach czasem konieczna jest jego instalacja. W dystrybucji openSUSE systemu Linux dostępny jest np. pakiet tftp zawierający program klienta oraz serwera protokołu TFTP.
Wróćmy jednak do systemu FreeBSD. Mimo iż serwer TFTP jest dostępny, to domyślnie jest on wyłączony. Aby go włączyć niezbędna jest modyfikacja pliku /etc/inetd.conf. Należy odnaleźć następujące wiersze:

#tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot #tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -l -s /tftpboot

Trzeci parametr informuje o wersji protokołu UDP. Nas intersować będzie wyłącznie wersja 4. protokołu. Toteż pierwszy powyższy wiersz zostanie odkomentowany.
Ostatni parametr wskazuje źródłową kartotekę dla serwera TFTP, tj. kartotekę w której znajdować się będę pliki udostępniane za pomocą protokołu TFTP.
Ja wolę jednak użyć kartoteki /srv/tftpboot, dlatego ostatecznie powyższe wiersze będą miały następującą postać:

tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /srv/tftpboot #tftp dgram udp6 wait root /usr/libexec/tftpd tftpd -l -s /tftpboot

Po wyjściu z edytora tekstu i zapisaniu zmian należy ową kartotekę utworzyć:

# mkdir -p /srv/tftpboot

Kolejnym bardzo ważnym krokiem jest restart demona inetd. Spowoduje on uruchomienia serwera TFTP dla połączeń przychodzących.

# /etc/rc.d/inetd restart

Na razie serwer nie udostępnia jeszcze żadnych plików.
Pierwszym potrzebnym plikiem będzie wspomniany wcześniej plik pxelinux.0. Można go zdobyć pobierając ręcznie cały pakiet SYSLINUX ze strony WWW projektu.
Można go także bezpośrednio pobrać korzystając z kliku poleceń:

# cd ~ # fetch http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.85.tar.gz # tar -xvf syslinux-3.85.tar.gz # cp syslinux-3.85/core/pxelinux.0 /srv/tftpboot # rm -R syslinux-3.85*

Program rozruchowy PXELINUX wymaga pewnych plików konfiguracyjnych do pracy. Można je utworzyć za pomocą następujących poleceń:

# mkdir -p /srv/tftpboot/pxelinux.cfg # touch /srv/tftpboot/pxelinux.cfg/default # touch /srv/tftpboot/msg.txt

Całkowicie niezbędna jest edycja pliku /srv/tftpboot/pxelinux.cfg/default. Jest to główny plik konfiguracyjny programu PXELINUX. Należy go otworzyć w edytorze tekstu i wpisać doń np. następującą zawartość:

default install32 prompt 1 timeout 100 display msg.txt f1 msg.txt # Install openSUSE x86-32 label install32 kernel linux32 append initrd=initrd32 vga=0x314 showopts install=http://edmo-2.pichen.com/openSUSE-11.2-i386

Sądzę, że powyższe opcje są w miarę intuicyjne. Dotoczy to zwłaszcza osób, które wcześniej zetknęły się z innymi programami rozruchowymi pakietu SYSLINUX, oraz programami takimi jak LILO czy GRUB.
Pierwszy wiersz wskazuje, która z opcji rozruchu będzie domyślna, tj. wybrana po wciśnięciu klawisza ENTER, lub po upływie czasu określonego w trzecim wierszu (jednostką jest dziesiąta sekundy).
Linia druga nakazuje programowi PXELINUX wyświetlenie znaku zachęty. Dzięki temu użytkownik będzie mógł wpisać opcję rozruchu. W tym konkretnie wypadku została określona wyłącznie jedna opcja, toteż wiersz ten niekoniecznie musi być określony. Niemniej jednak, w dalszej części artykułu zaprezentuję jak dodać drugą opcję rozruchu, a to już będzie wymagało wyświetlenia znaku zachęty.
Wiersze czwarty oraz piąty zawierają informację o pliku tekstowym, którego zawartość zostanie wyświetlona: od razu po uruchomieniu programu PXELINUX (wiersz czwarty); w przypadku wciśnięcia klawisza F1 w trakcie wyświetlania znaku zachęty (wiersz piąty). Widać, że użyłem takiego samego pliku dla obu sytuacji. Można oczywiście użyć różnych plików, jeśli ktoś miałby taką ochotę.
Kolejne wiersze dotyczą pierwszej i jedynej opcji rozruchu. Parametr label określa nazwę opcji, a w kolejnych wierszach ustawione zostały parametry rozruchu.
Parametr kernel określa nazwę pliku zawierającego jądro systemu, które ma zostać uruchomione.
Parametr append określa tekst, który ma zostać przekazany uruchamianemu jądru. Z punktu widzenia przedstawionego przykładu, najważniejsze są dwie zmienne:

Kolejnym (aczkolwiek niewymaganym) krokiem jest edycja pliku /srv/tftpboot/msg.txt. Można wpisać doń np. następujący komunikat:

*** PXE Boot Server @ edmo-2.pichen.com *** What would you like to boot: install32 - to install 32 bit version of openSUSE 11.2 O/S

3.3. Nośnik instalacyjny (obraz ISO)

Załóżmy, że plik ISO obrazu nośnika instalacyjnego systemu openSUSE 11.2 został wcześniej pobrany i dostępny jest pod ścieżką /root/openSUSE-11.2-DVD-i586.iso. Obraz ten należy zamontować, tak by można było się odwołać do jego plików (innymi słowy: aby można z niego korzystać tak samo jak z zamontowanej realnej płyty DVD):

# mkdir -p /mnt/dvd-openSUSE-11.2-i386 # mdconfig -a -t vnode -u 0 -f /root/openSUSE-11.2-DVD-i586.iso # mount -t cd9660 /dev/md0 /mnt/dvd-openSUSE-11.2-i386

W ten sposób obraz płyty zostanie zamontowany w sytemie plików w kartotece /mnt/dvd-openSUSE-11.2-i386. Należy pamiętać, że obraz zamontowany będzie tymczasowo do restartu systemu, lub jego jawnego odmontowania.

Następnie koniecznym będzie umieszczenie plików jądra oraz obrazu skompresowanego RAM dysku w kartotece źródłowej serwera PXE:

# cp /mnt/dvd-openSUSE-11.2-i386/boot/i386/loader/linux /srv/tftpboot/linux32 # cp /mnt/dvd-openSUSE-11.2-i386/boot/i386/loader/initrd /srv/tftpboot/initrd32

Spostrzegawcze osoby z pewnością zauważą, że zamiast kopiować powyższe pliki, można by po prostu utworzyć doń dowiązania symboliczne, oszczędzając tym samym ok. 30 MB miejsca na dysku. Niestety, nic z tego nie wyjdzie, gdyż serwer protokołu TFTP dostarczany wraz z systemem FreeBSD nie obsługuje prawidłowo takich dowiązań!

3.4. Serwer HTTP

Gdy dysponujemy (szybkim) łączem internetowym to można w ogóle zrezygnować z udostępnienia zawartości nośnika instalacyjnego przy użyciu własnego serwera. Można bowiem zmiennej install ustawić adres zewnętrznego, internetowego serwera udostępniającego pliki instalacyjne. Proces instalacji będzie jednak znacznie wolniejszy niż przy zastosowaniu lokalnego udostępniania plików. Myślę, że jest to dobry argument dla którego warto użyć własnego serwera.

Serwer HTTP nie jest jedynym możliwym narzędziem do udostępnienia zawartości nośnika instancyjnego. Instalator openSUSE ma bowiem możliwość pobrania plików instalacyjnych także przy użyciu innych protokołów transmisji plików takich jak choćby FTP, NFS czy SMB/CIFS. Dlaczego zatem zdecydowałem się wybrać serwer protokołu HTTP? Otóż myślę, że serwer ten jest najłatwiejszy do konfiguracji, a przy tym sprawia najmniej problemów z zaporą sieciową, jeśli ta jest stosowana i restrykcyjnie skonfigurowana. Protokoły takie jak FTP czy NFS wymają więcej wysiłku w konfiguracji zapory sieciowej.

Gdyby serwer WWW nie był jeszcze zainstalowany, wówczas należy go zainstalować. W tym przypadku gorąco polecam program Apache HTTP Server, którego wersję 2.2 można zainstalować z portu apache22 umieszczonego w kartotece /usr/ports/www/apache22. Oczywiście serwer należy skonfigurować i uruchomić. Po dalsze informacje odsyłam do rozdziału „Apache HTTP Server” podręcznika systemu FreeBSD.
Domyślne ustawienia serwera powinny być wystarczające.
W systemie FreeBSD domyślną ścieżką źródłową dla serwera Apache HTTP Server jest kartoteka /usr/local/www/data. W kartotece tej powinniśmy umieścić katalog openSUSE-11.2-i386 zawierający pliki z nośnika instalacyjnego systemu. W ten sposób program instalacyjny będzie w stanie otrzymać pliki instalacyjne, które będą mu serwowane przez tenże serwer WWW.
Zamiast kopiować pliki, korzystniej jest utworzyć dowiązanie symboliczne do kartoteki, gdyż oszczędzi to 3 GB miejsca na dysku (!):

# ln -s /mnt/dvd-openSUSE-11.2-i386 /usr/local/www/data/openSUSE-11.2-i386

Nie jest konieczny restart serwera WWW, gdyż nie zmieniliśmy jego konfiguracji, a jedynie dodaliśmy nowe pliki.

4. Rozruch PXE

Upewniwszy się, że wszystkie powyższe czynności zostały przeprowadzone bezbłędnie, i że serwery DHCP, TFTP, HTTP działają z nowymi ustawieniami, można rozpocząć proces rozruchu PXE na komputerze docelowym. Maszyna ta oczywiście musi zostać podłączona do sieci lokalnej. Po jej uruchomieniu (lub restarcie) należy zmienić w ustawieniach BIOSu sekwencję urządzeń rozruchowych tak, aby rozruch PXE miał najwyższy priorytet.
W moim stacjonarnym komputerze, w którym karta sieciowa jest zintegrowana z płytą główną, urządzenie to nazwane zostało „Network: Realtek Boot Agent”. W laptopie z kolei urządzenie to nazywa się po prostu „Network”.
Niektóre BIOSy mają funkcję wyboru urządzenia rozruchowego bez konieczności modyfikacji ustawień. W takim wypadku wystarczy na ogół wcisnąć odpowiedni klawisz, tuż po uruchomieniu, tudzież restarcie komputera. W moim laptopie np. wystarczy wcisnąć klawisz ESC, aby móc wybrać urządzenie rozruchowe.

Gdy BIOS zakończy swoje działanie, uruchomione zostanie oprogramowanie karty sieciowej, które powinno prawidłowo wykonać rozruch PXE. Na początku zostanie pobrany adres IP, a następnie pobrany oraz uruchomiony zostanie program rozruchowy (PXELINUX) dostarczany mu przez nasz serwer TFTP. Na ekranie powinien się pojawić komunikat zapisany przez nas wcześniej w pliku /srv/tftpboot/msg.txt. Teraz już tylko wystarczy odczekać 10 sekund albo wcisnąć klawisz ENTER, aby uruchomić instalator systemu openSUSE bez użycia jakichkolwiek płyt!

Sądzę, że przedstawiony przeze mnie proces konfiguracji serwera dla potrzeb rozruchu PXE nie jest zbyt skomplikowany. Dla osób posiadających już doświadczenie w administrowaniu systemami UNIX/Linux kroki opisane w niniejszym artykule można przeprowadzić w krótkim czasie, kto wie, czy nie krótszym niż zajęłoby nagranie płyty DVD! Wg mnie taki alternatywny sposób instalacji systemu daje także sporo satysfakcji.

Dla osób chcących dalej eksperymentować z PXE, polecam takie przygotowanie serwera, aby można było uruchomić kompletny system operacyjny (np. wybraną dystrybucję Linuksa) na maszynie bezdyskowej z możliwością normalnej pracy!

Dodatek A. Dwa systemy

W niniejszym dodatku zaprezentuję jak zmodyfikować opisaną konfigurację serwera, aby przy rozruchu PXE można było wybrać instalatory dwóch różnych wersji systemów operacyjnych. Dajmy więc możliwość wyboru zarówno wersji 32-bitowej, jak i 64-bitowej systemu openSUSE 11.2.
Po co w ogóle taka konfiguracja? Gdy posiadamy tylko jedną maszynę, na której chcemy zainstalować konkretny system, to oczywiście rozwiązanie z dwoma instalatorami nie ma większego sensu. Co innego, gdy instalujemy system na więcej niż jednym komputerze, z których niektóre posiadają procesory obsługujące 64-bitowe rozszerzenia, a inne nie. Wówczas na każdym komputerze będzie można wybrać, która wersja ma zostać zainstalowana. Co istotne, oszczędzi się w ten sposób nagrywania wielu nośników instalacyjnych, a sam proces instalacji będzie można zrównoleglić!

Potrzebny będzie plik obrazu ISO nośnika instalacyjnego 64-bitowej wersji systemu openSUSE 11.2. Załóżmy, że obraz ten został już pobrany i dostępny jest w pliku /root/openSUSE-11.2-DVD-x86_64.iso. Aby móc zeń skorzystać, należy go zamontować w systemie:

# mkdir -p /mnt/dvd-openSUSE-11.2-x86_64 # mdconfig -a -t vnode -u 1 -f /root/openSUSE-11.2-DVD-x86_64.iso # mount -t cd9660 /dev/md1 /mnt/dvd-openSUSE-11.2-x86_64

Proszę zwrócić uwagę, iż podczas tworzenia urządzenia dysku pamięci został użyty nowy numer jednostki (poprzedni jest używany przez obraz wersji 32-bitowej).

Następnie zmodyfikujmy plik /srv/tftpboot/pxelinux.cfg/default, dodając drugą opcję rozruchu. Plik ten powinien wyglądać np. tak:

default install32 prompt 1 timeout 100 display msg.txt f1 msg.txt # Install openSUSE x86-32 label install32 kernel linux32 append initrd=initrd32 vga=0x314 showopts install=http://edmo-2.pichen.com/openSUSE-11.2-i386 # Install openSUSE x86-64 label install64 kernel linux64 append initrd=initrd64 vga=0x314 showopts install=http://edmo-2.pichen.com/openSUSE-11.2-x86_64

Warto także zmienić komunikat zapisany w pliku /srv/tftpboot/msg.txt. Może on zawierać np. następującą zawartość:

*** PXE Boot Server @ edmo-2.pichen.com *** What would you like to boot: install32 - to install 32 bit version of openSUSE 11.2 O/S install64 - to install 64 bit version of openSUSE 11.2 O/S

Kolejną czynnością będzie skopiowanie plików jądra oraz skompresowanego obrazu RAM dysku do kartoteki źródłowej serwera TFTP:

# cp /mnt/dvd-openSUSE-11.2-x86_64/boot/x86_64/loader/linux /srv/tftpboot/linux64 # cp /mnt/dvd-openSUSE-11.2-x86_64/boot/x86_64/loader/initrd /srv/tftpboot/initrd64

Ostatnią już czynnością będzie utworzenie w katalogu źródłowym serwera WWW dowiązania symbolicznego do kartoteki zawierającej pliki z nośnika instalacyjnego 64-bitowej wersji systemu operacyjnego openSUSE 11.2:

# ln -s /mnt/dvd-openSUSE-11.2-x86_64 /usr/local/www/data/openSUSE-11.2-x86_64

I voilà!
Uruchamiając ponownie komputer docelowy korzystając z rozruchu PXE, program PXELINUX wyświetli nowy komunikat. Wciskając klawisz ENTER lub odczekując 10 sekund uruchomiony zostanie instalator domyślny, tj. 32-bitowej wersji systemu openSUSE 11.2. W celu uruchomienia instalatora 64-bitowej wersji, w momencie wyświetlenia znaku zachęty programu PXELINUX konieczne będzie wpisanie słowa install64 i jego potwierdzenie klawiszem ENTER.

Dodatek B. Problemy

B.1. Zapora sieciowa

Może się zdarzyć, iż na serwerze zainstalowana i skonfigurowana jest zapora sieciowa. Wówczas należy pamiętać o tym, aby odblokować ruch niezbędny dla PXE.

Załóżmy, że na serwerze działa zaawansowane oprogramowanie filtrujące PF, które zostało ustawiona tak, aby blokować cały ruch przychodzący, natomiast ruch wychodzący z serwera jest dozwolony. W takim wypadku konieczne będzie otwarcie odpowiednich portów używanych przez serwery DHCP, TFTP oraz HTTP. W tym celu koniecznie będzie dodanie np. poniższych wierszy do pliku konfiguracyjnego /etc/pf.conf w sekcji ustawień filtra:

# Zezwolenie na połączenia przychodzących z sieci lokalnej do serwera DHCP pass in quick on $Int_If inet proto udp from 0.0.0.0 port dhcpc to 255.255.255.255 port dhcps pass in quick on $Int_If inet proto udp from $Int_If:network port dhcpc to $Int_If port dhcps # Zezwolenie na połączenia przychodzących z sieci lokalnej do serwera TFTP pass in quick on $Int_If inet proto udp from $Int_If:network to $Int_If port tftp # Zezwolenie na połączenia przychodzących z sieci lokalnej do serwera HTTP pass in quick on $Int_If inet proto tcp from $Int_If:network to $Int_If port www

Oczywiście należy wcześniej zdefiniować makro „Int_If”, tzn. przypisać mu nazwę karty sieciowej podłączonej do sieci lokalnej.
Pozostanie jeszcze przeładowanie konfiguracji zapory sieciowej:

# pfctl -f /etc/pf.conf

W ten oto sposób zapora powinna przepuszczać ruch konieczny dla rozruchu PXE.

Data artykułu: 2010-03-30.


Waszym zdaniem...

+ Dodaj nowy komentarz

Just use Serva...

Komentarz dodał(a) Tom dnia 2017-05-16 13:33:32.

Thanks for the sensible critique. Me & my neighbor were just preparing to do a little research about this. We got a grab a book from our area library but I think I learned more clear from this post. I am very glad to see such wonderful info being shared freely out there.

Komentarz dodał(a) Smithg328 dnia 2015-01-11 14:11:37.

troche to trudne... jestem wtym zielony w sumie dla zabawy chce sie nauczyc tego bo nudzi mnie juz tradycyjne instalowanie systemow i jak mam 2 komputery do formata musze miec 2 plyty badz 3 flash usb:/ a czy win xp,win7 idzie tak zainstalowac?? no i czy nie mogl bys nagrac filmy praktukujacego to wszystko bo tak to fajnie opisane ale nichuja i tak nie wiem od czego zaczac... noi jak to wyglada w praktyce nie ma w sieci fimow tego typu w wersji polskiej mogl bys byc 1 np na youtube bo te wszystkie zagranizne piekne ale tez nie wiodomo co mowia dokladnie.. pozdro

Komentarz dodał(a) lordidas15 dnia 2013-02-05 23:19:26.

Aktualności

2017-05-14

Od dzisiaj strona jest dostępna wyłącznie w połączeniu szyfrowanym (bezpiecznym). Naprawiłem niedziałające odnośniki do galerii, usunąłem problem z wyświetlaniem znaków na starszych stronach relacji z Rosji, Ukrainy i Chin. Dodałem zdjęcia do mojego bloga o Malezji.

2017-05-07

Tydzień przeprowadziłem się do pracy do Kuala Lumpur w Malezji. Zapraszam do przeczytania mojego bloga dotyczącego tej przygody.

2017-03-21

Dodałem obsługę protokołu SSL. Strona dostępna jest także w bezpiecznej, zaszyfrowanej wersji. Drobne korekty w artykułach (dzięki Chris!). Zaktualizowałem sekcję Podróże.

2012-06-06

Dodałem relację z mojej podróży na wschód Kanady w 2010 r. Wzbogaciłem stronę o obsługę komentarzy. Naprawiłem formularz kontaktowy – odtąd korzysta z technologii AJAX. Przeszedłem na użycie tzw. „przyjaznych linków”.

2010-03-30

Dodałem wg mnie ciekawy artykuł opisujący sposób instalacji systemu openSUSE bez użycia nośników instalacyjnych. Do tego celu użyta zostanie technologia PXE umożliwiająca rozruch komputera z sieci. Zapraszam do przeczytania artykułu.

2009-07-18

Zaaktualizowałem informacje o sobie oraz dane kontaktowe. Dodałem nowe podstrony, tj. strony zawierające arytykuły dotyczące systemów UNIX oraz Linux. Ponadto dodałem odnośniki do moich profili na popularnych portalach społecznościowych. Na stronie pojawił się także odnośnik do mojej galerii zdjęć w systemie Google Picasa. Zaktualizowałem zbiór odnośników do relacji z podróży do Chin, Rosji i Mongolii.

2008-07-29

Dodałem podstronę, na której umieściłem przykładowe skrypty systemów uniksowych. Strona została przeniesiona na nowy serwer. Zmieniłem także kodowanie znaków strony na UTF-8.

2006-09-02

Dodałem galerię zdjęć. W galerii umieściłem zdjęcia z podróży do Chin, która odbyła się w 2005 roku. Jako, że aktualnie służę w wojsku, to w galerii umieściłem 4 zdjęcia z przysięgi wojskowej.
Osoby oczekujące na relację z Chin informuję, że jeszcze w tym roku powinna się pojawić na stronie.
 
© Copyright 2000 - 2024 Dawid Pichen. All rights reserved.