Bootowanie z sieci – PXE na Linuksie

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

Dalsza konfiguracja PXE / gPXE zostanie przeprowadzona na najnowszej dystrybucji LMDE – uściślając Linux Mint Debian Edition 201303 MATE 64-bit, ale identycznie postępować będziemy na Ubuntu Debianie oraz wszystkich innych bazujących na nich dystrybucjach. Oczywiście na Windowsie również możemy to zrobić, ale na Linuksie będzie to prostsze i wygodniejsze. Jeśli jesteś użytkownikiem Windowsa i nigdy nie miałeś do czynienia z Linuksem proponuję spróbować instalacji Linuksa na maszynie wirtualnej, co w sposób łopatologiczny opisuję w artykule Instalacja LMDE na VirtualBox.

Serwer TFTP Trivial File Transfer Protocol instalujemy wydając w terminalu polecenie:

Jego działanie możemy sprawdzić innymi poleceniami, mianowicie:

lub

Głównym katalogiem serwera TFTP jest /srv/tftp i w nim będziemy umieszczać potrzebne do bootowania z LANu pliki.

Syslinux

Pliki te znajdziemy w pakiecie syslinux. Tak więc instalujemy ten pakiet i kopiujemy, to co będzie nam potrzebne w niniejszym tutorialu:

ewentualnie zamiast graficznego vesamenu.c32 możemy użyć tekstowego menu.c32:

Po skopiowaniu wszystkich potrzebnych plików możemy ewentualnie odinstalować pakiet syslinux:

Obrazy płyt instalacyjnych umieszczać będziemy w podkatalogu images serwera TFTP, który utworzymy poleceniem:

Jeśli bootowanym systemem będzie jakakolwiek dystrybucja linuksowa do tego katalogu będziemy rozpakowywać lub montować obraz ISO bootowalnego dysku CD / DVD. Proponuję abyśmy obrazy ISO zapisywali w przykładowym katalogu ~/Pobrane/Images. Ponadto proponuję, aby dla zachowania porządku nazwa podkatalogu do którego rozpakowujemy / montujemy dany obraz ISO była zgodna z nazwą obrazu ISO. W nielicznych przypadkach (tzn. takich gdzie dana dystrybucja przygotowana jest specjalnie pod kątem PXE) będziemy tam rozpakowywać jakieś archiwum ZIP itp. W przypadku pozostałych systemów operacyjnych (Windows / DOS) będziemy w tym katalogu umieszczać wprost obrazy ISO bootowanych płt CD / DVD.

Montowanie obrazów ma tą zaletę nad ich rozpakowywaniem, że będziemy mieć nieco mnie roboty w przypadku aktualizacji danego obrazu ISO, gdyż nie będziemy musieli go powtórnie rozpakowywać. Jeśli zdecydowałeś się, że obrazy ISO będziesz montować, a nie rozpakowywać będziemy to robić w sposób opisany poniżej na przykładzie dystrybucji ratunkowej SystemRescue-Cd.

Ściągamy obraz ISO płyty systemrescuecd-x86-3.5.0.iso i zapisujemy do wcześniej ustalonego katalogu ~/Pobrane/Images. Zgodnie ze wcześniejszymi założeniami tworzymy w katalogu images podkatalog o nazwie zgodnej z nazwą obrazu systemrescuecd-x86-3.5.0:

Następnie edytujemy plik /etc/fstab komendą:

gdzie dopiszemy:

Dla porządku proponuję wszystkie kolejne obrazy ISO płyt CD/DVD dopisywać pod komentarzem # PXE.

Zamontowanie dodanego obrazu ISO nastąpi po wydaniu komendy:

Na koniec musimy utworzyć jeszcze główny plik konfiguracyjny naszego serwera PXE / gPXE:

Serwer NFS

Jak wypomniałem na wstępie protokół TFTP jest przeraźliwie wolny, dlatego do wczytywania obrazów plików w formacie SquashFS stosuje się inne protokoły, najczęściej jest to serwer NFS (Network File System), który instalujemy komendą:

A konfigurujemy edytując plik /etc/exports:

gdzie dopisujemy następującą linię:

Serwer NFS startujemy komendą:

Działanie serwera NFS można sprawdzić poznanymi już poleceniami:

lub

Każdorazowo po edycji pliku /etc/exports musimy powiadomić serwer NFS o poczynionych zmianach komendą:

lub

Przykładowa zawartość pliku /etc/exports może więc wyglądać następująco:

Spis treści

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

6 Comments

  1. Hej, walczę od jakiegoś czasu z pxe. Twój poradnik przydał mi się bardzo. Jednak w pewnym momencie stanąłem w miejscu. Jak zrobić by obraz iso np: windows 7 lub inny system od MS ruszył ?

  2. W tym przypadku:

    /srv/tftp/images/systemrescuecd 192.168.1.0/24(ro,async,no_root_squash,no_subtree_check)

    adres IP to adres hosta, na którym jest postawiony owy serwer ?

  3. Nie, to określenie które komputery z sieci będą miały dostęp do serwera, w tym przypadku 192.168.1.0/24 – wszystkie komputery z IP 192.168.1.xxx (pierwsze 24 bity mają znaczenie).

  4. Kolego napisz co trzeba zrobić dokładnie z ~/Pobrane/Images

Leave a Reply

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