jeudi, août 26, 2010

Installation d'OpenSolaris sur une Sun Blade 150

Jeune propriétaire d'une station Sun Blade 150 (processeur UltraSPARC-IIe 650MHz, 1Go de RAM, 75Go de disque dur IDE et carte graphique additionnelle Sun Graphic VR-500) j'ai essayé de lui installer OpenSolaris pour voir ce que la carte graphique (Sun VR-500) et l'écran Sun de 19' avaient dans le ventre.
L'installation de FreeBSD (par le port série car la carte graphique VR-500 n'est pas supportée) n'a pris que quelques minutes: On démarre sur le CD freebsd-8.1-sparc64, on l'installe, c'est fini... Normal quoi.

Je me dit que cela va être identique pour osol (c'est le petit nom d'OpenSolaris)… Grave erreur.
En effet j'ai téléchargé et gravé l'unique image ISO correspondante à mon matériel sur le site OpenSolaris.org qui est «OpenSolaris 2009.06 SPARC Automated Install Image.iso»… Mais impossible de démarrer le SunBlade sur ce CD!
Après quelques recherches, je découvre que ce CD n'est simplement pas bootable et que pour pouvoir installer la version «Automated Install» il faut obligatoirement passer par un serveur PXE à la sauce Solaris…
L'installation simple d'OpenSolaris à partir d'un CD sur une machine sparc n'est tout simplement pas prévus O_o
Heureusement qu'il y a des gens qui ne sont pas bête et en plus très sympa. Et même que l'une de ces rares personnes a mis au point un live CD d'OpenSolaris pour sparc, et même mieux: Il propose en plus un script d'installation d'OpenSolaris à partir de son liveCD.
Un deuxième joyeux larron a réalisé la capture de l'ensemble du process d'installation (ce qui m'a bien aidé pour mon problème de partition EFI).

Aller, fini pour le blabla, place à l'action:
La galette du liveCD encore chaude est dans le lecteur DVD du SunBlade.
On commence par envoyer un «break» pour appeller l'OBP.
À partir du clavier sun: Stop + A
À partir du port série: Ca dépend de votre émulateur
Une fois dans l'OBP on entre
boot cdrom
On attends que ca ce lance, puis au prompt:
login: root
password: opensolaris
Maintenant il faut activer l'interface réseau. Mais pour cela il faut connaitre son nom:
prtconf -D | grep net
Ca ne me donne «eri», que l'on active par:
ifconfig eri0 plumb
Maintenant il lui faut configurer son IP, soit en statique:
ifconfig eri0 192.168.0.2/24
Soit en dhcp client:
ifconfig eri0 dhcp start
(Attention le DNS n'est pas fonctionnel)
Puis on démarre ssh:
svcadm enable ssh

On va en profiter pour télécharger le script d'install d'osol depuis une autre machine et le transférer par scp sur votre Sun:

[olivier@freebsd]~>fetch http://www.milax.org/files/zfsinstall_sparc
[olivier@freebsd]~>scp zfsinstall_sparc jack@192.168.100.2:/tmp
Password:  jack

Dernière étape avant de lancer l'installation: Connaitre le nom du disque par la commande «format» qui me donne «c4t0d0».
Et vérifier que ce disque utilise le format de partition SMI et non EFI: Comme j'avais déjà installé un FreeBSD qui à créé des partition EFI, j'ai du les supprimer pour créer une seule partition SMI.

root@opensolaris:~# format -e
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c4t0d0
          /pci@1f,0/ide@d/dad@0,0
Specify disk (enter its number): 0
selecting c4t0d0
[disk formatted, no defect list found]
Reading the primary EFI GPT label failed.  Using backup label.
Use the 'backup' command to restore the primary label.
(...)

format> label
[0] SMI Label
[1] EFI Label
Specify Label type[1]: 0
format> partition
(...)

partition> print
Current partition table (unnamed):
Total disk cylinders available: 38307 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0 unassigned    wm       0                0         (0/0/0)             0
  1       swap    wu       0                0         (0/0/0)             0
  2     backup    wu       0 - 38306       74.53GB    (38307/0/0) 156292560
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6        usr    wm       0 - 38306       74.53GB    (38307/0/0) 156292560
  7 unassigned    wm       0                0         (0/0/0)             0

partition> 1
Part      Tag    Flag     Cylinders         Size            Blocks
  1       swap    wu       0                0         (0/0/0)             0

Enter partition id tag[swap]:
Enter partition permission flags[wu]:
Enter new starting cyl[0]:
Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]:
partition> 2
Part      Tag    Flag     Cylinders         Size            Blocks
  2     backup    wu       0 - 38306       74.53GB    (38307/0/0) 156292560

Enter partition id tag[backup]: unassigned
Enter partition permission flags[wu]: wm
Enter new starting cyl[0]:
Enter partition size[156292560b, 38307c, 38306e, 76314.73mb, 74.53gb]: 0
partition> 6
Part      Tag    Flag     Cylinders         Size            Blocks
  6        usr    wm       0 - 38306       74.53GB    (38307/0/0) 156292560

Enter partition id tag[usr]: unassigned
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[156292560b, 38307c, 38306e, 76314.73mb, 74.53gb]: 0

partition> 0
Part      Tag    Flag     Cylinders     Size            Blocks
  0 unassigned    wm       0            0         (0/0/0) 0

Enter partition id tag[unassigned]: root
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 38307c
partition> print
Current partition table (unnamed):
Total disk cylinders available: 38307 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 - 38306       74.53GB    (38307/0/0) 156292560
  1 unassigned    wu       0                0         (0/0/0)             0
  2 unassigned    wm       0                0         (0/0/0)             0
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7 unassigned    wm       0                0         (0/0/0)             0

partition> label
[0] SMI Label
[1] EFI Label
Specify Label type[0]:
Ready to label disk, continue? y

partition> q

(...)
format> quit


Maintenant on peux lancer le script d'installation sur le slice s0 du disque dur:
root@opensolaris:~# ksh /tmp/zfsinstall_sparc c4t0d0s0
Starting to copy data from UFS root to /zfsroot - this may take some time.
Updating vfstab
updating /zfsroot//platform/sun4u/boot_archive
Installing zfs bootblk on /dev/rdsk/c4t0d0s0
###################################################

OpenSolaris now installed.

Une fois l'installation terminée, on démonte le zfs et on reboot:
root@opensolaris:~# beadm umount opensolaris
root@opensolaris:~# reboot


et on configure le réseau un minimum:
touch /etc/hostname.eri0
touch /etc/dhcp.eri0

Puis remplacer dans le fichier /etc/nsswitch.conf, la ligne:
hosts:  file
par
hosts: file dns

Un petit reboot pour vérifier que le réseau ce lance tout seul au démarrage.

Vous pouvez ensuite lancer une mise à jour vers la dernière version d'osol (qui utilise nativement les fonctionnalités de clonage zfs pour revenir en arrière):

pkg refresh --full
pkg image-update

Maintenant, ne reste plus qu'a trouver comment lui installer une jolie interface graphique.

Aucun commentaire: