PXE
Cos'è il PXE
Si tratta di un metodo per eseguire il boot di un computer attraverso una connessione di rete ethernet grazie al supporto di un apposito server.
Installare Ubuntu facendo boot da rete
Occorre un server nella LAN con installati i seguenti servizi:
- tftpd-hpa
- isc-dhcp-server
# sudo apt-get install tftpd-hpa isc-dhcp-server
Editare il file /etc/dhcpd.conf per configurare il server dhcpd.
Nel successivo esempio di configurazione è stato messo a disposizione il range di IP da 192.168.5.100 a 192.168.5.250, qualsiasi altro range di IP privati andrà ugualmente bene (192.168.1.50-192.168.1.200, 10.0.0.1-10.0.0.254...)
192.168.5.2 è l’IP del PC che fa sia da dhcpd che da tftpd.
subnet 192.168.5.0 netmask 255.255.255.0 { range 192.168.5.100 192.168.5.250; next-server 192.168.5.2; filename "pxelinux.0"; }
NB: Il parametro next-server indica il computer sul quale risiede il server tftpd, non deve essere necessariamente lo stesso del dhcpd.
Riavviare il dhcpd
$ sudo /etc/init.d/isc-dhcp-server restart
Ora occorre scaricare la directory netboot di Ubuntu dove risiedono i file del server tftpd, cioè /var/lib/tftpboot/
- cd /var/lib/tftpboot/
- lftp -c "open http://archive.ubuntu.com/ubuntu/dists/quantal/main/installer-i386/current/images/netboot/; mirror"
Floppy di boot da rete
Se il vostro PC è un po’ datato è probabile che la scheda di rete non lo supporti, in questo caso è possibile scaricare da ROM-o-matic.net immagini di floppy o cd con driver per l’installazione tramite PXE con (quasi) qualsiasi scheda di rete in commercio.
Installazione di ISO personalizzate
Le cose si complicano un pochino se vogliamo installare via PXE il livecd di Ubuntu (o anche una nostra live personalizzata fatta col remastersys), così da non dover riscaricare ogni volta i pacchetti da internet.
Scaricare l'iso che si desidera rendere disponibile per l'installazione
$ sudo wget -c http://releases.ubuntu.com/releases/12.10/ubuntu-12.10-desktop-i386.iso
Montarla in loop per estrarne il contenuto
$ sudo mount ubuntu-12.10-desktop-i386.iso /mnt/ -o loop $ sudo mkdir /var/lib/tftpboot/ubuntu $ sudo cp -a /mnt/casper/ /var/lib/tftpboot/ubuntu $ sudo umount /mnt
Installare il server nfs e condividere la directory dove è stata estratta la ISO.
$ sudo apt-get install nfs-kernel-server $ sudo echo "/var/lib/tftpboot/ubuntu *(ro,sync,no_subtree_check)" >> /etc/exports $ sudo /etc/init.d/nfs-kernel-server restart
Aggiungere al boot-screen dell'installer di Ubuntu la seguente riga per permettere l'installazione anche della live.
$ sudo nano /var/lib/tftpboot/ubuntu-installer/i386/boot-screens/text.cfg
default install
label Ubuntu 12.10 livecd
menu label ^Ubuntu-Live 12.10
kernel /ubuntu/casper/vmlinuz
append initrd=/ubuntu/casper/initrd.gz boot=casper netboot=nfs nfsroot=192.168.5.2:/var/lib/tftpboot/ubuntu quiet splash locale=it_IT bootkbd=it console-setup/layoutcode=it -- only-ubiquity