Pour voir les disques :

# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
      0. c0t0d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
         /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@0,0
      1. c0t1d0 <SUN146G cyl 14087 alt 2 hd 24 sec 848>
         /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/sd@1,0
      2. c5t600C0FF00000000009CE30532D2F4201d0 <SUN-StorEdge3510-421F cyl 65533 alt 2 hd 64 sec 272>
         /scsi_vhci/ssd@g600c0ff00000000009ce30532d2f4201


Les disques c0t0d0 et c0t1d0 sont mirrorés entre-eux. Les metadevices :

# metastat -p
d60 -m d61 d62 1
d61 1 1 c0t0d0s6
d62 1 1 c0t1d0s6
d50 -m d51 d52 1
d51 1 1 c0t0d0s5
d52 1 1 c0t1d0s5
d30 -m d31 d32 1
d31 1 1 c0t0d0s3
d32 1 1 c0t1d0s3
d10 -m d11 d12 1
d11 1 1 c0t0d0s1
d12 1 1 c0t1d0s1
d0 -m d1 d2 1
d1 1 1 c0t0d0s0
d2 1 1 c0t1d0s0
d40 -m d41 d42 1
d41 1 1 c0t0d0s4
d42 1 1 c0t1d0s4

La méthode, c'est de détacher les metadevices attachés au disque c0t1d0 pour les supprimer. Ensuite, on boot sur ce disque c0t1d0, et on supprime ensuite les metadevices attachés au disque c0t0d0.

1. Vérifier qu'on a bien booté sur le disque c0t0d0

# prtconf -vp |grep bootpath
bootpath:'/pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@0,0:a'

En comparant avec la commande format, on peut voir qu'on a bien booté sur le disque c0t0d0 (le disk@0,0 correspond à sd@0,0)

2. Détacher les pattes du disque c0t1d0
Dans mon cas, les metadevices attachés au disque c0t1d0 sont d2, d12, d32, d42, d52 et d62, comme le montre la commande :

# metastat -p | grep c0t1d0
d62 1 1 c0t1d0s6
d52 1 1 c0t1d0s5
d32 1 1 c0t1d0s3
d12 1 1 c0t1d0s1
d2 1 1 c0t1d0s0
d42 1 1 c0t1d0s4

Nous pouvons maintenant détacher ces metadevices :

# metadetach d0 d2
# metadetach d10 d12
# metadetach d30 d32
# metadetach d40 d42
# metadetach d50 d52
# metadetach d60 d62

3. Supprimer les metadevices du disque c0t1d0

# metaclear d2 d12 d32 d42 d52 d62
d62: Concat/Stripe is cleared
d52: Concat/Stripe is cleared
d42: Concat/Stripe is cleared
d32: Concat/Stripe is cleared
d12: Concat/Stripe is cleared
d2: Concat/Stripe is cleared

4. Modification des fichiers vfstab et system de c0t1d0

# mount /dev/dsk/c0t1d0s0 /mnt
# vi /mnt/etc/vfstab

Remplacer les chemins /dev/md/../dX par /dev/dsk/c0t1d0sX. Attention à bien mettre le disque c0t1d0. Voici mon fichier vfstab modifié :


fd - /dev/fd fd - no -
/proc - /proc proc - no -
/dev/dsk/c0t1d0s1 - - swap - no -
/dev/dsk/c0t1d0s0 /dev/rdsk/c0t1d0s0 / ufs 1 no logging,rq
/dev/dsk/c0t1d0s3 /dev/rdsk/c0t1d0s3 /var ufs 1 no logging,rq
/dev/dsk/c0t1d0s6 /dev/rdsk/c0t1d0s6 /export ufs 2 yes logging,rq
/dev/dsk/c0t1d0s4 /dev/rdsk/c0t1d0s4 /home ufs 2 yes logging,rq
/dev/dsk/c0t1d0s5 /dev/rdsk/c0t1d0s5 /logiciels ufs 2 yes logging,rq
/devices - /devices devfs - no -
sharefs - /etc/dfs/sharetab sharefs - no -
ctfs - /system/contract ctfs - no -
objfs - /system/object objfs - no -
swap - /tmp tmpfs - yes -
/dev/dsk/c0t3d0s0 - /cdrom hsfs - no ro


# vi /mnt/etc/system

Mettre en commentaire ou supprimer la ligne :

rootdev:/pseudo/md@0:0,0,blk

5. Modification de l'alias de boot si nécessaire

Cette modification permet, lorsqu'on boot sur le prompt {ok} d'avoir quelque chose de cohérent. Pour voir le boot-device :

# eeprom boot-device
boot-device=system mirror net

Vu qu'on n'a plus de raid 1, on va redéfinir les alias, et remplacer system par disk0, et mirror par disk1. A l'aide des informations de la commande format, on définit alors les alias (en une seule ligne):

# eeprom nvramrc="devalias disk0 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@0,0 devalias disk1 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@1,0"
# eeprom boot-device
boot-device=disk0 disk1 net

6. Rebooter sur le prompt OK

# init 0

Au prompt {Ok}, on peut voir les alias définis plus haut :

{ok} devalias
cdrom /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@3,0:f
net /pci@0,600000/pci@0/pci@8/pci@0/network@2
disk /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@0
disk1 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@1,0:a
disk0 /pci@0,600000/pci@0/pci@8/pci@0/scsi@1/disk@0,0:a
name aliases

On boot maintenant sur le disque c0t1d0 :

{ok} boot disk1

Après avoir booté, on refait sur c0t0d0 ce qu'on a fait sur c0t1d0 :

# metaclear d61 d51 d41 d31 d1
# metaclear d60 d50 d30 d10 d0 d40
# mount /dev/dsk/c0t0d0s0 /mnt
# vi /mnt/etc/vfstab

Remplacer les chemins /dev/md/../dX par /dev/dsk/c0t0d0sX. Attention à bien mettre le disque c0t0d0.

# vi /mnt/etc/system

et supprimer la ligne :

rootdev:/pseudo/md@0:0,0,blk

Il reste les metadevices correspondants à la swap qu'on ne peut pas supprimer car "in use". Il faut booter au prompt {Ok} et booter en mode single :

# init 0
{ok} boot -s

Une fois en mode single, faire :

# metaclear d10 d11

Rebooter alors avec la commande reboot. Voilà, c'est tout. Le miroir a été cassé, sans que 7 ans de malheur ne s'abatte sur nous :)