13 KiB
Réparer un disque dur bloqué en BSY State (Seagate 7200.11 / Maxtor DiamondMax 22)
À qui s'adresse ce tutoriel
Cette procédure ne répare qu'un seul type de panne : le bug dit BSY State qui affecte une famille bien précise de disques durs fabriqués par Seagate entre fin 2008 et 2009. Si votre disque ne correspond pas, n'appliquez pas cette procédure : vous risquez d'aggraver une panne d'une autre nature (PCB grillé, panne mécanique des têtes, contrôleur HS).
Modèles concernés :
- Seagate Barracuda 7200.11 avec firmwares SD15, SD17, SD18, SD19, AD14, AD15
- Seagate Barracuda ES.2 (firmwares SN03, SN05, SN06)
- Maxtor DiamondMax 22 (firmwares MX15, MX1A) — qui sont en réalité fabriqués par Seagate après le rachat de Maxtor
- Modèle de l'auteur : Maxtor STM3500320AS
Symptômes typiques du BSY State :
- Le disque n'est pas détecté par le BIOS
- Pas non plus détecté via un adaptateur USB/SATA
- Aucun bruit suspect : le moteur tourne, les têtes cliquettent normalement au démarrage
- Les outils Seagate (SeaTools Windows ou DOS) ne voient rien
- Basculer le BIOS de AHCI vers IDE ne change rien
Le signe diagnostique formel n'est visible qu'une fois la console série branchée : à la mise sous tension, le firmware affiche un message du type LED:000000CC FAddr:0025BF67. C'est la signature du BSY State.
Ce qu'est réellement le bug BSY
Contrairement à ce qu'on lit parfois, le bug ne touche ni les partitions de votre OS, ni les "premiers secteurs" du disque. Il s'agit d'un dépassement (overflow) dans le journal d'événements SMART stocké dans la System Area du disque — une zone réservée, située sur les plateaux mais en dehors de l'espace adressable par l'utilisateur (zone dite "négative"). Le firmware n'arrive plus à lire ce journal corrompu au démarrage, reste bloqué dans une boucle d'initialisation, et le disque ne se présente jamais au BIOS.
La réparation consiste à se connecter au port de diagnostic UART présent sur le PCB, à effacer le journal SMART, puis à reconstruire une partition firmware saine. Les données utilisateur sur les plateaux ne sont pas touchées si l'isolation des têtes est correctement réalisée (voir plus bas).
⚠️ Garantie : l'accès au port de diagnostic implique de retirer le PCB du disque. Cela annule toute garantie constructeur encore en cours.
Matériel nécessaire
- Adaptateur USB ↔ série TTL 3,3 V — voir l'avertissement critique ci-dessous
- 3 câbles de connexion fins (type fils Dupont femelle/femelle)
- Alimentation SATA externe (celle d'un boîtier USB/SATA fait l'affaire)
- Tournevis Torx T5 et T6
- Une feuille de papier épais (type bristol) ou un fin film plastique, découpé pour isoler les contacts des têtes
- Gaine thermorétractable ou ruban isolant (pour fiabiliser les connexions)
- Bracelet antistatique fortement recommandé
AVERTISSEMENT CRITIQUE : niveaux de tension
** ⚠️ Le port série du disque fonctionne en TTL 3,3 V.** Brancher directement un convertisseur USB/TTL 5 V (comme un Arduino Uno standard) sur la broche RX du disque risque d'endommager définitivement le contrôleur.
Deux options sûres :
-
Utiliser un adaptateur USB/TTL conçu pour le 3,3 V : FT232RL, CP2102, CH340G configurés en 3,3 V, ou un convertisseur explicitement étiqueté 3.3V TTL. C'est la solution la plus simple et la plus sûre.
-
Utiliser un Arduino mais avec un diviseur de tension sur la ligne TX → RX du disque : par exemple deux résistances 1 kΩ et 1,8 kΩ pour ramener 5 V à environ 3,2 V. La ligne TX du disque vers RX de l'Arduino peut rester directe (un signal 3,3 V est correctement interprété comme niveau haut par une entrée 5 V).
L'article original utilisait un Arduino Uno en direct, sans adaptation. Cela a fonctionné pour l'auteur mais reste un pari sur la robustesse du contrôleur du disque. Ne reproduisez pas tel quel.
Préparation du convertisseur
Avec un adaptateur USB/TTL dédié
Branchez simplement, et passez au câblage du disque.
Avec un Arduino Uno (avec diviseur de tension)
L'astuce consiste à utiliser l'Arduino uniquement comme convertisseur USB↔série, en court-circuitant le microcontrôleur ATmega328P : reliez la broche RESET à GND. Le firmware de la puce ATmega16U2 (qui gère l'USB) expose alors directement le port série sur les broches 0 (RX) et 1 (TX).
Aucun pilote spécifique n'est requis sous Linux ni Windows : la puce 16U2 se présente comme un port COM USB standard.
Câblage
Côté disque dur, le bornier série est sur le PCB, généralement à côté de l'interface SATA. PCB vu du dessus (côté composants visibles) :
| Broche | Fonction |
|---|---|
| 1 | non utilisée |
| 2 | GND (masse) |
| 3 | RX (entrée du disque) |
| 4 | non utilisée |
| 5 | TX (sortie du disque) |
| 6 | non utilisée |
Le bornier est étroit : prévoyez des connecteurs adaptés et isolez chaque contact à la gaine thermorétractable pour éviter tout court-circuit avec les pistes voisines.
Connexions :
- GND du disque (broche 2) ↔ GND de l'adaptateur
- TX du disque (broche 5) ↔ RX de l'adaptateur
- RX du disque (broche 3) ↔ TX de l'adaptateur (via diviseur de tension si Arduino 5 V)
Vérification de la connexion série
Sous Linux, vérifiez l'apparition du port :
ls -l /dev/serial/by-id/
Vous devez voir une entrée du type usb-Arduino_Srl_Arduino_Uno_... ou usb-FTDI_FT232R_USB_UART_... pointant vers /dev/ttyACM0 ou /dev/ttyUSB0.
Configurez PuTTY (Windows ou Linux) avec les paramètres suivants :
- Port :
/dev/ttyACM0(ou équivalent) - Vitesse : 38400 bauds
- 8 bits de données, 1 bit de stop, pas de parité, pas de contrôle de flux
Ouvrez la session, puis alimentez le disque dur. Au bout de quelques secondes, le firmware émet :
LED:000000CC FAddr:0025BF67
C'est confirmé : le disque est bien en BSY State. Coupez l'alimentation du disque avant de continuer.
Réparation
La procédure se déroule en trois phases :
- Isoler les têtes de lecture du PCB, pour empêcher toute écriture parasite pendant la manipulation.
- Effacer le journal SMART corrompu dans la System Area.
- Reformater la partition firmware et redémarrer le disque.
Phase 1 — Isolation des têtes
Pourquoi cette étape ? Pendant l'effacement du journal, le firmware pourrait tenter d'écrire sur les plateaux. Si les têtes sont électriquement déconnectées du PCB, aucune écriture ne peut atteindre la surface : vos données utilisateur restent intactes. C'est la garantie du caractère non destructif de la procédure.
- Disque hors tension, adaptateur série débranché de l'ordinateur.
- Avec un Torx T6, retirez les vis du PCB.
- Soulevez délicatement le PCB pour exposer le connecteur des têtes (un peigne de contacts métalliques sur l'envers du PCB, en regard d'un connecteur sur le corps du disque).
- Découpez un morceau de papier épais ou de film plastique fin, suffisamment large pour couvrir uniquement les contacts des têtes (pas ceux du moteur — qui sont généralement séparés et plus gros).
- Replacez le PCB en intercalant la feuille entre les contacts des têtes et leurs plots côté disque.
- Revissez uniquement les vis qui ne pincent pas la feuille (souvent les deux de droite) pour maintenir le PCB en position.
Le papier doit pouvoir être retiré ensuite sans démonter à nouveau le disque.
Phase 2 — Effacement du journal SMART
- Rebranchez l'adaptateur série à l'ordinateur, ouvrez la session PuTTY, puis alimentez le PCB.
- Au bout de quelques secondes, appuyez sur Ctrl+Z. Réponse :
F3 T> - Passez au niveau 2 du shell de diagnostic :
Le moteur s'arrête, réponse :
/2F3 2> - Attendez au moins 20 secondes que les plateaux soient complètement arrêtés (10 s en théorie, 20 par prudence).
- Informez le firmware de l'arrêt du moteur :
Comme les têtes sont isolées, le firmware répond immédiatement :
ZSpin Down Complete Elapsed Time 0.147 msecs F3 2>
Retrait de la feuille isolante — étape délicate :
-
Sans couper l'alimentation, retirez minutieusement la feuille isolante.
-
Remettez les vis manquantes, en vérifiant qu'aucune ne fait court-circuit avec une piste du PCB.
-
Redémarrez le moteur :
URéponse :
Spin Up Complete Elapsed Time 7.093 secs F3 2> -
Passez au niveau 1 :
/1Réponse :
F3 1> -
Effacez la partition contenant le journal SMART :
N1Le retour est silencieux : le prompt
F3 1>revient simplement. -
Coupez l'alimentation SATA du disque et attendez une vingtaine de secondes avant de la rétablir. Cette étape force le firmware à recharger ses structures internes.
Phase 3 — Reconstruction de la partition firmware
-
Adaptateur série toujours connecté, appuyez à nouveau sur Ctrl+Z. Réponse :
F3 T> -
Lancez le reformatage de la partition utilisateur du firmware :
m0,2,2,0,0,0,0,22Décomposition de la commande :
m= format,0= partition cible (User Partition de la System Area), suivi de paramètres de zone et de retry. Ne modifiez pas ces valeurs.Réponse, après quelques secondes à plusieurs minutes selon la capacité du disque :
Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 00C8 User Partition Format 10% complete, Zone 00, Pass 00, LBA 00004339, ErrCode 00000080, Elapsed Time 0 mins 05 secs User Partition Format Successful - Elapsed Time 0 mins 05 secs -
Attendez impérativement le message
Format Successfulavant de couper l'alimentation. Une interruption à ce stade peut briquer définitivement le disque. -
Coupez l'alimentation, débranchez l'adaptateur série, remontez le disque dans son emplacement habituel et redémarrez l'ordinateur. Le BIOS doit maintenant le détecter normalement.
Après la réparation
Le disque fonctionne à nouveau, mais le contrôleur a montré une faiblesse de conception. Il faut considérer ce disque comme un support de transition, pas comme un stockage fiable :
- Démarrez immédiatement une sauvegarde complète des données vers un autre support.
- Mettez à jour le firmware vers la dernière version Seagate disponible pour votre modèle si elle existe (SD1A pour les 7200.11, par exemple, corrige le bug à la source).
- Surveillez le disque avec
smartmontools(smartctl -a /dev/sdX). - À terme, remplacez ce disque — l'auteur recommande de ne pas le réutiliser pour des données importantes.
Sécurité électrostatique et bonnes pratiques
- Travaillez sur une surface non conductrice, à l'écart de moquette ou tapis.
- Portez un bracelet antistatique relié à la masse, ou touchez régulièrement une partie métallique reliée à la terre.
- Manipulez le PCB par les bords, jamais par les composants ou les pistes.
- N'ouvrez jamais la partie scellée du disque (les plateaux) : la procédure ne demande que le retrait du PCB extérieur.
Diagnostic différentiel : est-ce vraiment un BSY State ?
Avant de vous lancer, écartez les autres causes possibles d'un disque non détecté :
| Symptôme | Cause probable | Cette procédure aide ? |
|---|---|---|
| Aucun bruit, le moteur ne démarre pas | PCB ou moteur HS | Non |
| Cliquetis répétés ("click of death") | Têtes HS, panne mécanique | Non — risque d'aggraver |
| Démarre, est détecté par le BIOS, mais non lisible | Corruption logique ou secteurs défectueux | Non — utilisez TestDisk/ddrescue |
Démarre, non détecté par le BIOS, message LED:000000CC sur la console série |
BSY State | Oui |
| Démarre, détecté avec une capacité de 0 Go (LBA0 bug) | Variante du même bug | Oui, procédure légèrement différente |
Liens utiles
- Fil de référence sur HDDGuru (Gradius2, 2009) : https://forum.hddguru.com/viewtopic.php?t=15813
- Bulletin Seagate sur le bug : https://www.seagate.com/support/kb/firmware-recommendations-for-select-barracuda-72-007225-en-us/
- SeaTools : https://www.seagate.com/support/downloads/seatools/
- Surveillance SMART sous Linux : https://www.guillaume-leduc.fr/surveillez-la-sante-de-vos-disques-sous-linux-avec-smartmontools.html
- Article Wikipedia sur SMART : https://fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology
Retour d'expérience personnel sur un Maxtor STM3500320AS récupéré avec succès. Cette procédure est documentée publiquement depuis 2009 ; les informations techniques sur la System Area des Seagate proviennent de la communauté HDDGuru.
