Page 1 sur 1

Mise en place d'un serveur TFTP pour l'installation via réseau

Publié : ven. 15 nov. 2019, 16:29
par le Manchot Masqué
Dans une grosse infrastructure comme notre LUG, où les installations sont légions, on peut démarrer les machines via le réseau et faire l'installation à distance via le réseau, sans clé USB ou DVD d'installation.

On installe d'abord les paquets :

Code : Tout sélectionner

apt install tftp tftpd-hpa
On édite /etc/default/tftpd-hpa :

Code : Tout sélectionner

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
# IP fixe du serveur
TFTP_ADDRESS="192.168.X.Y:69"
TFTP_OPTIONS="-4 --secure --create"

#Defaults for tftpd-hpa
RUN_DAEMON="yes"
On monte l'ISO de la Ubuntu (qu'on aura auparavant récupéré...) dans un dossier temporaire, et on copie les fichiers de l'ISO vers le dossier cible :

Code : Tout sélectionner

mkdir /tmp/iso
mount -o loop ubuntu-mate-18.04.3-desktop-amd64.iso /tmp/iso
mkdir /var/lib/tftpboot/ubuntu
cp -a /tmp/iso/* /var/lib/tftpboot/ubuntu
On copie quelques fichiers qui vont nous aider à créer le menu d'accueil :

Code : Tout sélectionner

cp /usr/lib/PXELINUX/* /usr/lib/syslinux/modules/bios/ldlinux.c32 /usr/lib/syslinux/modules/efi64/libutil.c32 /usr/lib/syslinux/modules/efi64/menu.c32 /var/lib/tftpboot
On installe encode NFS pour monter l'image distante

Code : Tout sélectionner

apt install nfs-kernel-server
et on rajoute dans /etc/exports la ligne :

Code : Tout sélectionner

/var/lib/tftpboot/ubuntu *(async,no_root_squash,no_subtree_check,ro,fsid=root)
avant de relancer le service NFS :

Code : Tout sélectionner

systemctl restart nfs-kernel-server
Enfin on créé le menu d'accueil dans le fichier /var/lib/tftpboot/pxelinux.cfg/default :

Code : Tout sélectionner

DEFAULT menu.c32
MENU MARGIN 0
MENU ROWS -9
MENU TABMSG
MENU TABMSGROW -3
MENU CMDLINEROW -3
MENU HELPMSGROW -4
MENU HELPMSGENDROW -1
MENU COLOR SCREEN 30;47
MENU COLOR BORDER 30;47
MENU COLOR TITLE 30;47
MENU COLOR SCROLLBAR 30;47
MENU COLOR SEL 37;40
MENU COLOR UNSEL 30;47
MENU COLOR CMDMARK 30;47
MENU COLOR CMDLINE 30;47
MENU COLOR TABMSG 37;40
MENU COLOR DISABLED 37;40
MENU COLOR HELP 37;40
MENU TITLE Ubuntu Live

LABEL 1 Ubuntu Live
KERNEL ubuntu/casper/vmlinuz
APPEND boot=casper netboot=nfs nfsroot=192.168.X.Y:/var/lib/tftpboot/ubuntu debian-installer/language=fr console-setup/layoutcode=fr console-setup/variantcode=oss initrd=ubuntu/casper/initrd --
On lance le service in.tftpd :

Code : Tout sélectionner

service tftpd-hpa start
et si tout se passe bien, on peut démarrer une autre machine sur le réseau, et faire l'installation en TFTP...

Dernier détail : il faut ouvrir le port UDP 69 si vous l'avez bloqué, sinon ça ne marchera pas !