Pour installer une machine par le réseau, la méthode la plus usité est celle du boot PXE. Ce n’est pas celle que nous emploieront ici, pour la bonne et simple raison qu’elle ne marche apparemment pas :)
Pour installer la machine, nous allons utiliser rarpd.
Rarpd is a daemon which responds to RARP requests. RARP is used by
some machines at boot time to discover their IP address. They provide
their Ethernet address and rarpd responds with their IP address if it
finds it in the ethers database (either /etc/ethers file or NIS+
lookup) and using DNS lookup if ethers database contains a hostname and
not an IP address. By default rarpd also checks if a bootable image
with a name starting with the IP address in hexadecimal uppercase let-
ters is present in the TFTP boot directory (usually /tftpboot ) before
it decides to respond to the RARP request.
Rarp fonctionne de la manière suivante :
Nous verrons comment installer la sun dans le cas suivant : Vous avez un réseau avec internet et un serveur DHCP. Vous avez branché sur ce réseau la Sun et votre machine personnelle (que nous appelleront machinette). Votre machine personnelle servira de serveur rarpd et à se connecter sur le port Console de la Sun.
Tout d’abord, familiarisons nous avec la Sun.
La Sun a une chose particulièrement attrayante en tant que serveur, c’est le LOM. Pour simplifier, on va dire que le LOM est le bios de la Sun, sauf qu’il est accessible par l’interface console, à distance. Ainsi, alors que la Sun est éteinte, vous pouvez vous connecter sur le LOM, et l’allumer. Puis, alors qu’elle est allumé, vous pouvez vous connecter sur le LOM et l’éteindre, et ce même si elle est planté.
Pour se connecter au LOM, deux outils existe : un simple (screen), et un puissant (minicom). Ici nous verrons le simple, les aficionados de la ligne de commande n’auront aucun mal à maitriser minicom par eux-même.
Nota : La Sun a un cycle de boot assez lent : elle test soigneusement sa ram, très soigneusement ses disques dur, extrêmement soigneusement ses processeurs... Le but sera donc de la démarrer "matériellement" une fois pour toute, puis de faire des redémarrages "légers" grâce au LOM.
Quelques liens pour les curieux :
La sun est relié par le cable adéquat à votre port série. Si vous utilisez un adaptateur série vers USB, regardez dmesg pour savoir quel est le port exact utilisé. Nous allons demander à screen d’ouvrir la console se trouvant sur /dev/ttyS0 :
# screen /dev/ttyS0
Nota : Si rien ne s’affiche dans le screen, n’hésitez pas à démarrer la machine manuellement une première fois avec le bouton power (ce n’est en théorie pas nécessaire).
Si jamais vous voulez forcer screen à quitter, "[ctrl] + a " puis "k". Ceux qui veulent travailler avec minicom peuvent vouloir que screen utilise une autre combinaison de touche que "[ctrl] + a" (par exemple "[ctrl] + x"), il suffit de lancer avec le paramètre -e :
# screen -e^Xx /dev/ttyS0
Lorsque tout fonctionne, vous devez avoir un écran de login sur votre shell, de type :
xxx console login:
C’est le login de solaris. Aucun intérêt.
Pour basculer du login Solaris au LOM, il suffit de faire #. (dièse point), un login plus sympathique apparait alors :
Sun(tm) Advanced Lights Out Manager 1.3 (jobs)
Please login:
Ici, utilisez vos login et mot de passe pour vous connecter.
Nous voilà dans le LOM, un help vous indiquera les commandes, voyons les principales :
help
console
poweron
poweroff
bootmode
password
reset
logout
La plus intéressante de ces commandes est bootmode, c’est elle qui nous permettra de choisir la priorité de boot. Par exemple le réseau, ça parait bien.
sc> help bootmode
This command provides control over the managed system OBP firmware behavior during system initialization.
sc> bootmode pan
Error: Invalid command option
Usage: bootmode [normal|reset_nvram|diag|skip_diag|bootscript="string"]
sc> bootmode bootscript="boot net"
sc> bootmode
Bootmode: normal
bootscript="net"
sc>
Attention : au bout de quelques minutes, le bootmode revient automatiquement à "normal" sans "net".
Allez hop, on test : on allume la bête et on bascule du LOM vers la console :
sc> poweron
sc> console
Lorsque vous êtes connecté au système d’exploitation, le seul choix n’est pas de repasser sur le LOM complètement : vous pouvez aussi administrer l’OS actif. Pour cela, envoyez un break (dans screen "[ctrl] + a" puis "b"). Cette commande met en pause l’OS, jusqu’à ce que vous le relanciez avec la commande "go".
Nous avons vu les opérations de base avec la Sun, il n’y a pas besoin de plus. On va commencer à configurer machinette alors.
# apt-get install rarpd
Pour configurer rarpd correctement, il faut l’adresse MAC de la machine. Nous allons donc la faire démarrer en boot réseau, et surveiller les logs de machinnette pour savoir quelles MAC ont demandé à profiter d’un boot réseau.
Nota : lorsque la Sun démarre, elle indique son adresse MAC, vous pouvez aussi la récupérer par là (mais nous aurons de toute façon besoin des logs).
# /etc/init.d/rarpd start
# tail -f /var/log/syslogn
Démarrons la Sun en boot réseau, connectons nous sur la console, et attendons.
Boot device: /pci@1f,700000/network@2 File and args:
Timed out waiting for Autonegotation to complete
Check cable and try again
Link Down
Et oui, il y a plusieurs ports réseau sur la Sun, et nous l’avons branché sur le mauvais. Branchons sur le port 0 et tout marchera mieux. Mais une fois le branchement fait, il nous faut redémarrer la Sun. Pour cela, au lieu de faire un démarrage "à froid", envoyez un break (voir plus haut), puis :
SC Alert: SC Request to send Break to host.
/
Type 'go' to resume
{1} ok boot net
Cela vous permettra de faire des redémarrage rapide et propre.
Nous redémarrons donc :
Sun Fire V210, No Keyboard
Copyright 1998-2003 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.11.4, 2048 MB memory installed, Serial #59193085.
Ethernet address 0:3:ba:87:36:fd, Host ID: 838736fd.
Executing SC bootscript:
Boot device: /pci@1f,700000/network@2 File and args:
1000 Mbps FDX Link up
Timeout waiting for ARP/RARP packet
Timeout waiting for ARP/RARP packet
Timeout waiting for ARP/RARP packet
Et dans /var/log/syslog, tadaaan :
Oct 30 13:42:10 v440-1 rarpd[7933]: RARP request from 00:03:ba:87:36:fd on eth14
Oct 30 13:42:10 v440-1 rarpd[7933]: not found in /etc/ethers
Rarpd cherche dans /etc/ethers à quelle IP correspond cette adresse MAC.
Nota : Pour être vraiment propre, l’idéal est d’en profiter pour dire à votre serveur DHCP de donner cette même IP au serveur.
# cat >> /etc/ethers
00:03:ba:87:36:fd 192.168.1.9
^D
On redémarre rarpd :
invoke-rc.d rarpd restart
Et le log nous dit :
Oct 30 13:43:31 v440-1 rarpd[8128]: RARP request from 00:03:ba:87:36:fd on eth14
Oct 30 13:43:31 v440-1 rarpd[8128]: RARP response to 00:03:ba:87:36:fd 192.168.1.9 on eth14
Et pourtant, la Sun continue ses "Timeout waiting for ARP/RARP packet"... L’explication est simple : rarpd voit qu’il n’y a pas de serveur tftp, il ne perd donc pas son temps à répondre.
Il faut donc installer un serveur tftp, en l’occurrence tftpd :
# apt-get install tftpd
Tftpd est lancé par inetd, et a rajouté une ligne de configuration dans ce dernier. Il faut donc relancer inetd pour qu’il prenne en compte la modification.
Nous redémarrons encore une fois la Sun, toujours en boot réseau. Elle boot, et syslog nous indique :
Oct 30 15:32:43 v440-1 tftpd[8740]: tftpd: trying to get file: C0A80109
Oct 30 15:32:43 v440-1 tftpd[8740]: tftpd: serving file from /srv/tftp
Rarpd tente comme prévu d’envoyer un fichier dont le nom correspond à l’adresse IP en hexadécimal : nous avons donné 192.168.1.9, il cherche donc le fichier C0A80109. Notez bien qu’il ne sert à rien de perdre son temps à calculer le nom que doit avoir le fichier, syslog nous l’indique très poliment.
Le fichier adéquat se trouve sur le site officiel de debian : http://www.debian.org/releases/etch/debian-installer/.Il faut prendre le fichier d’installation par le réseau pour SPARC, c’est un fichier "boot.img" de quelques Mo. Vous avez le choix entre SPARC 32 et SPARC 64, cela dépendra de votre matériel.
Allez hop, je met un boot.img pour SPARC32.
mkdir -p /srv/tftp
cp boot.img /srv/tftp/C0A80109
Tiens, même pas besoin de redémarrer la Sun, elle télécharge tout de suite le fichier. Je patiente...
On sun4u you have to use UltraLinux (64bit) kernel
and not a 32bit sun4[cdem] version
Diable ! Quelle erreur ! Je recommence avec le bon boot.img, pour SPARC64.
Waiting...
Tiens, un installateur Debian. Le combat est gagné, à vous de jouer ;)
Les fortunes de #epplug. Retrouvez les membres de notre association sur notre salon IRC: irc.geeknode.net #epplug
Voici quelques extraits amusants (Télécharger le fichier de fortune)
Association Picarde des Utilisateurs de Logiciels Libres (EPPLUG) Association régie par la loi 1901
137, avenue du général FOY 80000 AMIENS.
Parution au Journal Officiel le 21/06/03 sous le n° 20030025 Siren : 494 525 280
© epplug.org 2002-2005 - ce site fonctionne grace au moteur d'edition collaboratif SPIP fonctionnant sous license GPL
Toutes les interventions sur ce site sont la propriété de leurs auteurs respectifs.