Quelques jours avant la journée mondiale de le sauvegarde il m'est arrivé une mésaventure. J'ai perdu d'un seul coup les données de 2 disques : un SSD 250G et un HDD 2To.
Je vous propose mon retour d'expérience sur cette situation et ce que j'ai fait pour en sortir et récupérer les données les plus précieuses.
L'écriture de ce post a été assez long alors asseyez-vous, prenez quelque chose à boire et c'est parti.
1er symptôme, à distance
J'étais en dehors de chez moi pour quelques jours quand j'ai eu besoin d'accéder à distance à ma tour Windows 10 (pas toute jeune car elle date de 2012). Comme d'habitude j'allume mon PC à distance en Wake On LAN (wake on wan donc).
Je laisse passer environ 1 minute pour laisser le temps à Windows de démarrer. Sauf que cette fois-ci cela ne fonctionne pas. Je laisse passer 1 puis 3, 5 et 10 minutes : toujours rien. Je me connecte à mon routeur Tomato en SSH afin de voir si le ping depuis la patte interne fonctionne, ça ne marche pas! Cette fois c'est clair, la machine ne démarre pas... cela arrive de temps en temps, je me dis qu'une mise à jour est peut-être en cours d'installation et que j'essaierai plus tard.
30 minutes plus tard j'arrive enfin sur la mire RDP, je me connecte et tout fonctionne. Probablement une mise à jour qui a retardé le boot, comme je l'imaginais. Je vérifie par acquis de conscience mais je ne vois pas de mise à jour récente, étrange. Je me dis alors que le SSD (Samsung 850 Pro) a peut-être du plomb dans l'aile, je jette un œil à Samsung Magician qui me dit que tout va bien... je n'ai donc pas de raison de m'inquiéter plus que ça.
J'ai un second disque de type HDD de 2To Seagate (ST2000DM001). Je lance CrystalDiskInfo par sécurité pour voir si ça n'est pas lui qui est entrain de rendre l'âme. J'ai le warning habituel, c'est normal j'ai quelques secteurs réalloués depuis de nombreuses années mais ça ne m'inquiète pas plus que ça. Mon erreur : je n'ai pas pensé à regarder si le nombre avait augmenté...
En bref je suis connecté à distance à plusieurs centaines de kilomètres, je récupère les fichiers dont j'avais initialement besoin et j'oublie tout ça. La piste de la mise à jour a pris le dessus sur mon inquiétude.
2ème symptôme : lenteur et coupure électrique
5 jours plus tard.
Je suis rentré chez moi et je me connecte en RDP à partir d'une autre machine de mon réseau local car j'ai besoin de créer une machine virtuelle sur ma tour. La fameuse tour dont je parle depuis le début.
Et là j'ai de gros ralentissements dans VirtualBox, je ne comprends pas ce qu'il se passe... je me dis que le PC n'a pas redémarré depuis longtemps et que VirtualBox part parfois en vrille comme il sait bien le faire. Cela aurait du me mettre la puce à l'oreille mais je n'ai pas le temps de regarder tout de suite. D'ailleurs toutes mes VM sont stockées sur mon 2ème disque, le HDD 2To Seagate (retenez cette information pour plus tard).
Je décide de lancer un reboot de Windows 10. Et là je me rends compte que la mire RDP ne revient pas... tiens tiens comme la dernière fois quand j'étais à distance. Comme je suis maintenant sur place je peux regarder ce que j'ai à l'écran : j'ai le logo bleu Windows et les billes Windows 10 qui tournent :
Comme tout le monde je cherche sur internet savoir si un symptôme en particulier peut générer ça. Je ne trouve pas grand chose mais la plupart des personnes disent qu'après 30 à 50 minutes ça finit par démarrer chez eux. Je décide donc de patienter un peu, je ne suis pas pressé et je sais qu'il vaut mieux ne pas interrompre cette phase de démarrage.
Environ 10 minutes plus tard, l'écran est toujours sur les billes qui tournent et là :
⚡coupure de courant de quartier ⚡
Tout s'éteint, y compris le pauvre PC qui n'arrivent pas à booter. Je croise les doigts en espérant que cela n'aggrave pas la situation... Le courant revient après 3 minutes seulement (le disjoncteur n'a même pas sauté au compteur, je n'ai rien eu à faire). J'attends quelques minutes car une coupure peut en cacher une autre.
Une fois les perturbations terminées je me décide à démarrer de nouveau le PC en espérant qu'il reprenne son boot... et là un message d'erreur me dit qu'il ne trouve aucun système d'exploitation :
no bootable device insert boot disk and press any key
Comme le SSD est mon disque de boot et qu'il contient Windows 10 et le MBR, je me dis alors que le SSD est KO. Il n'a pourtant que 16 To d'écrit (je l'avais vérifié à distance) et pour une capacité de 250Go on est loin d'une usure importante. D'ailleurs toutes les informations SMART et Samsung Magician confirment qu'aucune panne n'est détectée (ndlr : ce qui ne garantit pas l'absence de problème).
Je démarre en LiveCD sur l'excellent boot Sergei Strelec pour faire (à minima) une image de mon SSD pour sauvegarder la dernière version de mes fichiers (et si possible l'OS entier). J'ai des sauvegardes qui datent d'environ 30J et j'ai forcément quelques fichiers qui ne sont pas dedans. Et là je me prends des erreurs d'accès entrée/sortie sur les ports SATA, je me dis que c'est donc très mal engagé.
J'essaye plusieurs LiveCD dont partedMagic qui contient TestDisk, il m'a sauvé les fesses plus d'une fois. Et au moment de redémarrer le PC j'ai le BIOS qui m'indique au POST que j'ai une panne imminente sur un disque dur. Et là je sais que ça sens pas bon, car quand ce message apparaît c'est souvent trop tard 😢
Mon conseil : vérifiez si cette option SMART est bien activée dans votre BIOS car elle est souvent désactivée par défaut.
A ce moment là je sais que la table SMART du SSD est en parfait état, pourquoi donc le BIOS y voit des erreurs ?! Dans le BIOS j'ai bien mon SSD et mon HDD de détectés, RAS.
Déconnexion du HDD
Comme je souhaite me concentrer sur mon SSD je décide de déconnecter le HDD de la carte mère, je m'en occuperai plus tard. Depuis que j'ai déconnecté le HDD plus d'erreur E/S et l'accès au SSD se fait sans encombre. Je peux accéder à mon SSD PartedMagic sans souci. Je copie toutes mes données sur mon NAS (bien pratique!) et je fais une image avec CloneZilla.
Comme j'ai des doutes sur l'état du SSD originel (il date de 2016) je restaure l'image sur un autre SSD neuf. Certes tout va bien au niveau SMART mais il arrive qu'un disque tombe en panne sans que la SMART ne s'en "rende compte".
J'ai donc un SSD tout neuf et fraichement cloné depuis le SSD qui contenait Windows, je tente de démarrer et là... ERREUR ! Le MBR ne fonctionne clairement pas et Windows ne démarre pas. Je réessaie avec le SSD original et exactement pareil ! J'ai donc bien eu une corruption de données du SSD...
Réparation du boot Windows (SSD)
Je prends un 3ème SSD qui traine et j'y installe Windows 10 from scratch à la va vite. Simplement pour vérifier l'ordre des partitions (amorçage, recovery) et les ID. Je suis en partitionnement classique MBR et sans UEFI.
2 hypothèses :
- soit le MBR était sur le mauvais disque (le HDD au lieu du SSD) et comme il est mort et bien cela ne fonctionne plus
- soit le MBR était bien sur le SSD et il s'est corrompu à cause de la coupure électrique et/ou à cause du HDD qui crachait des erreurs en pagailles à la carte mère sur les ports SATA. A vrai dire même encore aujourd'hui je ne sais pas...
Bref, je boot en Recovery depuis l'ISO de Windows 10 grâce à mon Zalman. Cela se passe via l'invite de commandes (accès direct via shift+F10 ou via le menu avancé) :
Je lance la reconstruction du MBR :
bootrec.exe /fixmbr
Puis la réparation du bootmgr (Windows Boot Manager) :
bootsect.exe /nt60 all /force
Puis la regénération du secteyr de boot sur la partition principale :
bootrec /fixboot
Enfin je lancer la reconstruction du BCD :
bootrec /rebuildbcd
A cette étape j'ai des erreurs "access denied". Sur le net de nombreuses personnes disent que c'est un bug depuis certaines ISO de Microsoft, mais que ça ne doit pas poser problème...
Je reboot, et là j'ai une erreur "0xc000000f" avec un fond bleu. Comme Windows me le conseille j'appuie sur la touche F1 pour lancer la récupération, mais rien ne se passe. Avec mes manipulations j'ai du endommager l'ID des partitions et elle n'est plus reconnue en tant que tel. J'essaie de réparer de nouveau depuis l'ISO de Windows 10 mais ça ne fonctionne pas.
Après une reconstruction sans succès avec Bootice, je sais que AOMEI Partition Assistant permet de reconstruire le MBR. Je retourne donc sous Sergei Strelec pour faire cette manipulation avec AOMEI.
Cette fois-ci Bingo, Windows 10 démarre enfin correctement 🎉
Reconstruction de la partition recovery
J'en profite pour réparer la partition recovery, celle qui se situe après la partition Windows. Cette partition permet justement de réparer de problèmes de boot, elle est pratique même si elle peut avoir ses limites.
Je suis en mode BIOS Legacy et en partitionnemlent MBR (pas d'UEFI). Cela a son importance car la procédure de réconstruction de la partition recovery n'est pas la même si vous êtes en mode MBR ou UEFI.
J'ai trouvé un tutoriel MBR que j'ai suivi à la lettre et qui a parfaitement fonctionné :
Ma partition recovery fait environ 500 Mo
Avec diskpart il faut définir l'ID de la partition recovery à "27" (car je suis en BIOS Legacy MBR) :
select disk 0list partselect partition 3 (correspond à la partition recovery)set id=27detail partition (pour vérifier)
Si vous êtes en UEFI il faut utiliser l'id "de94bba4-06d1-4d40-a16a-bfd50179d6ac" :
set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
Windows 10 démarre donc maintenant sans encombre, je reprends la main sur mes données.
Récupération des données du HDD défectueux
Le BIOS m'annonce une erreur SMART quand le HDD défectueux est connecté, plus de doute la panne risque d'être sérieuse et je fais le lien avec les lenteurs récentes... je comprends que le disque est en train de mourir ☠
J'ai à peu près tout tenté pour lire mes données, y compris la méthode du steak haché 🥓
Je n'ai pas de meilleur résultat lorsque le disque dur est connecté en SATA, donc je le connecte dans un dock USB3 SATA :
https://twitter.com/xhark/status/1640132594388856833
Déjà le disque met de nombreuses minutes à être détecté par l'ordinateur. Et puis, que ce soit sous Windows ou Linux, le disque répond par intermittence et aléatoirement. Je parviens à lire quelques données grâce à TestDisk, à condition que leur poids raisonné (moins de 1 go).
Je me rends compte via la commande "dmesg" sous Linux que j'ai toujours beaucoup d'erreurs d'entrée/sortie sur la partie SATA. J'entends un clic clic clic régulièrement, comme si les têtes étaient parquées puis replacées sur le plateau (j'ignore ce qu'il se passe réellement).
C'est alors que je me rends compte par hasard lorsque je lis la table SMART le clic clic clic s'arrête et la lecture des données reprend. J'écris un script bash qui lance une lecture SMART (en boucle) pendant que m'affaire à récupérer les données avec TestDisk :
https://twitter.com/xhark/status/1640132589657772033
Je parviens à récupérer quelques données importantes qu'il me manquait. J'avais des sauvegardes mais ce refresh des derniers fichiers modifiés est important.
Le problème avec TestDisk c'est qu'il tolère mal la déconnexion d'un disque, le processus de copie des données plante alors et il faut tout relancer. Et puis au détour d'un forum spécialisé sur les disques dur j'entends parler de HDDSuperClone.
HDDSuperClone est un liveCD basé sur la distribution Linux xubuntu, destiné aux utilisateurs avertis. Il permet de cloner un disque, en fait une image ou copier des fichiers. Il contient 2 utilitaires que j'ai utilisé :
- DMDE (en version gratuite) : il permet de détecter facilement une partition et de copier les données. On peut choisir le nombre de tentative de lecture des secteurs, le timeout, etc.
- HDDSuperClone : permet de faire une image du disque en ignorant des secteurs défectueux, après un nombre de tentative au choix
J'ai surtout utilisé DMDE, il est disponible en français (langue au choix au lancement). Grâce à lui j'ai pu récupérer des données en le couplant à mon script de boucle SMART.
Cependant pour les gros fichiers comme mes VM VirtualBox, le disque finit par décrocher complètement... et même DMDE finit par abandonner. J'imagine que cette zone est sinistrée, tant pis.
ℹ : De nombreuses vidéos d'exemple et tutoriels sont présents sur la chaine YouTube HDDSuperClone.
La tentative de SWAP du PCB
Mon disque HDD en panne est un Seagate ST2000DM001 et ça tombe bien car j'en ai un second qui fonctionne et absolument identique, même la version firmware est la même.
Je me dis que je pourrais tenter d'inverser les cartes électroniques. Même si le problème a l'air mécanique il se peut que ce soit un composant électronique fatigué qui n'arrive plus à piloter le disque correctement.
Mais je sais que cette étape est dangereuse car elle risque de corrompre définitivement les données (du disque HS et du disque donneur). J'estime que j'ai récupéré tout ce qui était important pour moi, je décide de tenter le coup. Je sais qu'il y a peu de chance que cela marche, même si la version firmware est identique (CC27) car il faut normalement également swaper (ou cloner) la puce contenant le firmware.
Bref, je swap les 2 PCB, je démarre... le disque se met en rotation et je n'ai aucun clic clic clic, ça sent bon ! Sauf que je ne vois aucune partition ni fichier avec les logiciels (DMDE, TestDisk, etc).
Je suis partagé sur le diagnostic. En l'absence du décrochage des têtes comme c'est le cas avec le PCB d'origine, peut-être est-ce la carte électronique qui est en défaut. Je veux alors dumper le BIOS du HDD HS pour l'écrire sur le BIOS du HDD donneur, mais mon TL866A ne permet pas de communiquer avec la puce contenant le BIOS (ref 25SF406 / windbond 25040BMs07). Il me faudrait un lecteur comme le SkyPRO II EEPROM... il coûte une centaine d'euros.
J'ai donc abandonné cette piste et remonté le PCB d'origine avec chaque disque. Au démarrage du disque HS j'ai bien cru que toutes les données étaient perdues, mais non, après avoir patienté de nombreuses minutes le disque et sa partition se sont affichés. Dans le même état qu'avant, avec des erreurs à gogo.
Enfin j'ai tenté de swaper les PCB et les puces du firmware associé en dessoudant à l'air chaud, sans succès :
https://twitter.com/xhark/status/1654963269965168642
Plus de doute : je ne suis pas face à une panne électronique mais définitivement mécanique.
Des ports SATA étrangement endommagés
Le disque HDD est lui déconnecté, laissons-le mourir en paix.
Pensant que le SSD est mort j'installe un SSD SATA neuf sur lequel le restaure l'image du défunt SSD. Le SSD pendouille dans la tour et je le fixerai à la place de l'ancien quand tout refonctionnera comme attendu. Pour l'instant c'est un montage "volant".
Après la réparation du MBR / boot Windows 10 démarre correctement. Je me décide à poser le nouveau SSD au dessus de l'ancien, ça évitera qu'il pendouille bien qu'il ne soit pas (encore) fixé). Et là... patatra ! le disque n'est plus détecté et Windows ne démarre plus.
Mais quelle est donc cette sorcellerie ?
Je décide d'inspecter les ports SATA de la carte mère, 2 ports SATA 6gbps. Je me rends compte que lorsque je touche au câble SATA cela finit par fonctionner et le PC démarre. Je décide de brancher le SSD sur le port SATA 2 au lieu du port 1, cela repart! Tiens donc, il y aurait aussi un problème de contact?
Je déconnecte tous les ports SATA et je m'aperçois que les 2 ports SATA 6G ont de l'oxydation sur certains PIN. Pire, j'ai 2 ou 3 gouttes minuscules au bout des câbles SATA côté carte mère. Comme une sorte d'huile... et encore aujourd'hui je n'ai pas trouvé d'où ça venait. Je pense qu'un des condensateurs a du fuir, mais rien de visible. Cela a du augmenter la résistance des connecteurs et l'oxydation a fait le reste.
En conclusion : le port SATA1 est à considérer comme HS, le port SATA2 fonctionne bien. J'ai jeté les câbles SATA pour les remplacer par des neufs. Avec autant d'embrouilles on va s'éviter des problèmes de faux contact. C'est assez problématique car les 4 autres ports SATA sont des ports 3gbps... dommage.
Conclusion
Je suis content d'avoir pu récupérer les données de ce disque qu'il me manquait. Ce n'était pas un drame si je n'avais pas pu y arriver car j'avais fait des sauvegardes quelques semaines auparavant.
Mais j'ai aimé le défi technique, celui de tenter de récupérer les données, coute que coute. Et encore une fois, alors que je pensais que tout était perdu, ce n'était pas le cas. Avec des outils professionnels et une salle blanche la totalité des données auraient probablement pu être récupérées. J'ai fait quelques devis et ils se situaient autour de 850 à 1200 euros (estimation à distance sans avoir vu le disque). Autant dire qu'ils se font plaisir 🙂
J'ai écris à Enedis pour savoir s'ils pouvaient prendre en charge les frais de récupération mais je n'ai eu aucune nouvelle de leur part... et je n'ai pas forcément envie d'enclencher des démarches longues et fastidieuses pour au final qu'on me dise que ça n'est pas pris en charge.
Voilà, j'espère que ce retour d'expérience vous sera utile ou vous aura fait passé un bon moment. Ceux qui me suivent sur twitter ont pu suivre l'avancement en temps quasi réel et connaissaient déjà bon nombre de détails 🙂
En conclusion : faites des backup régulièrement et tout se passera bien 🙂
En parallèle de cette histoire j'ai me suis monté une nouvelle configuration en Ryzen 7 7700x, je vous en parle rapidement.
Attention : inutile de venir me dire en commentaire que ma méthode de récupération ne fonctionne pas chez vous. Chaque panne de disque est unique : usure, défaut mécanique, électronique, chute, surtension, etc... adressez-vous à un professionnel et ne tentez rien vous-même car vous risquez d'aggraver la situation.
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
6 commentaires
Je suis surpris, vous n'avez 0as d'onduleur ?
@Micka41: hello, non étant en zone très dense (ville) je n'ai ni problème de coupure ni problème de tension. Un onduleur serait que très rarement utile (c'est l'exception qui confirme la règle 😆)
C'est étonnamment passionant à lire (et j'ai connu çà tellement de fois...).
Etonnant que la question des bootloaders / MBR / GPT / UEFI / ... soit toujours si compliquée au final, en 2023 ... (que ce soit sous WINDOWS, comme dans l'article ici, ou même sous LINUX). Je n'ai jamais compris pourquoi il n'y a pas eu une itération "disruptive" pour simplifier / standardiser tous ces mécanismes, peut-être même avec une gestion intégrée dans les BIOS (pour partitionner / formater / restaurer / ... facilement tout disque branché). Oui on s'en sort au final en général, mais c'est tout sauf out-of-the-box.
J'ai aussi un boitier USB IODD-2541, c'est clair que c'est bien pratique au final (plus que les clés VENTOY en pratique).
Sinon dans ma toolbox de stratégie de backups figurent en tête BORGBACKUP et SEAFILE (deux usages différents au final).
Bonjour,
Bravo et merci pour ce retour d'expérience qui sera surement utile à beaucoup de personnes.
🙏🏼🌞
Hal
@Serge: merci ! dans certains cas je préfère avoir une clé USB pour éviter de détruire le Zalman/IODD en jouant avec les lettres de lecteur (d'ailleurs je déconseille l'utilisation du dual mode pour cette raison)
Bonjour Mr Xhark,
Merci pour ce retour d'expérience aussi intéressant qu'exhaustif. J'aime particulièrement la démarche d'aller jusqu'à la modification physique (identification et démontage/remontage de la puce).
Il me reste un peu de lecture avec les liens inclus dans l'article (méthode steak haché - même si je pense déjà connaître et pratiquer - par exemple).