Nov 4 2009

Instalacja Ubuntu 9.10 przez LAN – PXE Install

Zwykle nie zastanawiamy sie w jaki sposob zainstalowac system operacyjny, wrzucamy CD/DVD do napedu i ruszamy z instalacja bootujac system z plytki. Ale co zrobic, gdy komputer nie posiada wbudowanego napedu optycznego? Tak, mozemy zbootowac przez USB. A co zrobic, gdy BIOS nie posiada takiej opcji w boot menu? Bootujemy z PCMCIA. A co gdy… Mozna tak dlugo, az w koncu z braku mozliwosci zajmiemy sie transplantacja dysku twardego do komputera, w ktorym istnieje mozliwosc uruchomienia instalatora.

Zalozmy jednak, ze komputer nie posiada ani floppy, ani optyki, ani innego typowego napedu umozliwiajacego uruchomienie instalatora systemu a przeniesienie dysku nie wchodzi w gre, w takim przypadku mozemy przeprowadzic uruchomienie za pomoca oprogramowania PXE (Preboot Execution Environment), w ktore musi byc wyposazona nasza karta sieciowa. System PXE zaczytywany jest z flash’a podczas bootowania LAN, np. Intel UNDI, ktory nastepnie zacznie wyszukiwanie serwera DHCP, z ktorego bedzie probowal pobrac boot loadera systemu Ubuntu.

Wiec zaczynamy…

Klientem nazwiemy komputer, ktory laczy sie przez PXE z DHCP zainstalowanym na drugiej jednostce, ktora nazwiemy Stacja, aby nie mylic z serwerem DHCP na niej instalowanym. Spinamy teraz dwa komputery ze soba, najlepiej bezposrednio skretka. Jezeli mamy pomiedzy nimi router sprzetowy z wlasnym DHCP to nalezy go wylaczyc.

Przygotowanie Stacji

Na poczatek zacznijmy sciagac w tle Alternate Install CD, przyda nam sie jak skonczymy konfigurowac Stacje… ok, chyba przesadzilem – wystarczy jedynie katalog netboot, ja jako, ze mam juz Alternate CD, przyklad ten bazuje na netboot z tej wlasnie plytki. Tutaj znajdziemy samego netboot’a dla Ubuntu Karmic.

1. Instalujemy serwer DHCP (To tez mozesz przeczytac…)

czlowiek@maszyna:~$ sudo apt-get install dhcp3-server

Stacja ma dwie karty sieciowe, gdzie jedna na interfejsie eth1 umozliwia wyjscie na swiat, natomiast druga przez eth0 jest wlasnie spieta z klientem.

2. Wybieramy na jakim interfejsie postawimy DHCP

czlowiek@maszyna:~$ sudo dpkg-reconfigure dhcp3-server

i wpisujemy eth0

sprawdzamy czy DHCP odpowiednio jest podpiety, w pliku powinna byc odkomentowana linia INTERFACES=”eth0″

czlowiek@maszyna:~$ sudo nano /etc/default/dhcp3-server

lub

czlowiek@maszyna:~$ cat /etc/default/dhcp3-server | grep INTERFACES
INTERFACES="eth0"

3. Konfigurujemy DHCP

czlowiek@maszyna:~$ sudo gedit /etc/dhcp3/dhcpd.conf

wpisujemy

option domain-name "domowka";
authoritative;
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.1;
        option subnet-mask 255.255.255.0;
        option domain-name-servers 194.204.152.34, 194.204.159.1;
        option ip-forwarding off;
        range dynamic-bootp 192.168.1.5 192.168.1.10;
}

host pxeinstall {
    hardware ethernet 00:A0:CC:DF:FC:32;
    fixed-address 192.168.1.5;
    filename "pxelinux.0";
}

zapisujemy

4. Ustawiamy interfejs eth0

czlowiek@maszyna:~$ sudo nano /etc/network/interfaces

i dopisujemy to

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

5. Restartujemy siec i serwer

czlowiek@maszyna:~$ sudo /etc/init.d/networking restart
czlowiek@maszyna:~$ sudo /etc/init.d/dhcp3-server restart
 * Stopping DHCP server dhcpd3                                 [ OK ]
 * Starting DHCP server dhcpd3                                 [ OK ]

Jak mamy OKi to idziemy dalej, w przeciwnym razie wracamy do ptk 1 i sprawdzamy jeszcze raz, albo dajemy komentarz i ktos odpowie

6. Instalujemy TFTP (Trivial File Transfer Protocol), taki prosty FTP
TFTP umozliwi transfer plikow do klienta

czlowiek@maszyna:~$ sudo apt-get install tftpd-hpa tftp-hpa openbsd-inetd

7. Konfigurujemy TFTP

czlowiek@maszyna:~$ sudo gedit /etc/inetd.conf

dodajemy linie, jezeli jej nie ma

tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

tworzymy katalog, jezeli go nie ma

czlowiek@maszyna:~$ sudo mkdir /var/lib/tftpboot

edytujemy default’a tftpd’a

czlowiek@maszyna:~$ sudo gedit /etc/default/tftpd-hpa

wpisujemy to

RUN_DAEMON="yes"
OPTIONS="-l -s /var/lib/tftpboot"

jezeli nie ma i restartujemy demona

czlowiek@maszyna:~$ sudo /etc/init.d/tftpd-hpa restart

i sprawdzamy czy zyje

czlowiek@maszyna:~$ netstat -lu
...
udp        0      0 *:tftp                  *:*
...

8. Konfigurujemy netboot’a
Pobrany obraz plyty Alternate CD wypalamy lub montujemy

czlowiek@maszyna:~$ mount -o loop ~/Download/os/karmic-alternate-i386.iso /media/cdrom0

kopiujemy zawartosc katalogu netboot

czlowiek@maszyna:~$ sudo cp -R /media/cdrom0/install/netboot/* /var/lib/tftpboot/

tworzymy dowiazanie do pliku default dla klienta, nazwa dowiazania to MAC karty klienta bez znaku :, czyli 00:A0:CC:DF:FC:32 zamieniamy na 00A0CCDFFC32

czlowiek@maszyna:~$ sudo ln -s /var/lib/tftpboot/pxelinux.cfg/default /var/lib/tftpboot/pxelinux.cfg/00A0CCDFFC32

9. Sprawdzamy konfiguracje

czlowiek@maszyna:~$ tftp 192.168.1.1 -c get pxelinux.0
czlowiek@maszyna:~$ ls
...
pxelinux.0
...

jak zaciagnelo pliczek to … to byloby na tyle w kwestii konfiguracji Stacji, przechodzimy do Klienta

Przygotowanie Klienta

1. Konfigurujemy klienta
Wchodzimy do BIOS’u i ustawiamy 1st urzadzenie bootujace na Intel UNDI, ktory zaladuje PXE z karty sieciowej

restart i czekamy … uruchamia sie PXE, skanuje siec,

pxe-dhcp-search

uruchamia sie instalator,

pxe-ubuntu-loader

instalujemy Ubuntu Karmic Koala i cieszymy sie swiezutkim OS’em.

Wszystkie podobienstwa do hardware, software oraz ipkow, macow istniejacych w rzeczywistosci jest niezamierzone i zupełnie przypadkowe.


9 odpowiedzi do “Instalacja Ubuntu 9.10 przez LAN – PXE Install”

  • Gregers Mowi:

    No nareszcie porządny, rzeczowy profesjonalny opis. Dziękuję i gratuluję.

  • mantis Mowi:

    Elo, fajny opis, ale co zrobić gdy nie znam maca urządzenia i chcę żeby każdy mac podłączony otrzymywał możliwość dostępu do tego obrazu płyty ?

  • Gregers Mowi:

    Znowu się przydało :) Chyba wydrukuję ! Pozdrawiam

  • lookout Mowi:

    You’re welcome :)
    Jak wyjdzie 10.10 to sprawdze i zaktualizuje jezeli zajdzie taka potrzeba.

  • energizer Mowi:

    No ja już prawie zostałem użytkownikiem Ubuntu, niby wszytsko ładnie a tu dalej no boot filename czy jakos tak… Daje jeszcze raz komende tftp 192.168.1.1 -c get pxelinux.0
    Transfer timed out.
    No i dupa…

  • energizer Mowi:

    Wszystko niby idzie ok, lecz gdy daję tftp 192.168.1.1 -c get pxelinux.0 to wyświetla się Transfer timed out.
    Na kliencie komunikat No boot filename received.

  • pawel Mowi:

    “jak zaciagnelo pliczek to …” – niestety w 10.10 po komendzie
    tftp 192.168.69.1 -c get pxelinux.0 to wyświetla się Transfer timed out. – a bylo by tak pieknie -:(

  • pawel Mowi:

    Oupss
    po restarcie kompa pliczek się zaciągnął, a jak jeszcze w firestarterze zezwoliłem na ruch sieciowy Ubuntu 10.10 zaczęło się instalować.
    Dzięki za przewodnik.

  • Krzysztof Dziadek Mowi:

    Witam, u mnie zadziałało dopiero po tym, jak w podanym przez ciebie bloku dodanym do pliku /etc/dhcp3/dhcpd.conf zmieniłem adres MAC na taki, jaki ma mój klient.

Zostaw odpowiedz