Ce qui suit a été rédigé à l’été 2010. Je le note surtout pour moi[1] des fois que le problème ressurgisee. Ce qui est bien avec Unix, c’est que les méthodes et outils changent beaucoup moins souvent que sur Mac ou Windows.

Évidemment, j’avais tout sauf le temps de m’occuper de ça : le disque dur de mon petit serveur dans la cave a lâché.

J’avais déjà eu le symptôme autrefois sur une autre machine : échec d’identification en me connectant par ssh (j’ai oublié l’erreur exacte) : le disque dur ne répondant plus, le système perdait les pédales dès qu’il tentait d’accéder au moindre fichier. Mais par derrière il continuait vaillamment à tourner. (Je ne sais pas si un Windows aurait tenu aussi longtemps avec un disque mort, je n’ai jamais vu le cas. D’un autre côté, un système sans disque ne sert plus à grand chose.)

Au reboot, pas de système (erreur 25 de grub).

Je démonte le disque et le connecte à l’autre PC par un connecteur IDE/USB bien pratique[2] : sur les six partitions, une (celle de boot) est illisible (bad superblock et autres joyeusetés), la principale (les données) est à peu près accessible. Le disque fonctionne encore... sur trois pattes : il se réinitialise avec un bruit (genre « clonc ! » ) trop souvent pour que je puisse sauvegarder en bloc la grosse partition. Mais bon, je sauve quand même sans difficulté les quelques fichiers vraiment importants comme les derniers mails arrivés.

Quant à tenter de réparer la partition principale… Ce serait quand même bien vu tout le temps investi à configurer le système.

Le sauveur : ddrescue, du projet GNU (me faire penser à leur filer une obole). Cette merveille est capable de réessayer autant de fois qu’il le faut dans les secteurs délicats pour tenter de sauver le maximum de données. Évidemment, il faut un minimum de coopération du disque en fin de vie...

Après trois jours (!) d’acharnement, ddrescue a réussi à me récupérer la quasi-intégralité de la partition système (la plus corrompue), copiée dans un simple fichier. Impossible évidemment de monter ce fichier comme une partition[3], vu qu’il est aussi corrompu que la partition d’origine, même s’il ne fait plus « clonc », lui. Allais-je le récupérer ?

file nom_du_fichier_image a pu me confirmer qu’il reconnaissait bien un système de fichiers ext3 dans le fichier. Donc la partition n’était pas réduite à du bruit blanc. Ensuite :

mkfs.ext3 -n nom_du_fichier_image permet un diagnostic et parfois de récupérer les adresses des adresses du superbloc endommagé : chez moi ça a échoué.

e2fsck -p est l’ordre de réparation standard. Il m’a répondu en gros qu’il refusait de prendre la responsabilité de réparer ce qu’il voyait comme horreurs dans ce système de fichier-là. Avec -y je lui dis de faire ce qu’il peut, je ne sais rien de plus que lui, et advienne que pourra (évidemment, en travaillant sur une copie de travail de la partition copiée[4]).

Au final, e2fsck m’a rendu une partition ext2 (oui, il me l’a dit après avoir liquidé le journal), qui était montable. Hélas, plus rien de reconnaissable dans la structure, TOUT était passé dans lost+found avec des noms cryptiques. MAIS sous les apparences du chaos restait l’ordre, un peu comme après un déménagement tout est sens dessus-dessous, mais bien rangé dans des cartons quand même[5] : dans un répertoire au doux nom de #567599 je retrouvais des sous-répertoires log, backup… Je venais de retrouver /var !

Ce n’était pas le plus capital, j’ai surtout pu sauver de la même manière /etc (ce qui m’a évité de reconfigurer plein de choses à la main), /home (récupérant ainsi l’utile en plus de l’indispensable et plein de choses sans-doute-inutiles-mais-encore-à-trier-depuis-une-décennie).

Au final : aucune donnée de perdue. Merci ddrescue.

PS : Dans le futur, voir si SystemRescueCd pourrait être utile…

PS bis : Depuis, les parties importantes de cette machine sont mirroirées par rsnaphot (le Time Machine du pauvre non limité au Mac) vers l’autre machine, j’y gagne la sauvegarde des versions antérieures.

PS ter : La mise aux normes matérielles récentes de mon infrastructure est dans les tuyaux, mais avant que j’ai un gros serveur plein de machines virtuelles et 10 To en NAS en RAID5, il va passer du temps. Nous parlions ici d’une machine dont le processeur ne date pas de ce siècle.

Notes

[1] Parce que vue l’affluence de ce blog...

[2] Pub gratuite pour le vendeur de camelote parfois bien pratique.

[3] Tiens, ça aussi je sais pas si Windows sait faire facilement.

[4] Oui, il faut moults gigaoctets libres sur un autre disque.

[5] Version idéalisée pour l’exemple. Tout le monde sait que les objets migrent de carton en carton au fil du temps, dans une forme macroscopique de l’effet tunnel quantique, et parfois passent dans un monde parallèle.