Cette note présente comment installer FreeBSD sur une machine ("client") en mode automatique à partir d'un serveur connecté sur le réseau ("serveur").
Une note (en anglais) sur le sujet ici.
PXE (Pre-boot eXecution Environment) est une extension du BIOS des PC Intel qui permet de charger un OS depuis le réseau (l'OS est chargé depuis le réseau comme s'il était chargé depuis un disque dur connecté directement sur l'ordinateur).
PXE attribue une adresse IP à une carte réseau de la machine, puis charge un kernel et l'exécute.
PXE utilise des protocoles "standard", normalisés comme DHCP et TFTP.
FreeBSD peut être configuré pour démarrer complètement depuis un serveur de fichier "réseau" : la machine utilise uniquement des fichiers lus sur le serveur de fichier en utilisant le protocole réseau NFS (le kernel est lu par NFS, les drivers sont lus par NFS, les fichiers de coniguration sont lus par NFS et les comptes des utilisateurs sont lus par NFS (la machine ne contient absolument aucun fichier sur un disque dur local).
Une telle configuration permet d'aoir des clients "légers", dépendant complètement d'un serveur pour pouvoir fonctionner. Le mode de fonctionnement nominal de la machine est de démarrer en utilisant l'OS chargé depuis le réseau.
obtention par PXE d'une adresse IP
chargement par TFTP du loader pxeboot
chargement par NFS du kernel et des modules additionnels
montage de la partition "root" par NFS
démarrage du process "init"
exécution des scripts /etc/rc.diskless{1,2}
montage des autres partitions /usr, /home, ... par NFS
L'installation "diskless" vise à installer une version de FreeBSD sur un disque dur local, connecté sur la machine, à partir des média d'installation stockés sur un serveur réseau, en mode automatique :
Après l'installation, le disque dur de la machine contient FreeBSD, qui est prêt à démarrer : le mode de fonctionnement nominal de la machine est de démarrer en utilisant l'OS de son disque dur.
Un réseau spécifique est créé pour la liaison entre le serveur et les clients "Boot PXE".
(serveur lui aussi sous FreeBSD)
Le client PXE demande une adresse IP par le protocole DHCP. Il faut donc installer un serveur DHCP.
Le serveur DHCP dispose de deux cartes réseau : une carte reliée au réseau de Massy, et une autre reliée au réseau de test.
Les adresses IP des interfaces du serveur sont fixes (les interfaces des PC de Massy sont dynamiques et allouées elles-mêmes par DHCP).
Le démon DHCP est installé à partir des ports de FreeBSD.
Les fichiers de configuration du démon sont :
/usr/local/etc/rc.isc-dhcpd.conf
Le client PXE charge par TFTP
le programme pxeboot
.
Ce programme
est un "loader" du kernel : il va chercher le fichier "kernel" ainsi
que tous les
drivers décrits dans loader.rc
.
Un démon TFTP est utilisé pour charger pxeboot.
(voir l'extrait /etc/inetd.conf)
Le contenu du répertoire /usr/local/export/tftpboot suit :
%ls -R
boot install.cfg mfsroot
pxeboot kernel
./boot:
device.hints kernel loader loader.rc
./boot/kernel:
nfsclient.ko
(voir l'extrait /etc/rc.conf et et /etc/exports)
Le serveur DNS est utilsé pour XXXX
(voir /etc/named.conf et autres : zone directe et zone inverse)
(/boot/loader.rc et install.cfg)
configuration d'installation sur le disque dur local
Modification du contenu des floppys
reprise de /etc/rc.conf pour complément
duplex Ethernet / reset disque dur IDE
$Id: Install_PXE.html,v 1.4 2004/02/12 09:54:04 herbelot Exp $