Cet article vient à la suite de celui sur la configuration du Synology 106e, et il suppose réalisées au préalable les opérations de configuration en question, notamment l'installation d'un environnement Debian chrooté.
#Sommaire-
Comment faire sans lecteur de cédérom ?
En fait, l'idée de cette installation m'est venue lorsque j'ai reçu mon nouvel ordinateur portable Toshiba Portégé R500-10U, une machine géniale parce qu'elle ne pèse que 776 g. Pour ce poids-là on n'a ni lecteur de CD/DVD ni de disquette, ce qui convient à mes usages, mais le lecteur de CD de mes portables précédents avait quand même une utilité : installer un système d'exploitation décent à la place de celui que le fournisseur se croit obligé de mettre sur le disque dur, et dont je vous laisse deviner le nom. Là je suis resté sec, et j'ai même dû passer un week-end avec Vista, non sans répercussions fâcheuses sur mon état psychologique.
J'ai trouvé pas mal de documents consacrés à l'installation d'un système libre à partir d'une clé USB ou d'autres périphériques USB, mais j'ai dû mal m'y prendre, en tout cas je n'ai pas réussi à booter, ou quand j'ai réussi à booter le système d'installation ne trouvait pas l'image ISO de cédérom contenant les paquetages de base, bref je n'y arrivais pas. J'ai donc pensé à l'installation par le réseau.
Choix d'une méthode d'installation
Le réseau de mon employeur bien-aimé comporte un serveur de boot destiné à l'installation de divers systèmes, et effectivement j'ai réussi dans un premier temps à installer ainsi une version un peu ancienne de CentOS, ce qui m'a déjà mis de meilleure humeur, mais ce n'était pas encore ce qu'il me fallait. J'ai essayé de bricoler le serveur DHCP pour ajouter le système qu'il me fallait, mais c'était une mauvaise idée parce que ce serveur n'était pas là pour faire des essais mais pour la production.
Je me suis donc décidé à installer ce qu'il fallait à la maison, et, pourquoi pas, sur mon NAS, après tout c'est une machine tout indiquée pour ce genre d'usage. Je m'imaginais cette manœuvre très compliquée, parce que je ne l'avais jamais réalisée. En fait, pendant une réunion particulièrement ennuyeuse et stérile avec les commerciaux d'un grand fournissseur de SGBD et d'ERP, j'ai commencé à explorer le Web sur le sujet, et je suis tombé sur l'excellent tutorial Setting Up A PXE Install Server For Multiple Linux Distributions With Ubuntu Edgy Eft.
Ce tutorial est pour Ubuntu, mais ce n'est pas trop différent de la Debian, pourtant antique, installée sur mon NAS Synology. En fait, comme la suite allait le montrer, ce tutorial appliqué à la lettre fonctionne parfaitement sur Debian, à quelques nuances près quant à la postion du fichier de configuration du serveur DHCP dans l'arborescence /etc
. On trouvera d'autres explications (en français cette fois) sur le site Comment ça marche et sur le site Debian.
Amorçage et installation système par le réseau
La possibilité pour un ordinateur d'amorcer son système d'exploitation (booter en jargon) nécessite que son microcode de démarrage (firmware, ou BIOS) le permette, ce qui est le cas de pratiquement toutes les machines modernes, et cela repose sur trois protocoles : Dynamic Host Configuration Protocol (DHCP), Trivial File Transfer Protocol (TFTP) et Preboot Execution Environment (PXE).
PXE est programmé dans le microcode, et se déclenchera à la mise sous tension de la machine à condition que l'option de boot par le réseau ait été sélectionnée dans le menu de configuration du BIOS.
Le travail du microcode PXE sera de trouver sur le réseau un serveur DHCP qui accepte de lui répondre.Si tel est bien le cas, le travail du serveur DHCP sera d'envoyer les informations nécessaires à la poursuite des opérations, essentiellement l'emplacement des fichiers d'amorçage (noyau du système d'exploitation et image pré-configurée du contenu de la mémoire au démarrage).
Une fois renseigné, le microcode PXE ira chercher les fichiers d'amorçage désirés, les récupérera par TFTP et les chargera dans la mémoire de l'ordinateur. Il existe des fichiers d'amorçage spécialement configurés pour démarrer l'installation d'un système d'exploitation neuf sur l'ordinateur.
Toujours pendant la réunion, je me suis connecté au NAS à la maison et j'ai commencé les opérations. À la fin de la réunion, le serveur sera opérationnel.
Installer DHCP
Première chose à faire, installer un serveur DHCP. DHCP est le protocole qui permet à votre ordinateur, lorsqu'il se connecte à un réseau, d'obtenir une adresse IP. C'est grâce à DHCP que Free, Orange ou InterPC attribuent une adresse à leurs abonnés. Si vous avez un petit routeur genre Linksys ou Netgear, c'est lui qui obtient l'adresse fournie par le fournisseur d'accès, et il comporte lui-même un petit serveur DHCP qui donne à son tour des adresses à vos ordinateurs. Mais le serveur DHCP de ces petits routeurs est insuffisant pour ce que nous voulons faire, il va donc falloir le désactiver au profit de celui que nous allons installer sur le NAS, plus complet et surtout plus configurable. En effet, le protocole DHCP permet d'envoyer à un système distant des informations bien plus raffinées que juste une adresse prise dans un intervalle, ce à quoi sont limités les petits routeurs.
Le fichier de configuration du serveur DHCP, /etc/dhcp3/dhcpd.conf
,
contient les informations nécessaires à l'amorçage et à la configuration réseau des clients, le mien ressemble à cela :
L'instruction filename
donne le nom du fichier initial d'amorçage, l'instruction next-server
donne l'adresse du serveur où aller chercher ce fichier et les autres fichiers d'amorçage. Comment installer ces fichiers, ce que nous diront la section suivante, et le tutorial déjà cité de Falko Timme, Setting Up A PXE Install Server For Multiple Linux Distributions..., auquel nous renvoyons pour les détails.
Installer TFTP
Ensuite, installer TFTP et les fichiers adéquats comme indiqué dans le tutorial. En bref, les clients s'attendent à trouver les fichiers dont ils ont besoin dans l'arborescence /var/lib/tftpboot/
, avec les détails de configuration dans
le fichier/var/lib/tftpboot/pxelinux.cfg/default
; le mien ressemble à cela :
L'antislash après append vga=normal
dans la configuration de ubuntu_i386_install
est pour indiquer une ligne de continuation, mais dans le fichier réel tout doit être sur la même ligne. Les chemins indiqués dans le fichier sont relatifs à la racine /var/lib/tftpboot/
.
Il faut en outre modifier le fichier /var/lib/tftpboot/boot.txt
, qui anonce le menu des options possibles :
Vérifier avec la commande tree
que l'arborescence est bien conforme à ce qui donné dans le tutorial, lancer l'installation, aller dîner, au dessert tout sera installé. L'essayer c'est l'adopter !