PXE ou comment la renaissance d'un vieux portable

07/06/2008

Après une installation remontant à 2 ans d’une Fedora 7, son dernier démarrage aura été de m’afficher “GRUB” puis plus rien… Mon lecteur DVD ROM ne fonctionne plus, et pas moyen de booter sur une clef USB (non géré pas mon BIOS)… je me suis dit que le dernier souffle de mon presario 2100 sur lequel j’ai appris mon métier venait de survenir.

Je n’avais pas pensé au fait que mon portable pouvait faire un démarrage réseau, appelé PXE (Preboot Execution Environment), et comme je connaissais un peu la méthode, je me suis dit “pourquoi pas ?”. J’ai donc un DVD de la dernière Ubuntu sous la main, et mon poste de bureau sour Fedora 8. Ce fut donc parti pour l’ultime tentative de réanimation de vieux coucou.

Comment devons nous procéder ? Simplement en faisant ces opérations que je vais vous détailler: -installer et paramétrer TFTP, un système de service réseau léger -copier les fichiers nécessaire à un boot pxe depuis le DVD de Ubuntu (cela fonctionne avec d’autres distributions) -installer et paramétrer un DHCP pour que mon portable soit géré par mon poste de travail, et qu’il lui fournisse le nécessaire pour booter et lancer une installation

Nous allons donc nous mettre d’accord sur les noms, mon poste de travail qui fera office de serveur d’installation sera appelé pour cet article: desktop tandis que le portable sera nommé : portable.

Mon DVD est monté sur desktop avec le point de montage: /media/Ubuntu 8.04 i386. Dans ce répertoire se trouve un sous répertoire: install/netboot. Ce répertoire contient un fichier et un répertoire très importants: pxelinux.0 qui est le fichier qui va permettre de démarrer le boot réseau, et pxelinux.cfg qui est un répertoire de configuration. Ce dernier contient un fichier “default” qui sera la configuration que nous utiliserons.

Nous notons simplement que le répertoire à utiliser sera “/media/Ubuntu 8.04 i386/install/netboot/“.

Reste à installer TFTP et DHCP. \\ Sur mon desktop je m’installe donc les paquets nécessaires:

su -
yum install tftp-server dhcp

Après quelques secondes les deux paquets sont installés. Commençons par paramétrer le service TFTP. Ce serveur va être exécuté à la demande grâce à xinetd. Sur ma Fedora, un fichier par défaut est déjà présent, il ne me reste plus qu’à le modifier pour faire pointer le serveur vers le répertoire netboot. Voici la configuration que j’ai posé dans /etc/xinetd.d/tftp:

# default: off
# description: The tftp server serves files using the trivial file transfer \
#   protocol.  The tftp protocol is often used to boot diskless \
#   workstations, download configuration files to network-aware printers, \
#   and to start the installation process for some operating systems.
service tftp
{
    socket_type     = dgram
    protocol        = udp
    wait            = yes
    user            = root
    server          = /usr/sbin/in.tftpd
    server_args     = -s "/media/Ubuntu 8.04 i386/install/netboot/"
    disable         = no
    per_source      = 11
    cps             = 100 2
    flags           = IPv4
}
  • - Surtout, n’oubliez pas de passer la variable disable à “no’**; voilà pour le service TFTP, il faut relancer le service xinetd pour qu’il soit pris en compte:

service xinetd restart

Passons à DHCP, comme j’ai un réseau avec un routeur internet (livebox par exemple, ou un routeur netgear…) je ne veux pas que mon serveur réponde à toutes les machines mais seulement au portable. Le cas échéant, le serveur DHCP de mon routeur serait court-circuité par mon DHCP sur le desktop et aucune de mes autres machines ne pourraient avoir internet.

Il me suffit simplement de prendre l’adresse MAC de ma carte sur mon portable (en général c’est écrit en dessous de l’ordinateur) et de renseigner correctement le service DHCP pour qu’il ne s’occupe que de mon portable.

Voici comment j’ai configuré mon DHCP dans le fichier /etc/dhcpd.conf sachant que mon réseau est en classe A:

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  
#

ddns-update-style interim;
options  routers 10.0.0.1;
options  domain-name-servers 10.0.0.1;

subnet 10.0.0.0 netmask 255.0.0.0 {
    host portable {
        hardware ethernet 00:0B:CD:87:3F:46;
        fixed-address 10.0.0.200;
        filename "pxelinux.0";
    }
}

J’ai donc un simplement défini que le pc qui a l’adresse MAC 00:0B:CD:87:3F:46 aura l’adresse 10.0.0.200 et qu’il devra prendre le fichier pxelinux.0 au boot PXE.

//Si vous avez une freebox, une livebox… le réseau est en général en classe C, soit 192.168.0.0, par exemple, livebox a un réseau 192.168.1.0/255.255.255.0. Configurez donc le DHCP avec les adresses correctes//

On démarre le service DHCP de cette manière:

service dhcpd start

Et c’est fini ! Je branche mon portable en ethernet (câble réseau) et je démarre. Le Bios me propose de presser F12 pour un boot réseau PXE, ce que je fais. En quelques secondes je vois que son adresse réseau passe à 10.0.0.200 et il m’affiche juste derrière un boot d’install Ubuntu.

L’installation peut commencer, test de matériel, proposition de formatage de disque (d’ailleurs j’ai demandé un partitionnement automatique). L’installeur trouve mon routeur netgear comme je lui ai demandé et il commence l’installation.

Après quelques minutes, je dois redémarrer pour voir si l’installation s’est bien passé. Avant tout je coupe le serveur DHCP de ma fedora (desktop) au cas où service dhcpd stop et je redémarre le portable.

Tout à fonctionné. Le portable retrouve la vie.

Pour résumer, l’installation m’a pris 40 minutes en tout, configuration des serveurs comprise. Je n’ai eut que cela à faire: -mettre le DVD d’installation Ubuntu dans le lecteur de mon poste desktop -installer TFTP et DHCP sur le poste desktop -lancer les services -booter le portable en PXE

Notez que vous pouvez modifier les fichiers de configuration de pxelinux.cfg pour faire des installation réseau automatiques et complète. Cela peut être vraiment utile si vous avez souvent des postes à installer sur un réseau d’entreprise.

Pour ma part, comme mon portable n’avait plus de lecteur CDROM, pas de possibilité de booter sur de l’USB, l’install PXE était mon dernier recours, mais il n’a pas été un problème à mettre en place. C’est étonnant d’ailleurs que ce soit si simple.

Ressources:\\ http://fr.wikipedia.org/wiki/Preboot_Execution_Environment\\ http://doc.fedora-fr.org/wiki/Configuration_d%27un_serveur_pour_lancer_des_installations_par_PXE_boot\\ http://doc.ubuntu-fr.org/netboot

Ça peut vous intéresser aussi


Ubuntu ou la distribution crétine

Le titre en dit long sur mon point de vue…...


Sudo, Sudoers sous Fedora

Que vous soyez un utilisateur de Mac ou de Ubuntu,...


Poste de développement PHP sous Fedora

Linux est un système parfait pour développer. Simple d’installation,...


Fedora 11 mon histoire

Je pense que ce billet peut faire peur à quiconque ...

Merci de m'aider à financer mes services

Si vous avez apprécié cet article, je vous serai reconnaissant de m'aider à me payer une petite bière :)

Si vous voulez en savoir plus sur l'utilisation de flattr sur mon blog, lisez cette page: Ayez pitié de moi

Commentaires

Ajouter un commentaire

Ajouter un commentaire

(*) Votre e-mail ne sera ni revendu, ni rendu public, ni utilisé pour vous proposer des mails commerciaux. Il n'est utilisé que pour vous contacter en cas de souci avec le contenu du commentaire, ou pour vous prévenir d'un nouveau commentaire si vous avez coché la case prévue à cet effet.