Racine Carte Themes Recherche Nouvelles Archives Liens A Propos
[Top Bar]
[Bottom
Bar]
[Photo de l'auteur]

by Ken Yap
L'auteur: Vit � Sydney en Australie. Sa premi�re rencontre avec Unix date de 1979. Il utilis� Linux les 4 derni�res ann�es pour le traitement de textes, l'acc�s Internet et comme support pour son passe temps: l'�lectronique amateur. Quand il ne joue pas avec Linux ou qu'il n'est pas � son travail, il aime voyager, rencontrer des gens int�ressants, essayer de nouvelles cuisines ou simplement appr�cier l'environnement en se promenant. Il travail pour une soci�t� multinationale en tant que scientifique.

Une Introduction au D�marrage R�seau avec Etherboot

[Ilustration]

R�sum�: Cet article d'un niveau avanc�, explique comment d�marrer un ordinateur � partir d'un programme stock� dans une m�moire non volatile et sans acc�der au disque dur. C'est une technique id�ale pour maintenir et configurer un parc de machines Linux.




Qu'est ce que le d�marrage r�seau?

Le d�marrage r�seau est une vielle id�e: l'ordinateur a dans une m�moire non volatile, par exemple une ROM, un programme qui lui permettra de contacter un serveur et d'obtenir des fichiers syst�me au moyen d'un r�seau. Un des objectifs est d'�viter l'utilisation d'un disque dur pour le d�marrage. Il y a plusieurs arguments en faveur de ce choix. L'un est de r�duire le co�t de la maintenance du logiciel sur plusieurs machines diff�rentes. Avec le d�marrage r�seau, tous les fichiers sont centralis�s dans un seul serveur et peuvent �tre mis � jour � un seul endroit. Utiliser des ordinateurs dans un endroit o� les disques durs ne sont pas assez fiables est une autre raison. Par exemple, il pourrait s'agir d'un ordinateur pos� sur le sol d'une usine o� un disque dur serait trop fragile. Enfin, une autre raison consiste � vouloir d�marrer une machine avec diff�rents syst�mes d'exploitation sans avoir � recharger le logiciel.

Le d�marrage r�seau co�xiste souvent avec le d�marrage disque. Par exemple, un syst�me peut ex�cuter Windows depuis le disque mais quelques fois Linux depuis le r�seau. Il y a quelques applications interessantes de cette technique. Ainsi, un de mes amis l'utilise pour recharger Windows depuis le r�seau. Quand une installation Windows se d�grade, comme souvent, l'administrateur peut re-installer une version toute neuve en d�marrant Linux depuis le r�seau et en laissant un script automatique formater le disque et y recopier l'installation Windows.

Comment cela fonctionne t-il?

Afin de d�marrer sur le r�seau, un ordinateur doit avoir:
1. une identit�
2. une image de syst�me d'exploitation et
3. g�n�ralement un syst�me de fichiers en �tat de marche.

Considerons un ordinateur sans disque (DC) qui a une m�moire morte (ROM) de d�marrage r�seau. Il peut s'agir de n'importe lequel d'une s�rie identique de DCs. Comment distinguer cet ordinateur des autres? Il existe une information sp�cifique � cet ordinateur (en fait son adaptateur r�seau), c'est son adresse Ethernet. Chaque adaptateur Ethernet au monde poss�de une adresse unique de 48 bits car chacun des fabricants de mat�riel Ethernet s'est vu assign� un bloc d'adresses. Par convention, ces adresses sont �crites avec des chiffres hexad�cimaux r�partis par groupes de deux chiffres et s�par�s par deux points, par exemple: 00:60:08:C7:A3:D8.

Les protocoles utilis�s pour obtenir une adresse IP, � partir d'une adresse Ethernet, sont appel�s Boot Protocol (Protocole de d�marrage) (BOOTP) et Dynamic Host Configuration Protocol (Protocole de Configuration Dynamique de l'H�te) (DHCP). DHCP est une �volution de BOOTP. Pour notre propos et sans avis contraire, tout ce qui s'applique � BOOTP s'applique aussi � DHCP. (En fait il n'est pas exact que BOOP et DHCP traduisent uniquement les adresses Ethernet. Les concepteurs de BOOTP et DHCP ont pr�vus qu'ils fonctionnent avec n'importe quel type d'adresse physique. Mais Ethernet est ce que les gens utilisent le plus.)

Un exemple d'�changes BOOTP se passe ainsi:

DC: Salut, mon adresse physique est 00:60:08:C7:A3:D8, donnez moi mon adresse IP s'il vous plait.

Serveur BOOTP: (Regarde l'adresse dans la base de donn�e.) Votre nom est aldebaran, votre adresse IP est 192.168.1.100, votre serveur est 192.168.1.1, le fichier a partir duquel vous devez d�marrer /tftpboot/vmlinux.nb (et quelques autres informations).

Vous pouvez vous demander comment le DC a trouv� l'adresse du serveur BOOTP en premier lieu. La r�ponse est: il ne l'a pas trouv�e. La requ�te BOOTP � �t� diffus�e sur le r�seau local et n'importe quel serveur BOOTP capable de r�pondre � la requ�te le fera.

Apr�s avoir obtenu une adresse IP, le DC doit t�l�charger une image d'un syst�me d'exploitation et l'ex�cuter. Un autre protocole Internet est alors utilis� ici, il est appell� Trivial File Transfer Protocol (Protocole Trivial de Transfert de Fichiers) (TFTP). TFTP est une version expurg�e de FTP. Il n'y a pas d'identification et il fonctionne au dessus de UDP (User Datagram Protocol) au lieu de TCP (Transmission Control Protocol). UDP fut choisit au lieu de TCP pour des raisons de simplicit�. L'implantation de UDP sur le DC peut �tre de petite taille ce qui permet de loger le code dans une ROM. Comme UDP est un protocol de transfert de blocs, contrairement aux protocoles de transfert de flux, le transfert se fait bloc par bloc, de la mani�re suivante:

DC: Donnez moi le bloc 1 de/tftpboot/vmlinux.nb.
TFTP serveur: Le voil�.
DC: Donnez moi le bloc 2.

et ainsi de suite, jusqu'� ce que tout le fichier soit transf�r�. Le contr�le des �changes est un simple sch�ma d'acceptation de chaque bloc. Les paquets perdus sont retransmis apr�s atteinte du temps limite. Quand tous les blocs ont �t� re�us, la ROM de d�marrage r�seau, donne la main � l'image du syst�me d'exploitation au point d'entr�e.

Enfin, afin d'ex�cuter un syst�me d'exploitation, un syst�me de fichiers racine doit �tre fournit. Le protocole utilis� par Linux et autres Unix est normalement Network File System (NFS), bien que d'autres choix soit possibles. Dans ce cas, le code n'a pas besoin de r�sider dans la ROM mais peut faire partie int�grante du syst�me d'exploitation qui vient juste d'�tre charg�. Toutefois, le syst�me d'exploitation doit pouvoir s'ex�cuter avec un syst�me de fichier racine qui est NFS, au lieu d'un v�ritable disque. Linux poss�de les param�tres de configuration pour construire une version qui peut le faire.

La pratique du d�marrage r�seau

En plus des ROMs commerciales de d�marrage, il y a deux sources pour des paquetages gartuits de d�marrage r�seau. Ce sont Etherboot et Netboot. Les deux peuvent �tre trouv�s sur la Page Etherboot. En premier lieu, il faut v�rifier que votre carte r�seau supporte Etherboot ou Netboot. Enfin, il vous faudra trouver une personne qui peut mettre le code pour vous sur une EPROM (Erasable Programmable Read Only Memory), mais pour commencer vous pourrez d�marrer par le r�seau depuis une disquette.

Pour cr�er une disquette de d�marrage, un secteur de d�marrage sp�cial est fournit dans la distribution. Ce petit programme de 512 octets charge en m�moire les secteurs de la disquette qui le suivent et en lance l'�x�cution. Ainsi, pour faire une disquette de d�marrage, il suffit de concatener le secteur de d�marrage avec le code binaire Etherboot qui contient le pilote pour une carte r�seau comme suit:

cat floppyload.bin 3c509.lzrom > /dev/fd0

Avant d'utiliser la diquette de d�marrage r�seau, vous devez installer trois services dans Linux: BOOTP (ou DHCP), TFTP et NFS. Vous n'avez pas � installer les trois d'un coup, vous pouvez le faire par �tapes en vous assurant qu'une fonctionne avant de passer � la suivante.

Je suppose que vous avez install� le serveur BOOTP d'une distribution ou que vous avez recompil� les sources. Vous devez alors vous assurer que ce serveur attend bien les requ�tes bootp. Il y a deux fa�ons de le faire: l'une consiste � d�marrer bootpd comme un service r�seau qui �coute en permanence lorque l'ordinateur est actif, et l'autre est de le d�marrer depuis inetd. Dans ce dernier cas, /etc/inetd.conf doit contenir une ligne comme celle ci:

bootps dgram udp wait root /usr/sbin/tcpd bootpd

Si vous devez modifier /etc/inetd.conf, vous devrez alors red�marrer inetd en envoyant au processus un signal HUP.

Ensuite, vous devez donner � bootp une table de correspondance entre les adresses Ethernet et les adresses IP. Cette table est dans /etc/bootptab. Elle contient des lignes de la forme:

aldebaran.foo.com:ha=006008C7A3D8:ip=192.168.1.100:bf=/tftpboot/vmlinuz.nb

D'autres informations peuvent �tre sp�cifi�es mais nous commenceront par des choses simples.

D�marrer maintenant le DC avec la disquette, il devrait d�tecter la carte Ethernet et diffuser une requ�te BOOTP. Si tout se passe bien, le serveur renverra au DC les informations requises. Comme /tftpboot/vmlinux.nb n'existe pas encore, il s'arr�tera en essayant de charger le fichier.

Vous devez maintenant compiler un noyau sp�cial, c'est � dire un noyau qui permet de monter un syst�me de fichier racine depuis NFS. Vous devez aussi activer l'option qui permet d'obtenir l'adresse IP du noyau depuis la r�ponse originale de BOOTP. Vous devrez aussi compiler le pilote Linux de votre carte r�seau dans le noyau et non comme un module. Il est possible de ne charger qu'un ramdisque initial de telle sorte que le chargement de module fonctionne, mais vous pourrez faire cela plus tard.

Vous ne pouvez pas installer directement le fichier zImage qui r�sulte de la compilation. Il doit �tre transformer en une image marqu�e (tagged image). C'est un noyau normal qui contient une ent�te sp�ciale qui dit au programme de d�marrage r�seau � quel endroit de la m�moire vont les octets et o� d�marrer le programme (point d'entr�e). Le programme mknbi-linux permet de cr�er cette image marqu�e. Cet utilitaire se trouve dans la distribution Etherboot. Apr�s avoir g�n�r� l'image, placez la dans le r�pertoire /tftpboot/etc/bootptab. Assurez vous de rendre ce fichier lisible par tous car le serveur tftp n'a aucun privil�ge particulier.

Pour TFTP, je suppose que vous avez install� tftpd d'une distribution ou que vous avez recompil� les sources. Tftpd est normalement d�marr� par inetd avec une ligne comme la suivante dans /etc/inetd.conf.

tftp dgram udp wait root /usr/sbin/tcpd in.tftpd -s /tftpboot

Red�marrez inetd avec un signal HUP et r�essayez le d�marrage. Cette fois ci il devrait charger l'image du noyau et le d�marrer. Vous constaterez qu'il continuera jusqu'au moment o� il cherche � monter le syst�me de fichier racine. Vous devez alors configurer et exporter des partitions NFS pour continuer.

Pour diverses raisons, il n'est pas conseill� d'utiliser le syst�me de fichier racine (root) du serveur comme syst�me de fichier racine des DCs. Entre autre raisons, il y figure plusieurs fichiers de configuration et les DCs r�cup�rerons la mauvaise information de cette mani�re. Autre raison, la s�curit�. Il est dangereux de donner un acc�s en �criture � la racine de votre serveur (et cet acc�s est n�cessaire pour le syst�me de fichier racine). Toutefois, le bon cot� de la chose est qu'un syst�me racine pour le DC n'est pas tr�s gros, environ 30 MB, et la majorit� de ce volume peut �tre partag� par plusieurs DCs.

Id�alement, vous devez savoir quels fichiers votre syst�me d'exploitation attend dans le syst�me de fichiers racine pour le construire. Pour le d�marrage, les fichiers des p�riph�riques (/dev), ceux dans /sbin et ceux de /etc sont critiques. Vous pouvez gagner du temps en recopiant un syst�me de fichiers existants et en modifiant quelques fichiers pour le DC. Il y a, dans la distribution Etherboot, un didactitiel et des liens vers quelques scripts qui cr�eront un tel syst�me de fichier pour DC � partir d'un syst�me de fichier racine sur un serveur. On trouve aussi quelques astuces de d�pannage dans la distribution Etherboot car c'est souvent la partie la plus critique de l'installation.

Le noyau personnalis� Linux pour le DC s'attend � voir la racine du syst�me de fichier en /tftpboot/<adresse IP du DC>, par exemple: /tftpboot/192.168.1.100 dans la cas ci-dessus. Ceci peut �tre chang� en configurant le noyau si n�cessaire.

Maintenant cr�ez ou editez /etc/exports sur le serveur et mettez y une ligne de la forme suivante:

/tftpboot/192.168.1.100 aldebaran.foo.com(rw,no_root_squash)

L'acc�s rw est n�cessaire � diff�rents services syst�me. L'attribut no_root_squash emp�che NFS d'associer l'identificateur root � un autre. Si cela n'est pas pr�cis�, divers d�mons et t�ches d'enregistrement (loggers) ne seront pas satisfaits.

D�marrez ou red�marrez les services NFS (rpc.portmap and rpc.mountd) et r�essayez le d�marrage sans disque. Si cela fonctionne, le noyau devrait �tre capable de monter un syst�me de fichiers et de d�marrer compl�tement jusqu'� l'invite. Vous trouverez probablement plusieurs choses mal configur�es. La plupart des distributions Linux sont orient�es vers des op�rations disque et n�cessitent peu de modifications pour le d�marrage sans disque. L'erreur la plus commune est li�e � la d�pendance de fichiers dans /usr pendant le processus de d�marrage. Les deux solutions possibles sont:
1. Fournir les quelques fichiers requis dans dans un petit r�pertoire /usr dans le syst�me de fichier racine, qui sera � son tour �cras� quand /usr sera import�.
2. Modifier les chemins pour rechercher les fichiers dans le syst�me de fichiers racine. Les fichiers � modifier sont dans /tftpboot/192.168.1.100 (rappelez vous que ceci est le r�pertoire racine du DC).

Vous pouvez aussi souhaiter monter d'autres r�pertoires depuis le serveur, tels que /usr (qui peut �tre export� en lecture seule).

Une fois que vous �tes satisfait de votre d�marrage r�seau sans probl�mes, vous pouvez mettre le code sur une EPROM. Un programmateur d'EPROM coute environ 100 dollars americains, et n'est pas un investissement rentable pour un amateur qui l'utilise sporadiquement. On peut en trouver sur le march� de l'occasion � des prix interessants si l'on est certain de disposer du logiciel n�cessaire � son utilisation. Un amateur �lectronicien comp�tent peut en construire un � partir des quelques sch�mas gratuits que l'on trouve sur Internet, mais pour la majorit� des lecteurs, la meilleure solution, est de se rapprocher de quelqu'un qui en a un, peut �tre un groupe d'�lectroniciens amateurs ou un employ� de l'industrie �lectronique.

Nota sur la technologie des EPROM: Les bits d'une EPROM sons programm�s en injectant des �lectrons � haut voltage dans la porte (Gate) d'un transistor � effet de champ (FET), l� ou un bit � 0 est souhait�. Les �lectrons pi�g�s l� rendent ce transistor conducteur, ce qui est lu comme un 0. Pour effacer l'EPROM, les �lectrons pi�g�s sont acc�l�r�s au moyen d'un bombardement ultra-violet au travers de la fen�tre de quartz. Pour �viter un effacement lent sur plusieurs ann�es, � cause de la lumi�re du soleil et des lampes fluorescentes, cette fen�tre de quartz est couverte avec une �tiquette opaque pendant l'utilisation normale.

Il existe une autre technologie, appel�e EEPROM pour Electrically Erasable PROM (M�moire Programmable � lecture seule effa�able Electriquement), aussi appel�e m�moires Flash. Dans ce cas, les bits sont effac�s par un signal �lectrique. Evidement, cela �limine le besoin d'un effaceur si l'EPROM doit �tre r�utilis�e, mais n�cessite des circuit plus complexes pour traiter les signaux d'effacement. Si l'on est � l'aise en �lectronique, il y a dans la distribution Etherboot un circuit et le logiciel de pilotage associ� pour une carte EEPROM. La carte est log�e dans un emplacement bus ISA du PC et d�marre une carte r�seau log�e dans un autre emplacement.

Utilisation du d�marrage r�seau

Les terminaux X constituent une utilisation naturelle du d�marrage r�seau. L'abscence de disque dans le terminal le rend plus silencieux et contribue � un environnement de travail plus agr�able. La machine devra avoir 16 MB de m�moire vive ou plus et la meilleure carte vid�o possible. C'est une utilisation id�ale pour un 486 haut de gamme ou un pentium bas de gamme qui est devenu obsol�te avec les progr�s des mat�riels.

D'autres utilisateurs ont choisis le d�marrage r�seau pour des groupes de machines o� la charge des DC est faible et ne n�cessite pas de disque dur. Par exemple un groupe de machines dans une classe.

Pour en savoir plus

Votre premir point de passage oblig� est le site Etherboot:
http://www.slug.org.au/etherboot/

Vous y trouverez des liens vers d'autres ressources y compris une liste de diffusion � laquelle vous pourrez vous inscrire et o� l'on discute des probl�mes et des solutions.

Joyeux netbooting!


Traduit par JohnPerr


Ce site web est maintenu par Miguel Angel Sepulveda
© Ken Yap 1998
LinuxFocus 1998