XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. Articles

HOWTO Ubuntu NetBoot avec un Linksys et atftpd

The 2006-11-12 at 12:04 by Loïc d'Anterroches filed under Articles.

Si vous devez mettre à jour votre système et que votre ordinateur ne dispose que d’une connexion réseau (pas de lecteur CD-ROM), vous pouvez facilement faire cela avec un NetBoot. Voici un petit HOWTO pour vous et surtout pour me permettre de me souvenir de comment faire.

C'est simple, il suffit de savoir

Principe

Le principe de NetBoot c’est de permettre à votre ordinateur de démarrer non pas avec le système d’exploitation sur son disque dur mais sur un serveur distant via un connexion réseau. C’est très puissant et efficace à condition d’avoir un bios qui supporte cela et une connexion réseau ethernet et un autre ordinateur qui va servir le système.

Configuration réseau

Dans mon cas je dispose donc :

  • d’un ordinateur portable avec un bios supportant netboot.
  • d’un ordinateur serveur pouvant servir le système d’exploitation.
  • d’un routeur Linksys avec un bios mis à jour qui contient udhcpd.

Quand je connecte mon ordinateur portable au réseau, il reçoit une adresse IP dynamiquement. Cette adresse IP est fournie par le routeur Linksys. Le serveur fonctionne sur le même réseau avec une adresse IP connue.

Détails du fonctionnement

Voici comment un ordinateur portable va booter via le net :

  1. Le portable démarre
  2. Le BIOS du portable est configuré pour chercher un serveur netboot.
  3. Le portable récupère une adresse IP du serveur dhcp (ici le routeur Linksys).
  4. Avec l’adresse IP le serveur dhcp donne les informations concernant le serveur netboot.
  5. Le portable va chercher l’image netboot via le protocole tftp.
  6. Le portable démarre avec l’image récupérée sur le serveur netboot.

Il vous faut donc configurer 3 systèmes :

  1. Votre portable en allant dans le BIOS et sélectionnant NetBoot comme première option dans la séquence de boot.
  2. Le routeur/serveur dhcp pour fournir les information sur le serveur NetBoot en même temps que les adresses IP.
  3. Le serveur NetBoot pour servir l’image NetBoot.

Pour le premier, regardez la configuration de votre ordinateur. Pour les deux suivants, voici les explications.

Configuration du serveur dhcp

Pour ce faire, vous allez vous connecter via telnet ou ssh au serveur dhcp, arrêter le programme qui fournit les adresses IP, changer un tout petit peu la configuration et le redémarrer.

Regardez la documentation de votre bios pour vous connecter en telnet/ssh et connectez vous. Dans mon cas, un vieux bios sveasoft je suis d’abord allé dans l’interface de configuration du routeur et j’ai activé telnet. J’ai ensuite ouvert mon client telnet et je me suis connecté avec le login root et le mot de passe d’administration de mon routeur.

Une fois connecté, trouvez le fichier de configuration de udhcpd.conf. Dans mon cas, le fichier est /tmp/udhcpd.conf.

Modifiez le contenu et ajoutez à la fin :

siaddr 192.168.1.5
boot_file /tftpboot/pxelinux.0
option bootfile /tftpboot/pxelinux.0

Modifiez bien 192.168.1.5 par l’adresse IP de votre serveur NetBoot !

Maintenant arrêtez et redémarrez le programme udhcpd. Cherchez le PID de udhcpd en fonctionnement :

~ # ps ax | grep udhcpd
27296 root        328 S   udhcpd /tmp/udhcpd.conf 
16720 root        336 R   grep udhcpd 

Ici c’est 27296, Donc tuez le :

~ # kill 27296

Et redémarrez le :

~ # udhcpd /tmp/udhcpd.conf

Changez bien /tmp/udhcpd.conf par le chemin vers votre fichier de configuration de udhcpd.

Votre serveur dhcp est configuré, bravo !

Configuration du serveur NetBoot

Je suppose que votre serveur fonctionne avec Ubuntu. Vous allez devoir installer un serveur qui support TFTP.

$ sudo apt-get install atfpd

Maintenant, il vous faut télécharger l’image qui va être servie à l’ordinateur portable. Allez dans votre home :

$ cd ~
$ mkdir tftpboot
$ cd tftpboot
$ wget http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/current/images/netboot/netboot.tar.gz
$ tar zxf netboot.tar.gz
$ sudo chown -R nobody: .
$ cd /
$ sudo ln -s /home/login/tftpboot

Changez bien /home/login/tftpboot et mettez votre login à la place de login.

Dites à atftpd de fonctionner directement sans passer par inet.

$ sudo sed -i 's/USE_INETD=true/USE_INETD=false/' /etc/default/atftpd

Démarrez votre serveur atftpd.

$ sudo invoke-rc.d atftpd restart

Votre serveur NetBoot est prêt !

Démarrez le portable

Vous pouvez démarrer votre portable et le voir charger l’image NetBoot et proposer l’installation de Ubuntu sur votre ordinateur !

References


Comments from readers

cialis said:

cialis online order cheap cialis
<a href="http://www.connectedy.com/cat~cialis_cheap_md~0">cialis</a>
http://www.connectedy.com/cat~cialis_cheap_md~0
[url=http://www.connectedy.com/cat~cialis_cheap_md~0]cialis[/url]

generic viagra said:

generic viagra online viagra generic
<a href="http://beirut.craigslist.org/ofc/413887281.html">generic viagra</a>
http://beirut.craigslist.org/ofc/413887281.html
[url=http://beirut.craigslist.org/ofc/413887281.html]generic viagra[/url]

Voice your ideas

It is painless and I try not to kill electrons in the process.


Your email is required but will not be shared nor displayed.


Do you think your comment will force me to write even better stuff next time? If so, you simply rock.


Logo of Plume CMS