Retour à l'accueil

Boot réseau station SUN


Lundi 01 Décembre 2003

Installation Debian GNU/Linux sur SUN Sparc Ultra2

Matériel:
SUN Sparc Ultra2 Creator 3D
Bi-processeur 200MHz
RAM 256 Mo
HD Quantum 4.2 Go
< insérer photos complet clavier + intérieur >


PC sous Debian SID avec noyau 2.4.22. Mon mirroir woody est lui sur une autre machine sous Mandrake 9.0.

Documentation utilisée:

debian/dists/woody/main/disks-sparc/3.0.23-2002-05-21/doc/fr/install.fr.txt

Qui devrait se trouver sur tous les bons mirroirs.

La machine ne disposant pas de lecteur de disquettes ni de lecteur de CD-ROM, il faut procéder à une installation par le réseau.
Il faut de plus la faire booter sur l'interface réseau. Pour cela j'ai choisis la méthode arp + rarp + tftp. (Chapitre 4.4 de la doc).
Il faut connaître l'adresse MAC de la Sparc, pour cela rien de plus simple, l'OpenBoot SUN nous l'indique dès que la machine est sous tension.

< image OpenBoot >

Bon faut aussi trouver un nom et une adresse IP pour cette machine. Après Kaboul, Bagdad ou Teheran, Saigon sonne pas mal. (Suggestion de Talanthyr).

Ce sera donc 192.168.1.7 saigon

J'ajoute alors la ligne suivante dans mon /etc/hosts :

192.168.1.7 saigon.mondomaine.com saigon

On envoie ça au cache arp:
# arp -s 192.168.1.7 08:00:20:87:B3:F7

On vérifie:
# arp -a
saigon.smd.com (192.168.1.7) at 08:00:20:87:B3:F7 [ether] PERM on eth0

C'est bon !

Maintenant rarp:
# rarp -s saigon 08:00:20:87:B3:F7
SIOCSRARP: Invalid argument

Ah tiens... Voyons voir:
# rarp -a
This kernel does not support RARP.

Tssss... Bon là, j'avoue, une lecture trop rapide de la page man de rarp et de la doc debian m'a entraîné dans des manipulations et recherches longues et infructueuses.
Ceci dit c'est plutôt sympa la compilation de noyau à la sauce Debian ;-)

Pourtant le man de rarp est sans équivoque:

NOTE
This program is obsolete. From version 2.3, the Linux kernel no longer contains
RARP support. For a replacement RARP daemon, see ftp://ftp.dementia.org/pub/net-
tools

En fait, pour les noyaux 2.4, il faut installer le daemon rarpd:

# apt-get install rarpd

Ce dernier va répondre à la requête rarp de la station en lui indiquant son adresse IP.
Il a besoin pour ce faire d'une "base de données ether", j'ai donc créé le fichier suivant:

# echo "08:00:20:87:B3:F7 saigon" >> /etc/ethers

Où on retrouve donc l'adresse MAC de la station et le nom que j'avais défini dans /etc/hosts

Voilà pour l'attribution d'une adresse IP à la station au démarrage. J'aurais sans doute pu aussi bien le faire avec dhcp.

Bon, c'est bien beau tout ça mais il faut que la station trouve une image de boot sur le serveur. Le protocole tftp va se charger de lui en fournir une.

# apt-get install tftpd

La ligne suivante est créée dans /etc/inetd.conf

tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /boot

'/boot' sera donc le répertoire où il faudra placer l'image de boot.

On redémarre inetd pour charger la modif.

# /etc/init.d/inetd reload

Je vais chercher le bon fichier de boot sur le mirroir Woody. Architecture sun4u dans mon cas:

# cp debian/dists/woody/main/disks-sparc/3.0.23-2002-05-21/sun4u/tftpboot.img /boot/

Enfin il vaut mieux changer le nom en sun4u_tftpboot.img par exemple.

# mv /boot/tftpboot.img /boot/sun4u_tftpboot.img

D'après la doc la station va chercher un fichier dont le nom est composé de son adresse IP traduite en hexadécimal et d'un suffixe indiquant l'architecture, par exemple:

Pour l'adresse IP 192.168.1.7 ce serait donc C0A80107.SUN4U

Je crée donc un lien symbolique:

# ln -s /boot/sun4u_tftpboot.img /boot/C0A80107.SUN4U

Alors c'est parti pour un test...
Dans l'OpenBoot de la station:
{0} ok boot net

Ca ne fonctionne pas...

Stop + A sur la station (Stop + Q en réalité, le clavier étant en azerty, merci manu)

Bon lançons un brutal tcpdump tout sec ...

# tcpdump

Et on relance le boot sur la station:
{0} ok boot net

Regardons ce que nous sort tcpdump:

23:07:28.009609 rarp who-is saigon tell saigon
23:07:28.009890 rarp reply saigon at saigon.smd.com
23:07:28.010528 saigon.smd.com.29095 > hd.smd.com.tftp: 17 RRQ "C0A80107"

Bon les deux premières lignes concernent rarp et apparemment ça se passe bien.
Sur la troisième ligne on voit qu'il s'agit bien d'une requête tftp, et tiens, RRQ "C0A80107" me rappelle quelque chose.
En fait il s'agit du fichier image que la station cherche pour booter, cela correspond bien à son adresse IP en hexadécimal.
Donc le suffixe .SUN4U était surement superflu (forcemment c'est un truc complètement dépassé qui vient d'un monde parallèle).
Je fais donc un autre lien symbolique sur le fichier image:

# ln -s /boot/sun4u_tftpboot.img /boot/C0A80107

Booom, ça passe ;-)

Au bout de 2 minutes (eh oui je suis en 10Mbits) un pingouin apparait en haut à gauche de l'écran ;-))))

En fait dans l'OpenBoot, on a la possibilité de spécifier le nom du fichier à aller chercher sur le serveur, comme suit:

{0} ok boot net < nomdufichier >

Tout simplement.