Sun Ultra 1 : Installation de Solaris 8
2016-02-21 - No comments
Pour que tout fonctionne, on utilise la console série (9600bit/s, 8N1, en débranchant le clavier), mais il est possible d'utiliser le clavier et l'écran à la place.
Solaris 8 nécessite entre 300Mo et 1.3Go en installation de base (probablement bien plus une fois d'autres paquets installés). 192Mio de mémoire ne pose pas de problème à l'installeur (aucune idée du minimum).
NVRAM
Comme la NVRAM est à remplacer, il faudra configurer l'adresse MAC et quelques paramètres à chaque arrêt de l'alimentation.
01 0 mkp 80 1 mkp 08 2 mkp 0 3 mkp 20 4 mkp c0 5 mkp ff 6 mkp ee 7 mkp 0 8 mkp 0 9 mkp 0 a mkp 0 b mkp c0 c mkp ff d mkp ee e mkp 0 f 0 do i idprom@ xor loop f mkpChaque ligne règle un octet de la NVRAM (HostID : 80c0ffee , adresse MAC : 8:0:20:c0:ff:ee), et la dernière calcule le checksum des précédentes et l'écrit dans la NVRAM.
Pour les autres variables de la NVRAM, il faut les remettre par défaut avec
set-defaults. Il peut être utile de désactiver le boot automatique avec
setenv auto-boot? no, puis choisir le périphérique et le fichier démarré par défaut (en cas de redémarrage)
setenv boot-device net(ou bien cdrom, disk),
setenv boot-file kernel/unix.
Une fois la NVRAM remplie, le système doit démarrer "proprement" avec
reset. Il n'y a pas de coupure d'alimentation, de ce fait la NVRAM ne perd aucune donnée.
Serveurs
Les machines Sun ont besoin de plusieurs services réseau pour démarrer :
- rarpd, qui va assigner une adresse IP en fonction de l'adresse MAC de la station
- tftpd, qui va fournir une image bootable à la station
- bootparamd, qui va fournir les partages NFS à monter pour accéder au système d'installation
- NFS, pour partager les dossiers contenant le programme d'installation la raçine d'un système Solaris
Configuration
Avant de commencer la configuration, on a un CD de Solaris 8 monté dans le dossier /mnt/ d'une machine x86 avec Debian Linux.
Rarp
On installe le paquet rarpd, on démarre le daemon, puis on fait correspondre l'adresse MAC, le hostname et l'adresse IP de la station :
# cat "08:00:20:c0:ff:ee sunultra" >> /etc/ethers(>> ajoute à la fin du fichier)
# cat "192.168.3.123 sunultra" >> /etc/hosts
Tftpd
On installe un serveur tftp (quelconque, avec ou sans inetd), puis on note son dossier racine (/var/tftp/ dans notre cas).
On va copier l'image dans la racine :
# find /mnt/Solaris_8/Tools/ |grep inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4u/lib/fs/nfs/inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4us/lib/fs/nfs/inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4d/lib/fs/nfs/inetboot
/mnt/Solaris_8/Tools/Boot/usr/platform/sun4m/lib/fs/nfs/inetboot
L'image de la plateforme sun4u est celle qui correspond aux machines Ultra 1 :
# cp /mnt/Solaris_8/Tools/Boot/usr/platform/sun4u/lib/fs/nfs/inetboot /var/tftp/
Une particularité des machines Sun est d'utiliser une image par adresse IP, avec une adresse ip en hexadécimal :
# printf %02X 192 168 3 123
C0A8037B
Une fois que bash nous a converti l'adresse, on va lier l'adresse IP à l'image qu'on veut booter :
# cd /var/tftp/; ln -svf inetboot C0A8037B; ln -svf inetboot C0A8037B.SUN4U
On met deux fichiers dans le doute, certaines version d'OpenBoot ajoutent le nom d'architecture à la fin du fichier.
NFS
On installe un serveur NFS (nfs-kernel-server, nfs-common et rpcbind avec Debian) et on edite le fichier /etc/exports
On crée un dossier là où on a au moins 1Go de libre (/media/stuff/local/sunultra/ dans notre cas).
On va le partager avec
# exportfs 192.168.3.0/24:/media/stuff/local/sunultra/ -o rw,sync,no_subtree_check(on peut remplacer l'adresse et le cidr par * ou par une seule machine).
On peut aussi ajouter la ligne
/media/stuff/local/sunultra/ 192.168.3.0/24(rw,sync,no_subtree_check)dans le fichier /etc/exports.
Bootparamd
On installe bootparamd, puis on ajoute les lignes suivantes dans le fichier /etc/bootparams :
sunultra root=192.168.3.3:/media/stuff/local/sunultra/Solaris_8/Tools/Boot \
install=192.168.3.3:/media/stuff/local/sunultra \
rootopts=:rsize=32768 boottype=:in
Copie des fichiers
On va ensuite copier les fichiers de /mnt/ vers /media/stuff/local/sunultra en conservant les permissions et les fichiers cachés.
rsync -trav /mnt /media/stuff/local/sunultra
Installation
J'ai probablement fait quelque chose d'incorrect (je serais heureux d'avoir un retour si quelqu'un trouve) qui fait échouer l'installation après le montage du partage NFS avec
There were problems loading the media from /cdrom..
Bricolage
Comme je n'ai pas réussi à installer Solaris 8 par le réseau ni à booter sur un CD, j'ai séparé l'installation :
- Boot réseau :
boot net -v - install
, - Plantage de l'installation :
There were problems loading the media from /cdrom.
- Démontage du partage NFS :
umount /cdrom
- Montage du CDROM :
mount -r -F hsfs /dev/dsk/c0t1d0s0 /cdrom
- Suite de l'installation :
ttinstall
Notes
Disques non-détectés :
Modification du script d'installation /sbin/startup :
mkdir /tmp/linkmod
cp -f /usr/lib/devfsadm/linkmod/* /tmp/linkmod/
devfsadm -l /tmp/linkmod/
Installation "bloquée" :
Curseur tournant après plusieurs minutes :
On bouge le fichier gênant :
mv /sbin/get_netmask /sbin/get_netmask.test
cannot open /cdrom/.cdtoc :
Des fichiers ont été oubliés dans le miroir NFS, ou le CD/partage n'est pas monté.
panic[cpu0]/thread=xxxxx: Can't invoke /etc/init, error N :
Le fichier est inexistant ou inacessible en lecture/execution, il est possible que les liens ou permissions/droits des fichiers n'aient pas été conservées pendant la copie sur le partage NFS.
Utilisation
Si le réseau ne fonctionne pas, il suffit de plusieurs étapes :
# ifconfig le0 up
# ifconfig le0 192.168.3.123
# route add default 192.168.3.1
La commande
netstat -rpeut donner des informatiosn sur la table de routage.
Références