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,

uruchamia sie instalator,

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.