IPv6 Certification Badge for kiokoman

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