1 line
8.9 KiB
JSON
1 line
8.9 KiB
JSON
{"uuid":"910e2c3d-93f1-4af5-816c-4bc489cb0abe","slug":"fixing-seagate-7000-11-hard-drive","title":"Réparer un disque dur HS","author":"cedric@abonnel.fr","published":true,"published_at":"2020-04-17 18:06:24","created_at":"2020-04-17 18:06:24","updated_at":"2020-04-17 18:06:24","revisions":[],"cover":"","files_meta":[],"external_links":[],"seo_title":"","seo_description":"","og_image":"","category":"Informatique","content":"# Réparer un disque dur HS\n\n\n\nVous êtes sur le point de jeter votre disque dur qui ne veut plus fonctionner :\n- Windows ne veut pas voir le disque dur\n- Le BIOS ne détecte pas le disque dur\n\nLes arrêts/démarrages de l'ordinateur ne change rien au problème : le disque dur est perdu, **invisible** ! Pourtant, vous l'entendez, le moteur fonctionne, les têtes cliquettent au démarrage... tout vous semble correctement fonctionner.\n\nSi vous possédez un Maxtor ou un Seagate, vous avez sûrement essayé les outils :\n- [SeaTools pour Windows](http:*www.seagate.com/fr/fr/support/downloads/seatools/seatools-win-master/)\n- [SeaTools pour DOS](http:*www.seagate.com/fr/fr/support/downloads/seatools/seatools-dos-master/) - le DOS est intégré dans l'image bootable.\n\nMais rien y fait, même l'utilitaire SeaTools ne voit rien. Et pourtant vous avez bien pensé à basculer de AHCI à IDE dans le gestion des disques du BIOS.\n\nIl reste encore un moyen. Vous êtes surement tombé sur le bug du BSY State.\n\nConcrètement, il s'agit d'un mode dans lequel le micrologiciel (firmware) du disque dur n'arrive plus à se sortir. Ce **bug empêche** le BIOS de détecter le disque dur, et donc, empêche tous les accès de l'ordinateur, y compris Windows, Linux...\n\nPour que le micrologiciel puisse se sortir de la boucle infernale du **BSY State**, il va falloir modifier les informations S.M.A.R.T.. Ces informations sont écrites dans les premiers secteurs du disque dur.\n\n<note warning>Avec un Maxtor STM3500320AS, je viens d'avoir tous ces symptômes :\n- **disque non reconnu dans le BIOS**\n- **disque non détecté avec une interface USB**\n- **pas de bruit suspect à l'arrêt et au démarrage du disque**\n</note>\n\nLa méthode que je vais vous détailler et non destructive si vous suivez toutes les instructions, sans mauvaise manipulation.\n\n## Prérequis\nLe disque dur possède trois interfaces :\n- une interface pour une alimentation SATA\n- une interface pour des transfert des données SATA\n- une interface série/limiteur de taux de transfert\n\nIl va falloir accéder au micrologiciel du disque dur par le port série. Si vous n'avez pas de port série sur l'ordinateur, il va falloir trouver un adaptateur USB/Série appelé également USB/TTL.\n\nPour ma part j'ai utilisé un Arduino Uno qui intègre un convertisseur USB/TTL avec une puce Atmega16U2. La puce 16U2 est programmée avec des pilotes standards COM USB, et il n'est pas nécessaire d'installé un pilote PC pour y accéder.\n\nLe bornier série du disque dur est assez étroit et il a fallu que j'adapte des connecteurs pour qu'il y ait un contact propre et sans risque de court-circuit. Pour éviter les courts-circuits j'ai ajouté de la gaîne thermorétractable.\n\nÉtant donné que le disque dur est sorti de son logement standard, je n'ai plus d'alimentation électrique pour permettre de le faire fonctionner. J'ai utiliser une alimentation fournie avec un kit de connexion de disque dur **USB 2.0 to SATA/IDE**.\n\n<note important>Je récapitule le matériel nécessaire :\n\n- 3 câbles de connexion - entre le convertisseur USB/TTL et le disque dur\n- convertisseur USB/TTL - Arduino pour moi\n- alimentation électrique SATA\n- tourne vis TORX T5\n- feuille épaisse\n</note>\n\n## Préparation\nJe vais utiliser **Putty**, comme logiciel de communication série qui a l'avantage d'être disponible sous Windows et Linux.\n\nPutty\n\nJe prépare l'Arduino pour que les PIN0 et PIN1 deviennent une image parfaite du port USB. La manipulation est toute simple et ne demande aucune programmation dans l'Arduino.\n\nRelier le port RESET à la masse (GND) de l'Arduino.\n\nEnsuite, il suffit de raccorder le convertisseur au disque dur et le convertisseur à l'ordinateur.\n\nSur l'Arduino :\n- la broche 0 correspond au **RX** et \n- la broche 1 au **TX**.\n\nSur le disque dur, PCB vu du dessus, \n- la broche 2 correspond à la masse, \n- la broche 3 au **RX** et \n- la broche 5 au **TX**\n\nRelier les 3 fils (masse, TX et RX) entre l'Arduino et le disque dur.\n\n## Vérification\nAprès avoir connecté le câble USB, l'Arduino se met en route et est tout de suite reconnu par le système.\n\nSous Linux, vous pouvez vérifier qu'un port **tty** a bien été ajouté en tapant la commande :\n```\nll /dev/servial/by-id\n```\n\nvoici le réponse :\n\n```\ntotal 0\nlrwxrwxrwx 1 root root 13 15 août 21:13 usb-Arduino_Srl_Arduino_Uno_7543536303835131A090-if00 -> ../../ttyACM0\nlrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_Wireless<u>Incorporated_Dell_Wireless_5570_HSPA+</u>42Mbps<u>Mobile_Broadband_Card-if00-port0 -> ../../ttyUSB2\nlrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_Wireless</u>Incorporated_Dell_Wireless_5570_HSPA+<u>42Mbps</u>Mobile_Broadband_Card-if02-port0 -> ../../ttyUSB0\nlrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_Wireless<u>Incorporated_Dell_Wireless_5570_HSPA+</u>42Mbps__Mobile_Broadband_Card-if03-port0 -> ../../ttyUSB1\n```\n\nLa ligne qui nous intéresse contient la phrase `usb-Arduino_Srl_Arduino_Uno`, et le résultat qu'il faut retenir est `ttyACM0`. Cette indication va nous permettre d'indiquer à Putty sur quel canal dialoguer.\n\nConfigurer Putty pour communiquer sur le port **/dev/ttyACM0**, avec une vitesse de **38400**\n\n\n\nOuvrir un session Putty sur le port série.\n\nEnsuite, alimenter le disque dur et au bouts de quelques secondes, le résultat suivant apparait :\n\n```\nLED:000000CC FAddr:0025BF67\n```\n\nCe code indique bien que le disque dur est dans un état BSY (Busy).\n\n## Réparer\nLa réparation va se dérouler en 3 temps :\n- isoler le micrologiciel des données SMART\n- détruire la partition contenant les données SMART\n- recréer la partition des données SMART\n\n1. Hors alimentation, convertisseur déconnecté de l'ordinateur, démonter le PCB et insérer entre le PCB et les connecteurs des têtes la feuille d'isolation. Celle-ci doit pouvoir être retirée lorsque le PCB sera de nouveau en place.\n\nRevisser uniquement les deux vis de droite afin de ne pas bloquer la feuille entre le PCB et le connecteur.\n\nLancer le session Serial de Putty et connecter le convertisseur à l'ordinateur, alimenter le PCB du disque dur.\n\nAu bout quelques secondes, appuyez sur `Ctrl+z`\n\nRéponse :\n```\nF3 T>\n```\n\nAccéder au level 2 en tapant `/2`\n\nLe moteur du disque dur s'arrête et réponse :\n```\nF3 2>\n```\n\nAttendez au moins 20 secondes pour que le disque dur s'arrête. Normalement, il s’arrête au bout de 10 secondes, mais il vaut mieux être prudent.\n\nNous allons informer le micro logiciel d'un arrêt du moteur en tapant la commande `Z`\n\nAyant isolé les têtes de lecture, le micrologiciel répond :\n\n```\nSpin Down Complete\nElapsed Time 0.147 msecs\nF3 2>\n```\n\n<note important>Manipulation délicate, mais réalisable\n\nEnlever minutieusement le papierentre le PCB et le connecteur des têtes de lecture.\n\nReplacer les 3 vis en veillant à ne pas faire court circuit avec le PCB.\n</note>\n\n2. On demande au moteur de démarrer en tapant la commande `U`\n\nLe micrologiciel nous répond :\n\n```\nSpin Up Complete\nElapsed Time 7.093 secs\nF3 2>\n```\n\nMaintenant, nous accédons au level 1 en tapant la commande `/1`\n\nRéponse :\n```\nF3 1>\n```\n\nMaintenant, il faut effacer les secteurs du SMART en tapant la commande `N1`\n\nRéponse : \nRéponse :\n```\nF3 1>\n```\n\nVous pouvez arrêter l'alimentation SATA et attendre une vingtaine de seconde avant de mettre de nouveau l'alimentation électrique du SATA.\n\n3. Appuyer de nouveau sur les touches `Ctrl + z` pour revenir en mode édition. Réponse ;\n\n```\nF3 T>\n```\n\nIl faut réécrire les informations SMART avec la commande `m0,2,2,0,0,0,0,22`. Réponse :\n\n```\nMax Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 00C8\nUser Partition Format 10% complete, Zone 00, Pass 00, LBA 00004339, ErrCode 00000080, Elapsed Time 0 mins 05 secs\nUser Partition Format Successful - Elapsed Time 0 mins 05 secs\n```\n\nAttendez bien ce message pour pouvoir de nouveau arrêter l'alimentation.\n\nVous pouvez dès à présent brancher votre disque dur à son emplacement prévu et vérifier que tout fonctionne bien.\n\nAprès ces opérations, je vous invite fortement à effectuer une sauvegarde de vos documents et de jeter ce disque dur.\n\n## Quelques liens\n- https:*www.guillaume-leduc.fr/surveillez-la-sante-de-vos-disques-sous-linux-avec-smartmontools.html\n- https:*fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology","featured":false,"tags":[]} |