Introduzione
Stanco di CD/DVD e Chiavette USB che andavano continuamente persi o strisciati ho pensato bene di configurare un server TFTP in modo da poter effettuare le installazioni/formattazioni via rete
La procedura è abbastanza semplice. cosa ci serve:
1 Server DHCP funzionante
2 Server TFTP
3 i CD dei sistemi operativi che intendiamo distribuire
dando per scontato che il server dhcp sia già configurato e funzionante iniziamo con installare il server TFTP
Installazione
apt-get install tftpd-hpa syslinux
una volta installato il demone tftp dobbiamo modificarne il file di configurazione che si trova in /etc/default/tftp-hpa come segue
Configurazione
nano /etc/default/tftp-hpa
# /etc/default/tftpd-hpa
RUN_DAEMON="yes"
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
possiamo modificare TFTP_DIRECTORY come meglio crediamo
Copiamo i file necessari da syslinux :
cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot
cp /usr/lib/syslinux/memdisk /var/lib/tftpboot
cp /usr/lib/syslinux/mboot.c32 /var/lib/tftpboot
cp /usr/lib/syslinux/chain.c32 /var/lib/tftpboot
creiamo la directory che conterrà il file di configurazione.
mkdir /var/lib/tftpboot/pxelinux.cfg
ora creiamo il file di configurazione che verrà usato dal server tftp come menu
nano /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
prompt 0
timeout 300
ONTIMEOUT local
menu title ########## PXE Boot Menu ##########
label 1
menu label 1) Install Windows 7 64bit
KERNEL memdisk
INITRD winpe7_amd64.iso
APPEND iso raw
label 1 e' solo un esempio da qui potrete aggiungere le varie voci in base alle iso che avete
l'albero dei dile directory sara alla fine come segue:
----/var/lib/tftpboot/
|--pxelinux.0
|--menu.c32
|--chain.c32
|--winpe7_amd64.iso
|--iso2.iso
|--isoetc etc
|--pxelinux.cfg
|--default
Sarà necessario a questo punto permettere l'avvio di tftp configurando il file /etc/dhcp/dhcpcd.conf
nano /etc/dhcp/dhcpcd.conf
e aggiungere
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.1 192.168.1.253
filename "pxelinux.0";
next-server 192.168.1.1;
}
sostituire gli ip con quelli a voi appropriati
per ovviare ad alcuni problemi di windows che fa distinzione tra maiuscole e minuscole ho trovato la soluzione creando il file /etc/default/tftpd-hpa.rules e impostando le regole in questo modo:
nano /etc/default/tftpd-hpa.rules
copiare al suo interno quanto segue
ri ^[a-z]: # Remove “drive letters”
rg \\ / # Convert backslashes to slashes
rg \# @ # Convert hash marks to @ signs
rg /../ /..no../ # Convert /../ to /..no../
rg A a
rg B b
rg C c
rg D d
rg E e
rg F f
rg G g
rg H h
rg I i
rg J j
rg K k
rg L l
rg M m
rg N n
rg O o
rg P p
rg Q q
rg R r
rg S s
rg T t
rg U u
rg V v
rg W w
rg X x
rg Y y
rg Z z
r ^/(.*) \1