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
# 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
# mkfs.ext3 /dev/sda1 # mkfs.ext3 /dev/mapper/tatooine2-root # mkfs.ext3 /dev/mapper/tatooine2-home # mkswap /dev/mapper/tatooine2-swap
# 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.
# 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
# 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.
# 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.
August 3rd, 2010 at 1:01 am
Joli crash dis donc …
Mais t’avais pas du RAID/GEOM toi ? remarque si ça saute tout le temps c’est un coup a tout flamber d’un coup de toute façon
August 3rd, 2010 at 9:53 am
J’ai effectivement du RAID1 sur mon serveur de backup, qui lui est sur onduleur :) le disque qui a crashé c’est celui de ma station de travail…
August 3rd, 2010 at 2:02 pm
Tsss, avec des outils trop performants, ya même plus besoin de backups, ça devient trop facile.