diff --git a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.json b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.json deleted file mode 100644 index deb8cf1..0000000 --- a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "title": "Réparer un disque dur bloqué en BSY State (Seagate 7200.11 / Maxtor DiamondMax 22)", - "_updated_at": "2026-05-15 21:00:03", - "slug": "fixing-seagate-7000-11-hard-drive", - "published": true, - "published_at": "2020-04-17 18:06", - "category": "Informatique", - "tags": { - "tags": [ - "materiel", - "réparation" - ] - }, - "seo_title": "", - "seo_description": "" -} diff --git a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.md b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.md deleted file mode 100644 index 46f8b4f..0000000 --- a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.md +++ /dev/null @@ -1,258 +0,0 @@ -# Réparer un disque dur bloqué en BSY State (Seagate 7200.11 / Maxtor DiamondMax 22) - -![Réparation d'un disque dur](hard-drive-repair.jpg) - -## À 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 : - -1. **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. - -2. **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 : - -```bash -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 - -![Configuration PuTTY](putty_serial.png) - -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 : - -1. **Isoler les têtes de lecture du PCB**, pour empêcher toute écriture parasite pendant la manipulation. -2. **Effacer le journal SMART corrompu** dans la System Area. -3. **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. - -1. Disque **hors tension**, adaptateur série **débranché** de l'ordinateur. -2. Avec un Torx T6, retirez les vis du PCB. -3. 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). -4. 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). -5. Replacez le PCB en intercalant la feuille entre les contacts des têtes et leurs plots côté disque. -6. 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 - -7. Rebranchez l'adaptateur série à l'ordinateur, ouvrez la session PuTTY, puis alimentez le PCB. -8. Au bout de quelques secondes, appuyez sur **Ctrl+Z**. Réponse : - ``` - F3 T> - ``` -9. Passez au niveau 2 du shell de diagnostic : - ``` - /2 - ``` - Le moteur s'arrête, réponse : - ``` - F3 2> - ``` -10. **Attendez au moins 20 secondes** que les plateaux soient complètement arrêtés (10 s en théorie, 20 par prudence). -11. Informez le firmware de l'arrêt du moteur : - ``` - Z - ``` - Comme les têtes sont isolées, le firmware répond immédiatement : - ``` - Spin Down Complete - Elapsed Time 0.147 msecs - F3 2> - ``` - -**Retrait de la feuille isolante** — étape délicate : - -12. **Sans couper l'alimentation**, retirez minutieusement la feuille isolante. -13. Remettez les vis manquantes, en vérifiant qu'aucune ne fait court-circuit avec une piste du PCB. - -14. Redémarrez le moteur : - ``` - U - ``` - Réponse : - ``` - Spin Up Complete - Elapsed Time 7.093 secs - F3 2> - ``` - -15. Passez au niveau 1 : - ``` - /1 - ``` - Réponse : - ``` - F3 1> - ``` - -16. Effacez la partition contenant le journal SMART : - ``` - N1 - ``` - Le retour est silencieux : le prompt `F3 1>` revient simplement. - -17. **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 - -18. Adaptateur série toujours connecté, appuyez à nouveau sur **Ctrl+Z**. Réponse : - ``` - F3 T> - ``` - -19. Lancez le reformatage de la partition utilisateur du firmware : - ``` - m0,2,2,0,0,0,0,22 - ``` - Dé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 - ``` - -20. **Attendez impérativement le message `Format Successful`** avant de couper l'alimentation. Une interruption à ce stade peut briquer définitivement le disque. - -21. 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 : - -1. **Démarrez immédiatement une sauvegarde complète** des données vers un autre support. -2. 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). -3. Surveillez le disque avec `smartmontools` (`smartctl -a /dev/sdX`). -4. À 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) : -- Bulletin Seagate sur le bug : -- SeaTools : -- Surveillance SMART sous Linux : -- Article Wikipedia sur SMART : - ---- - -*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.* \ No newline at end of file diff --git a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/index.md b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/index.md index b31c370..46f8b4f 100644 --- a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/index.md +++ b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/index.md @@ -1,204 +1,258 @@ -# Réparer un disque dur HS +# Réparer un disque dur bloqué en BSY State (Seagate 7200.11 / Maxtor DiamondMax 22) -![](hard-drive-repair-playmobile.jpg) +![Réparation d'un disque dur](hard-drive-repair.jpg) -Vous êtes sur le point de jeter votre disque dur qui ne veut plus fonctionner : -- Windows ne veut pas voir le disque dur -- Le BIOS ne détecte pas le disque dur +## À qui s'adresse ce tutoriel -Les 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. +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). -Si vous possédez un Maxtor ou un Seagate, vous avez sûrement essayé les outils : -- [SeaTools pour Windows](http:*www.seagate.com/fr/fr/support/downloads/seatools/seatools-win-master/) -- [SeaTools pour DOS](http:*www.seagate.com/fr/fr/support/downloads/seatools/seatools-dos-master/) - le DOS est intégré dans l'image bootable. +Modèles concernés : -Mais 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. +- **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 -Il reste encore un moyen. Vous êtes surement tombé sur le bug du BSY State. +Symptômes typiques du BSY State : -Concrè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... +- 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 -Pour 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. +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. -Avec un Maxtor STM3500320AS, je viens d'avoir tous ces symptômes : -- **disque non reconnu dans le BIOS** -- **disque non détecté avec une interface USB** -- **pas de bruit suspect à l'arrêt et au démarrage du disque** - +## Ce qu'est réellement le bug BSY -La méthode que je vais vous détailler et non destructive si vous suivez toutes les instructions, sans mauvaise manipulation. +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. -## Prérequis -Le disque dur possède trois interfaces : -- une interface pour une alimentation SATA -- une interface pour des transfert des données SATA -- une interface série/limiteur de taux de transfert +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). -Il 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. +> ⚠️ **Garantie** : l'accès au port de diagnostic implique de retirer le PCB du disque. Cela annule toute garantie constructeur encore en cours. -Pour 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. +## Matériel nécessaire -Le 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. +- **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é -É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**. +### AVERTISSEMENT CRITIQUE : niveaux de tension -Je récapitule le matériel nécessaire : +** ⚠️ 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**. -- 3 câbles de connexion - entre le convertisseur USB/TTL et le disque dur -- convertisseur USB/TTL - Arduino pour moi -- alimentation électrique SATA -- tourne vis TORX T5 -- feuille épaisse - +Deux options sûres : -## Préparation -Je vais utiliser **Putty**, comme logiciel de communication série qui a l'avantage d'être disponible sous Windows et Linux. +1. **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. -Putty +2. **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). -Je 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. +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. -Relier le port RESET à la masse (GND) de l'Arduino. +## Préparation du convertisseur -Ensuite, il suffit de raccorder le convertisseur au disque dur et le convertisseur à l'ordinateur. +### Avec un adaptateur USB/TTL dédié -Sur l'Arduino : -- la broche 0 correspond au **RX** et -- la broche 1 au **TX**. +Branchez simplement, et passez au câblage du disque. -Sur le disque dur, PCB vu du dessus, -- la broche 2 correspond à la masse, -- la broche 3 au **RX** et -- la broche 5 au **TX** +### Avec un Arduino Uno (avec diviseur de tension) -Relier les 3 fils (masse, TX et RX) entre l'Arduino et le disque dur. +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). -## Vérification -Après avoir connecté le câble USB, l'Arduino se met en route et est tout de suite reconnu par le système. +Aucun pilote spécifique n'est requis sous Linux ni Windows : la puce 16U2 se présente comme un port COM USB standard. -Sous Linux, vous pouvez vérifier qu'un port **tty** a bien été ajouté en tapant la commande : -``` -ll /dev/servial/by-id +## 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 : + +```bash +ls -l /dev/serial/by-id/ ``` -voici le réponse : +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`. -``` -total 0 -lrwxrwxrwx 1 root root 13 15 août 21:13 usb-Arduino_Srl_Arduino_Uno_7543536303835131A090-if00 -> ../../ttyACM0 -lrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_WirelessIncorporated_Dell_Wireless_5570_HSPA+42MbpsMobile_Broadband_Card-if00-port0 -> ../../ttyUSB2 -lrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_WirelessIncorporated_Dell_Wireless_5570_HSPA+42MbpsMobile_Broadband_Card-if02-port0 -> ../../ttyUSB0 -lrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_WirelessIncorporated_Dell_Wireless_5570_HSPA+42Mbps__Mobile_Broadband_Card-if03-port0 -> ../../ttyUSB1 -``` +Configurez **PuTTY** (Windows ou Linux) avec les paramètres suivants : -La 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. +- 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 -Configurer Putty pour communiquer sur le port **/dev/ttyACM0**, avec une vitesse de **38400** +![Configuration PuTTY](putty_serial.png) -![](putty_serial_maxtor.png) - -Ouvrir un session Putty sur le port série. - -Ensuite, alimenter le disque dur et au bouts de quelques secondes, le résultat suivant apparait : +Ouvrez la session, **puis** alimentez le disque dur. Au bout de quelques secondes, le firmware émet : ``` LED:000000CC FAddr:0025BF67 ``` -Ce code indique bien que le disque dur est dans un état BSY (Busy). +C'est confirmé : le disque est bien en BSY State. Coupez l'alimentation du disque avant de continuer. -## Réparer -La réparation va se dérouler en 3 temps : -- isoler le micrologiciel des données SMART -- détruire la partition contenant les données SMART -- recréer la partition des données SMART +## Réparation -1. 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. +La procédure se déroule en trois phases : -Revisser uniquement les deux vis de droite afin de ne pas bloquer la feuille entre le PCB et le connecteur. +1. **Isoler les têtes de lecture du PCB**, pour empêcher toute écriture parasite pendant la manipulation. +2. **Effacer le journal SMART corrompu** dans la System Area. +3. **Reformater la partition firmware** et redémarrer le disque. -Lancer le session Serial de Putty et connecter le convertisseur à l'ordinateur, alimenter le PCB du disque dur. +### Phase 1 — Isolation des têtes -Au bout quelques secondes, appuyez sur `Ctrl+z` +**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. -Réponse : -``` -F3 T> -``` +1. Disque **hors tension**, adaptateur série **débranché** de l'ordinateur. +2. Avec un Torx T6, retirez les vis du PCB. +3. 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). +4. 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). +5. Replacez le PCB en intercalant la feuille entre les contacts des têtes et leurs plots côté disque. +6. Revissez **uniquement les vis qui ne pincent pas la feuille** (souvent les deux de droite) pour maintenir le PCB en position. -Accéder au level 2 en tapant `/2` +Le papier doit pouvoir être retiré ensuite **sans démonter à nouveau** le disque. -Le moteur du disque dur s'arrête et réponse : -``` -F3 2> -``` +### Phase 2 — Effacement du journal SMART -Attendez 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. +7. Rebranchez l'adaptateur série à l'ordinateur, ouvrez la session PuTTY, puis alimentez le PCB. +8. Au bout de quelques secondes, appuyez sur **Ctrl+Z**. Réponse : + ``` + F3 T> + ``` +9. Passez au niveau 2 du shell de diagnostic : + ``` + /2 + ``` + Le moteur s'arrête, réponse : + ``` + F3 2> + ``` +10. **Attendez au moins 20 secondes** que les plateaux soient complètement arrêtés (10 s en théorie, 20 par prudence). +11. Informez le firmware de l'arrêt du moteur : + ``` + Z + ``` + Comme les têtes sont isolées, le firmware répond immédiatement : + ``` + Spin Down Complete + Elapsed Time 0.147 msecs + F3 2> + ``` -Nous allons informer le micro logiciel d'un arrêt du moteur en tapant la commande `Z` +**Retrait de la feuille isolante** — étape délicate : -Ayant isolé les têtes de lecture, le micrologiciel répond : +12. **Sans couper l'alimentation**, retirez minutieusement la feuille isolante. +13. Remettez les vis manquantes, en vérifiant qu'aucune ne fait court-circuit avec une piste du PCB. -``` -Spin Down Complete -Elapsed Time 0.147 msecs -F3 2> -``` +14. Redémarrez le moteur : + ``` + U + ``` + Réponse : + ``` + Spin Up Complete + Elapsed Time 7.093 secs + F3 2> + ``` -Manipulation délicate, mais réalisable +15. Passez au niveau 1 : + ``` + /1 + ``` + Réponse : + ``` + F3 1> + ``` -Enlever minutieusement le papierentre le PCB et le connecteur des têtes de lecture. +16. Effacez la partition contenant le journal SMART : + ``` + N1 + ``` + Le retour est silencieux : le prompt `F3 1>` revient simplement. -Replacer les 3 vis en veillant à ne pas faire court circuit avec le PCB. - +17. **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. -2. On demande au moteur de démarrer en tapant la commande `U` +### Phase 3 — Reconstruction de la partition firmware -Le micrologiciel nous répond : +18. Adaptateur série toujours connecté, appuyez à nouveau sur **Ctrl+Z**. Réponse : + ``` + F3 T> + ``` -``` -Spin Up Complete -Elapsed Time 7.093 secs -F3 2> -``` +19. Lancez le reformatage de la partition utilisateur du firmware : + ``` + m0,2,2,0,0,0,0,22 + ``` + Dé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.** -Maintenant, nous accédons au level 1 en tapant la commande `/1` + 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 + ``` -Réponse : -``` -F3 1> -``` +20. **Attendez impérativement le message `Format Successful`** avant de couper l'alimentation. Une interruption à ce stade peut briquer définitivement le disque. -Maintenant, il faut effacer les secteurs du SMART en tapant la commande `N1` +21. 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. -Réponse : -Réponse : -``` -F3 1> -``` +## Après la réparation -Vous pouvez arrêter l'alimentation SATA et attendre une vingtaine de seconde avant de mettre de nouveau l'alimentation électrique du SATA. +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 : -3. Appuyer de nouveau sur les touches `Ctrl + z` pour revenir en mode édition. Réponse ; +1. **Démarrez immédiatement une sauvegarde complète** des données vers un autre support. +2. 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). +3. Surveillez le disque avec `smartmontools` (`smartctl -a /dev/sdX`). +4. À terme, remplacez ce disque — l'auteur recommande de ne pas le réutiliser pour des données importantes. -``` -F3 T> -``` +## Sécurité électrostatique et bonnes pratiques -Il faut réécrire les informations SMART avec la commande `m0,2,2,0,0,0,0,22`. Réponse : +- 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. -``` -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 -``` +## Diagnostic différentiel : est-ce vraiment un BSY State ? -Attendez bien ce message pour pouvoir de nouveau arrêter l'alimentation. +Avant de vous lancer, écartez les autres causes possibles d'un disque non détecté : -Vous pouvez dès à présent brancher votre disque dur à son emplacement prévu et vérifier que tout fonctionne bien. +| 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 | -Après ces opérations, je vous invite fortement à effectuer une sauvegarde de vos documents et de jeter ce disque dur. +## Liens utiles -## Quelques liens -- https:*www.guillaume-leduc.fr/surveillez-la-sante-de-vos-disques-sous-linux-avec-smartmontools.html -- https:*fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology \ No newline at end of file +- Fil de référence sur HDDGuru (Gradius2, 2009) : +- Bulletin Seagate sur le bug : +- SeaTools : +- Surveillance SMART sous Linux : +- Article Wikipedia sur SMART : + +--- + +*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.* \ No newline at end of file diff --git a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/meta.json b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/meta.json index afbcb40..f2da15a 100644 --- a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/meta.json +++ b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/meta.json @@ -1,18 +1,32 @@ { "uuid": "910e2c3d-93f1-4af5-816c-4bc489cb0abe", "slug": "fixing-seagate-7000-11-hard-drive", - "title": "Réparer un disque dur HS", + "title": "Réparer un disque dur bloqué en BSY State (Seagate 7200.11 / Maxtor DiamondMax 22)", "author": "cedric@abonnel.fr", "published": true, - "published_at": "2020-04-17 18:06:24", + "featured": false, + "published_at": "2020-04-17 18:06", "created_at": "2020-04-17 18:06:24", - "updated_at": "2020-04-17 18:06:24", - "revisions": [], + "updated_at": "2026-05-15 21:00:16", + "revisions": [ + { + "n": 1, + "date": "2026-05-15 21:00:16", + "comment": "Titre modifié, tags modifiés, contenu modifié", + "title": "Réparer un disque dur HS" + } + ], "cover": "", "files_meta": [], "external_links": [], "seo_title": "", "seo_description": "", "og_image": "", - "category": "Informatique" + "category": "Informatique", + "tags": { + "tags": [ + "materiel", + "réparation" + ] + } } diff --git a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/revisions/0001.md b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/revisions/0001.md new file mode 100644 index 0000000..b31c370 --- /dev/null +++ b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/revisions/0001.md @@ -0,0 +1,204 @@ +# Réparer un disque dur HS + +![](hard-drive-repair-playmobile.jpg) + +Vous êtes sur le point de jeter votre disque dur qui ne veut plus fonctionner : +- Windows ne veut pas voir le disque dur +- Le BIOS ne détecte pas le disque dur + +Les 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. + +Si vous possédez un Maxtor ou un Seagate, vous avez sûrement essayé les outils : +- [SeaTools pour Windows](http:*www.seagate.com/fr/fr/support/downloads/seatools/seatools-win-master/) +- [SeaTools pour DOS](http:*www.seagate.com/fr/fr/support/downloads/seatools/seatools-dos-master/) - le DOS est intégré dans l'image bootable. + +Mais 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. + +Il reste encore un moyen. Vous êtes surement tombé sur le bug du BSY State. + +Concrè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... + +Pour 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. + +Avec un Maxtor STM3500320AS, je viens d'avoir tous ces symptômes : +- **disque non reconnu dans le BIOS** +- **disque non détecté avec une interface USB** +- **pas de bruit suspect à l'arrêt et au démarrage du disque** + + +La méthode que je vais vous détailler et non destructive si vous suivez toutes les instructions, sans mauvaise manipulation. + +## Prérequis +Le disque dur possède trois interfaces : +- une interface pour une alimentation SATA +- une interface pour des transfert des données SATA +- une interface série/limiteur de taux de transfert + +Il 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. + +Pour 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. + +Le 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. + +É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**. + +Je récapitule le matériel nécessaire : + +- 3 câbles de connexion - entre le convertisseur USB/TTL et le disque dur +- convertisseur USB/TTL - Arduino pour moi +- alimentation électrique SATA +- tourne vis TORX T5 +- feuille épaisse + + +## Préparation +Je vais utiliser **Putty**, comme logiciel de communication série qui a l'avantage d'être disponible sous Windows et Linux. + +Putty + +Je 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. + +Relier le port RESET à la masse (GND) de l'Arduino. + +Ensuite, il suffit de raccorder le convertisseur au disque dur et le convertisseur à l'ordinateur. + +Sur l'Arduino : +- la broche 0 correspond au **RX** et +- la broche 1 au **TX**. + +Sur le disque dur, PCB vu du dessus, +- la broche 2 correspond à la masse, +- la broche 3 au **RX** et +- la broche 5 au **TX** + +Relier les 3 fils (masse, TX et RX) entre l'Arduino et le disque dur. + +## Vérification +Après avoir connecté le câble USB, l'Arduino se met en route et est tout de suite reconnu par le système. + +Sous Linux, vous pouvez vérifier qu'un port **tty** a bien été ajouté en tapant la commande : +``` +ll /dev/servial/by-id +``` + +voici le réponse : + +``` +total 0 +lrwxrwxrwx 1 root root 13 15 août 21:13 usb-Arduino_Srl_Arduino_Uno_7543536303835131A090-if00 -> ../../ttyACM0 +lrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_WirelessIncorporated_Dell_Wireless_5570_HSPA+42MbpsMobile_Broadband_Card-if00-port0 -> ../../ttyUSB2 +lrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_WirelessIncorporated_Dell_Wireless_5570_HSPA+42MbpsMobile_Broadband_Card-if02-port0 -> ../../ttyUSB0 +lrwxrwxrwx 1 root root 13 15 août 20:15 usb-Sierra_WirelessIncorporated_Dell_Wireless_5570_HSPA+42Mbps__Mobile_Broadband_Card-if03-port0 -> ../../ttyUSB1 +``` + +La 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. + +Configurer Putty pour communiquer sur le port **/dev/ttyACM0**, avec une vitesse de **38400** + +![](putty_serial_maxtor.png) + +Ouvrir un session Putty sur le port série. + +Ensuite, alimenter le disque dur et au bouts de quelques secondes, le résultat suivant apparait : + +``` +LED:000000CC FAddr:0025BF67 +``` + +Ce code indique bien que le disque dur est dans un état BSY (Busy). + +## Réparer +La réparation va se dérouler en 3 temps : +- isoler le micrologiciel des données SMART +- détruire la partition contenant les données SMART +- recréer la partition des données SMART + +1. 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. + +Revisser uniquement les deux vis de droite afin de ne pas bloquer la feuille entre le PCB et le connecteur. + +Lancer le session Serial de Putty et connecter le convertisseur à l'ordinateur, alimenter le PCB du disque dur. + +Au bout quelques secondes, appuyez sur `Ctrl+z` + +Réponse : +``` +F3 T> +``` + +Accéder au level 2 en tapant `/2` + +Le moteur du disque dur s'arrête et réponse : +``` +F3 2> +``` + +Attendez 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. + +Nous allons informer le micro logiciel d'un arrêt du moteur en tapant la commande `Z` + +Ayant isolé les têtes de lecture, le micrologiciel répond : + +``` +Spin Down Complete +Elapsed Time 0.147 msecs +F3 2> +``` + +Manipulation délicate, mais réalisable + +Enlever minutieusement le papierentre le PCB et le connecteur des têtes de lecture. + +Replacer les 3 vis en veillant à ne pas faire court circuit avec le PCB. + + +2. On demande au moteur de démarrer en tapant la commande `U` + +Le micrologiciel nous répond : + +``` +Spin Up Complete +Elapsed Time 7.093 secs +F3 2> +``` + +Maintenant, nous accédons au level 1 en tapant la commande `/1` + +Réponse : +``` +F3 1> +``` + +Maintenant, il faut effacer les secteurs du SMART en tapant la commande `N1` + +Réponse : +Réponse : +``` +F3 1> +``` + +Vous pouvez arrêter l'alimentation SATA et attendre une vingtaine de seconde avant de mettre de nouveau l'alimentation électrique du SATA. + +3. Appuyer de nouveau sur les touches `Ctrl + z` pour revenir en mode édition. Réponse ; + +``` +F3 T> +``` + +Il faut réécrire les informations SMART avec la commande `m0,2,2,0,0,0,0,22`. Réponse : + +``` +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 bien ce message pour pouvoir de nouveau arrêter l'alimentation. + +Vous pouvez dès à présent brancher votre disque dur à son emplacement prévu et vérifier que tout fonctionne bien. + +Après ces opérations, je vous invite fortement à effectuer une sauvegarde de vos documents et de jeter ce disque dur. + +## Quelques liens +- https:*www.guillaume-leduc.fr/surveillez-la-sante-de-vos-disques-sous-linux-avec-smartmontools.html +- https:*fr.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology \ No newline at end of file