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) :
# 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
# mount --bind /dev /root/sda/dev
# mount --bind /proc /root/sda/proc
# mount --bind /sys /root/sda/sys
# chroot /root/sda
# grub-install --no-floppy --root-directory=/ /dev/sda
Il est désormais possible de booter sur le nouveau disque.
É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.
Recent Comments