Suxtor.

Jul 27 21:49:06 tatooine kernel: [  133.205355] ata3.00: configured for UDMA/133
Jul 27 21:49:06 tatooine kernel: [  133.205363] ata3: EH complete
Jul 27 21:49:06 tatooine kernel: [  137.205302] ata3.00: exception Emask 0x0 SAc
t 0x0 SErr 0x0 action 0x0
Jul 27 21:49:06 tatooine kernel: [  137.205353] ata3.00: BMDMA stat 0x24
Jul 27 21:49:06 tatooine kernel: [  137.205400] ata3.00: failed command: READ DM
A
Jul 27 21:49:06 tatooine kernel: [  137.205451] ata3.00: cmd c8/00:80:8f:06:e0/0
0:00:00:00:00/e0 tag 0 dma 65536 in
Jul 27 21:49:06 tatooine kernel: [  137.205458]          res 51/40:00:03:07:e0/0
0:00:00:00:00/e0 Emask 0x9 (media error)
Jul 27 21:49:06 tatooine kernel: [  137.205565] ata3.00: status: { DRDY ERR }
Jul 27 21:49:06 tatooine kernel: [  137.205608] ata3.00: error: { UNC }

Ça f’sait longtemps.

Depuis environ un mois que les zozos d’EDF sont en train de “rénover les installations éléctriques” de mon quartier, le courant va-et-vient. Parfois nous sommes prévenus et j’eteins consciencieusement mes machines avant l’heure fatidique, et parfois non. Jeudi dernier, ils ont pas prévenu. Et mon disque dur est mouru. C’était pour la rime.

Et c’est parti pour une séance de migration de disque en bonne et due forme.

1. Boot de la machine sur un LiveCD intégrant quelques outils indispensables, et parmi eux LVM). J’avais dans un tiroir un CD GParted relativement recent, bien heureusement.

2. Préparation du disque cible (reconnu en /dev/sda) :

  • Partitionnement

fdisk /dev/sda

  • [n]ew
  • partition 1
  • [p]rimary
  • +10G (partition /boot)
  • [n]ew
  • partition 2
  • [e]xtended
  • tout l’espace restant
  • [n]ew
  • partition 5
  • [l]ogical
  • tout l’espace
  • [t]ype
  • 8e (Linux LVM)
  • [a]ctivate boot flag
    * LVMisation de la cible

pvcreate /dev/sda5

vgcreate tatooine2 /dev/sda5

lvcreate -L 8G -n swap tatooine2

lvcreate -L 100G -n root tatooine2

lvcreate -L 200G -n home tatooine2

* Création des systèmes de fichier

mkfs.ext3 /dev/sda1

mkfs.ext3 /dev/mapper/tatooine2-root

mkfs.ext3 /dev/mapper/tatooine2-home

mkswap /dev/mapper/tatooine2-swap

* Bourrinage du disque défectueux (/dev/sdb)

fsck -cyk /dev/sdb1

fsck -cyk /dev/mapper/tatooine-root

fsck -cyk /dev/mapper/tatooine-home


Notez que cette opération a duré près de 5h, fsck fait ici un examen des blocks et appelle l’outil badblocks afin de créer une liste des blocks défecteux et passe un temps considérable sur ces derniers.* Montage

mkdir -p /root/sda/boot /root/sda/home # disque cible

mkdir /root/sdb # disque source (défectueux)

mount -o ro /dev/mapper/tatooine-root /root/sdb # disque source

mount -o ro /dev/sdb1 /root/sdb/boot

mount -o ro /dev/mapper/tatooine-home /root/sdb/home

mount /dev/mapper/tatooine2-root /root/sda

mount /dev/sda1 /root/sda/boot

mount /dev/mapper/tatooine2-home /root/sda/home

* Synchronisation

rsync -av –exclude /dev /root/sdb/ /root/sda/

sync; sync

umount /root/sdb/home

umount /root/sdb/boot

umount /root/sdb


Cette opération peut prendre plus ou moins de temps fontion de l’état du disque défectueux, perso, j’ai été me coucher.* GRUB
Étant un peu sectaire, je souhaitais que le nom du volume group soit le même que sur l’ancien disque, aussi, après avoir débranché ce dernier, je boote sur le nouveau qui, evidemment, ne retrouve pas la partition root et me renvoie sur le mini-shell disponible sur l’initrd qui a le bon goût d’embarquer LVM. Ainsi :


initrd> lvm
lvm> vgrename tatooine2 tatooine
lvm> exit
initrd> reboot

Et “tadaaaaaa”, je retrouve mon desktop comme je l’avais laissé.

Phew.