Installation d'Ubuntu avec PXE sous Mac
J'ai eu entre les mains un PC portable tellement vieux et dépravé que plus aucun périphérique possiblement bootable était disponible.
Donc plus de lecteur optique et le BIOS est trop vieux pour booter en USB. La seule solution possible restait l'amorçage par la carte réseau (PXE). Bonne opportunité pour tester Ubuntu Karmic Koala.
C'est avec grande surprise que cette page ne m'a presque pas servie puisque rien ne ressemblait à ce que j'avais de mon côté. Par exemple, je n'ai jamais eu besoin de bind9
...
Amorcer avec PXE
Le but de l'amorçage avec PXE est d'automatiser les installations sur des parcs informatiques à plus ou moins grande échelle. En principe l'admin réseau s'occupe simplement de bien configurer le réseau et lance les installations à distance depuis son terminal.
Bien pratique pour installer une version personnalisée de son OS...
Quand le PC boot, le BIOS ne va pas chercher à amorcer un média comme le disque dur, le lecteur optique ou encore une clé USB ; cette fois-ci, il va lancer une requête DHCP de type DHCPDISCOVER
(un broadcast dans le sous-réseau). Le serveur DHCP va assigner une adresse IP au demandeur et va immédiatement lui indiquer une adresse de prochain serveur à aller voir (notre serveur TFTP) qui va fournir l'image de notre distribution (le kernel d'installation Ubuntu) afin qu'il puisse amorcer l'installation.
Nous allons y aller progressivement, étape par étape afin de ne rien oublier.
Installer et configurer un serveur DHCP sur le Mac
Et bien nous n'y allons pas par 4 chemins, on utilise un bon MacPort :
sudo port install dhcp
Une fois installé, il suffit d'éditer le fichier de configuration :
cd /opt/local/etc/dhcp
sudo cp dhcp.conf.sample dhcp.conf
sudo vim dhcp.conf
Vous pouvez tout effacer et simplement copier coller le contenu suivant en supposant que le sous-réseau de votre box est 192.168.1.0
(auquel cas, changez les adresses) :
ddns-update-style none;
ignore client-updates;
authoritative;
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
next-server 192.168.1.2; # adresse du serveur TFTP
filename "pxelinux.0"; # fichier a chercher sur le serveur TFTP
option routers 192.168.1.1; # passerelle par défaut (adresse de la Box)
option subnet-mask 255.255.255.0; # masque de sous-réseau
option domain-name-servers 192.168.1.1; # serveurs DNS (adresse de la Box)
range 192.168.1.3 192.168.1.4; # plage d’adresse
default-lease-time 200; # durée du bail en secondes
max-lease-time 2000; # durée maxi du bail en sec.
}
Lancez votre serveur DHCP afin de voir si tout fonctionne :
sudo launchctl load -F /Library/LaunchDaemons/org.macports.dhcpd.plist
Si vous avez des erreurs, corrigez-les puis enfin arrêtez votre serveur avec la commande :
sudo launchctl unload /Library/LaunchDaemons/org.macports.dhcpd.plist
Vous avez configuré votre serveur DHCP, maintenant nous allons passer au serveur TFTP (je reviendrais sur le choix des IP après).
Mise en place du serveur TFTP
Ce qui est intéressant, c'est que OSX héberge déjà un serveur TFTP par défaut donc inutile d'en installer un. Il suffit simplement de connaître la commande pour le lancer et peut-être créer le dossier adéquate où sont stockés les fichiers d'amorçage.
En l'occurrence, vous devez créer le dossier /private/tftpboot
. Vous prenez ce dossier comme base de travail et vous y effectuez l'étape « préparer les fichiers ». Une fois terminé, vous devriez avoir cette arborescence dans votre dossier :
tree /private/tftpboot
|-- pxelinux.0 -> ubuntu-installer/i386/pxelinux.0
|-- pxelinux.cfg -> ubuntu-installer/i386/pxelinux.cfg
|-- ubuntu
|-- ubuntu-installer
| `-- i386
| |-- boot-screens
| | |-- adtext.cfg
| | |-- f1.txt
| | |-- f10.txt
| | |-- f2.txt
| | |-- f3.txt
| | |-- f4.txt
| | |-- f5.txt
| | |-- f6.txt
| | |-- f7.txt
| | |-- f8.txt
| | |-- f9.txt
| | |-- menu.cfg
| | |-- po4a.cfg
| | |-- prompt.cfg
| | |-- splash.png
| | |-- stdmenu.cfg
| | |-- text.cfg
| | `-- vesamenu.c32
| |-- initrd.gz
| |-- linux
| |-- pxelinux.0
| `-- pxelinux.cfg
| `-- default
`-- version.info
Ce dossier est en fait la racine de notre serveur TFTP et comme nous avions mis dans la configuration du serveur DHCP plus haut, le fichier à charger sera pxelinux.0
.
Maintenant, pour lancer le serveur, lancez la commande
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
Vous connaissez la commande pour l'arrêtez hein.
Procédure d'amorçage
Bon, nos 2 serveurs fonctionnent... Maintenant il faut connecter le PC au sous-réseau de la box mais vous l'avez bien deviné : si la box distribue ses IP via son propre serveur DHCP, il est fort probable que le PC se fasse attribuer une adresse IP par la box avant notre propre serveur DHCP.
Nous allons donc désactiver le serveur DHCP de notre box : pour cela, allez dans l'interface administration de votre box et désactivez le serveur DHCP.
Il faudra donc configurer manuellement l'interface réseau du Mac afin que vos serveurs DHCP/TFTP puissent se connecter à la box. Dans mon exemple, cette IP est 192.168.1.2
.
Votre Mac est donc connecté à votre box avec l'IP 192.168.1.2
sachant que votre box a l'IP 192.168.1.1
(ou 192.168.1.254
selon les FAI).
Note : pour connaître l'adresse de votre box, il faut regarder la route par défaut dans sa table de routage :
netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 9 1 en1
...
Donc pour récapituler : le PC est branché directement sur un port Ethernet de la box (qui n'a plus de DHCP) et le Mac connecté à la box (et à Internet) via une IP manuelle. Le Mac va faire office de serveur DHCP et de serveur TFTP.
Lancez les 2 serveur sur le Mac et démarrez le PC...
Le PC va lancer un DHCPDISCOVER
sur le sous-réseau et le Mac va lui attribuer l'adresse IP 192.168.1.3
et va ensuite rediriger le PC vers l'adresse 192.168.1.2
(sa propre adresse - afin qu'il se connecte sur le serveur TFTP) et va booter via notre Mac.
Si vous avez tout bien configurez, votre PC devrait bien booter.
Installation d'Ubuntu
Pour avoir fait plusieurs tests, un fois l'installation bien entamée et après le partitionnement des disques, l'assistant vous demande quel types de paquets vous souhaitez installer (c'est ici que vous sélectionnerez Ubuntu serveur, Ubuntu desktop, etc.).
Je vous conseil de NE RIEN sélectionner car souvent cela merde l'installation de Grub juste après.
Installez juste le noyau Debian et rebootez en ré-activant le serveur DHCP de votre box. Vous devriez vous retrouver devant un prompt :
machine login:
password:
user@machine~$ sudo apt-get update
user@machine~$ sudo apt-get upgrade
user@machine~$ sudo apt-get install ubuntu-desktop
user@machine~$ sudo reboot
Suite à cela, votre machine devrait booter et marcher à merveille...
Vous savez désormais installer Ubuntu avec la technique PXE ! Merci de m'avoir lu et surtout merci à Jean-Luc.