Ceci est une ancienne révision du document !
Table des matières
Serveur PXE pour clonage des ordis reconditionnés
Cette configuration d'un serveur de clonage par amorçage PXE (Pre-boot eXecution Environment) pour une installation via le réseau, s'inspire d'un article de David Legrand dans NextInpact
Installation distribution Debian 12
Installation avec debian-12.2.0-amd64-netinst.iso
Nom de la machine : debian-pxe-abeilles
Identifiant : Linux Quimper
Nom du compte : linuxquimper
Schéma de partitionnement : tout dans une seule partition avec un swap de 1Go
Sélection des logiciels :
- Environnement de bureau Debian
- Gnome
- utilitaires usuels du système
- serveur SSH (au cas où)
Compléments à l'installation de Debian
Ajouter l'utilisateur linuxquimper au groupe sudo
- su -
- usermod -aG sudo linuxquimper
- redémarrer l'ordi pour que ça soit pris en compte
Compléments à l'installation de Gnome
- Ajustements ⇒ Barre de titre des fenètres ⇒ Boutons de la barre de titre ⇒ activer Maximiser et Minimiser
- Ajouter “Dash to Dock” dans les extensions de Gnome pour avoir le Dock visible avec le curseur de la souris en bas de l'écran
- Mise à jour du système et des logiciels :
- Dans Logiciels ⇒ Mises à jour ⇒ Dépots des logiciels ajouter
- Logiciel libre dont les dépendances ne sont pas libres
- Logiciel non libre
- Dans Logiciels ⇒ Mises à jour ⇒ Préférences mise à jour
- Mises à jour automatiques : désactivé
Installation et configuration du serveur DHCP/TFTP
Le chois est d'utiliser le serveur DHCP de la box et d'utiliser un proxy DHCP sur notre serveur.
Ainsi, notre serveur utilisé pour l'amorçage PXE ne fera qu'envoyer les requêtes au serveur DHCP de la box, faisant suivre ses réponses en les adaptant au besoin. Pour cela, nous nous reposons sur Dnsmasq. Il s'agit d'une application open source permettant de gérer différents services, dont le proxy DHCP et TFTP
En complément, il nous faut les bibliothèques pxelinux, pour le démarrage du serveur et syslinux pour initialiser les OS.
sudo apt install dnsmasq pxelinux syslinux-common
On commence par créer un répertoire qui sera utilisé comme racine du serveur TFTP et celui pour le menu de l'interface PXE. Nous y plaçons les fichiers qui nous seront nécessaires :
sudo mkdir -p /var/tftpboot/pxelinux.cfg cd /var/tftpboot sudo touch pxelinux.cfg/default sudo cp /usr/lib/PXELINUX/pxelinux.0 . sudo cp /usr/lib/syslinux/memdisk . sudo cp /usr/lib/syslinux/modules/bios/* .
On sauvegarde la configuration de Dnsmasq, contenant sa documentation. Elle pourra vous être utile si vous souhaitez aller plus loin dans la gestion des paramètres et du menu. Puis on ouvre son remplaçant :
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old sudo nano /etc/dnsmasq.conf
fichier dnsmasq
On y place les lignes suivantes. La variable dhcp-range pour le réseau des Abeilles est à 192.168.1.0:
## On n'active pas le serveur DNS port=0 ## On initialise le serveur TFTP enable-tftp tftp-root=/var/tftpboot ## On initialise le proxy DHCP dhcp-range=192.168.1.0,proxy ## On initialise le service PXE dhcp-boot=pxelinux.0 ## On initialise le menu du service PXE # pxe-prompt="Veuillez faire votre choix :" # pxe-service=x86PC, "Interface PXE", pxelinux # pxe-service=x86PC, "Boot depuis le disque local", 30 # ----- PXE CONFIG ----- # https://github.com/WillChamness/Dnsmasq-PXE/blob/main/dnsmasq.conf pxe-service=x86PC,"Interface PXE (BIOS)",bios/pxelinux # BIOS; note that the file name is NOT a typo # UEFI dhcp-match=set:efi-x86_64,option:client-arch,7 dhcp-boot=tag:efi-x86_64,efi64/syslinux.efi ## On active le log du serveur DHCP log-dhcp
On relance le service mais peut-être redémarrer le serveur sera plus efficace
sudo systemctl restart dnsmasq.service
Ajout de fonctions au menu PXE
Dans /var/tftpboot/pxelinux.cfg/default
ajouter les lignes suivantes (hdt est un outil affichant la composition de l'ordinateur)
DEFAULT menu.c32 MENU TITLE Serveur PXE LABEL hdt MENU LABEL ^Hardware Detection Tool KERNEL hdt.c32 LABEL reboot MENU LABEL Reboot COM32 reboot.c32
Installer des iso disponibles dans le menu PXE
Créer un répertoire où seront déposer les fichiers iso
sudo mkdir /var/tftpboot/_iso
Le dispositif est ici assez basique puisque l'on demande à la machine de récupérer l'ISO depuis le serveur TFTP pour la placer en mémoire. Elle est alors montée comme un ramdisk puis utilisée.
Cette façon de faire fonctionne avec les images prévues à cet effet mais ne fonctionne pas passé une certaine taille (1,2 Go environ) et pour la plupart des ISO d'installation classique qui vont chercher un CD/DVD ou une clé USB, sans les trouver comme Debian netinst, antiX ou boot-repair
Ce procédé peut donc être utilisé pour des images de dépannage et autres systèmes minimalistes, mais pas plus.
Déposer les fichiers iso :
- clonezilla-live-abeilles-3.1.0-22-amd64.iso
- clonezilla-live-3.0.2-21-i686-pae.iso
- clonezilla-live-3.0.2-21-i686.iso
- dban-2.3.0_i586.iso
- shredos-2021.08.2_23_x86-64_0.34_20221231.iso
- antiX-23_x64-base.iso
Éditons le menu /var/tftpboot/pxelinux.cfg/default
:
Parfois, certaines images nécessitent la ligne APPEND iso raw
pour être chargées correctement (ajouté systématiquement au cas où) :
LABEL clonezillabeilles MENU DEFAULT MENU LABEL ^Clonezilla Abeilles amd64 LINUX memdisk INITRD _iso/clonezilla-live-abeilles-3.1.0-22-amd64.iso APPEND iso raw LABEL clonezilla32 MENU LABEL ^Clonezilla i686 LINUX memdisk INITRD _iso/clonezilla-live-3.0.2-21-i686.iso APPEND iso raw LABEL clonezilla32pae MENU LABEL ^Clonezilla i686 pae LINUX memdisk INITRD _iso/clonezilla-live-3.0.2-21-i686-pae.iso APPEND iso raw LABEL dban MENU LABEL ^Dban i586 LINUX memdisk INITRD _iso/dban-2.3.0_i586.iso APPEND iso raw LABEL shredos MENU LABEL ^Shredos x86-64 LINUX memdisk INITRD _iso/shredos-2021.08.2_23_x86-64_0.34_20221231.iso APPEND iso raw
Netboot.xyz et iPXE : choisissez votre distribution
Une fois Netboot.xyz lancé, vous verrez un large choix de distributions, Live ou non, que vous pourrez installer comme bon vous semble. Attention, aucune donnée n'étant stockée localement, tous les fichiers seront téléchargés depuis des serveurs ce qui nécessite une bonne connexion internet pour ne pas y passer des heures…
Télécharger netboot.xyz.iso et l'installer dans /var/tftpboot/_iso
puis ajouter au fichier /var/tftpboot/pxelinux.cfg/default
les lignes suivantes :
LABEL netboot MENU LABEL ^Netboot.xyz LINUX memdisk INITRD _iso/netboot.xyz.iso APPEND iso raw
Protocole NFS (Network File System) pour accéder et créer les images Clonezilla
Clonezilla pour accéder ou créer des images peut utiliser le protocole NFS. Les images seront crées dans /home/partimag
Installation du serveur NFS
sudo apt install nfs-kernel-server
et on ajoute au fichier /etc/exports
/home/partimag 192.168.1.0/24(sync,no_root_squash,no_subtree_check,rw)
Initialisation du serveur NFS :
sudo exportfs -a
Installation de Virtualbox
Virtualbox sera utilisé pour créer et mettre à jour les images Clonezilla
Voir le wiki de Debian
Télécharger Virtualbox
et installé le avec sudo dpkg -i
puis faire sudo apt install -f
Installations complémentaires
sudo apt install gcc make perl sudo apt install linux-headers-amd64 linux-headers-6.....-amd64 sudo /sbin/vboxconfig sudo adduser linuxquimper vboxusers
Crer le répertoire /home/linuxquimper/VirtualBox VMs
et y copier les machines virtuelles