diff --git a/.stats_cache.json b/.stats_cache.json index 21673ea..5e2d3dd 100644 --- a/.stats_cache.json +++ b/.stats_cache.json @@ -1 +1 @@ -{"readable":true,"books":{"\/book\/esp":2,"\/book\/les-commandes-linux":1,"\/book\/linux-architecture-des-dossiers":1},"as":[{"asn":"","name":"LAN","country":"","hits":12729},{"asn":"8075","name":"Cloud","country":"US","hits":743},{"asn":"14618","name":"AWS EC2 (us-east-1)","country":"US","hits":174},{"asn":"15169","name":"Google LLC","country":"US","hits":41},{"asn":"32934","name":"Meta Platforms Ireland Limited","country":"US","hits":28},{"asn":"36352","name":"HostPapa","country":"US","hits":18},{"asn":"16509","name":"Anthropic, PBC","country":"US","hits":8},{"asn":"16276","name":"OVH","country":"FR","hits":5},{"asn":"41281","name":"KeFF Networks Ltd","country":"SE","hits":5},{"asn":"58087","name":"Datalix","country":"DE","hits":4},{"asn":"212238","name":"Aventice LLC","country":"ZA","hits":4},{"asn":"132203","name":"Tencent Building, Kejizhongyi Avenue","country":"HK","hits":4},{"asn":"136907","name":"Huawei Cloud","country":"SG","hits":3},{"asn":"37054","name":"Telma Madagascar","country":"MG","hits":2},{"asn":"51207","name":"Free Mobile","country":"FR","hits":2},{"asn":"209372","name":"SIA \"Singularity Telecom\"","country":"FR","hits":2},{"asn":"12322","name":"ProXad network \/ Free","country":"FR","hits":2},{"asn":"45102","name":"Alibaba.com LLC","country":"SG","hits":2},{"asn":"3215","name":"Orange S.A.","country":"FR","hits":1},{"asn":"396982","name":"Google Cloud (us-east5)","country":"US","hits":1},{"asn":"28343","name":"UNIFIQUE TELECOMUNICACOES S\/A","country":"BR","hits":1},{"asn":"213230","name":"Hetzner Online GmbH","country":"US","hits":1},{"asn":"46635","name":"Contact Consumers","country":"US","hits":1},{"asn":"29695","name":"Signal Bredband","country":"NO","hits":1},{"asn":"396319","name":"Sentris Network LLC","country":"US","hits":1},{"asn":"213541","name":"E-Light-Telecom Ltd","country":"FR","hits":1},{"asn":"5410","name":"Bouygues Telecom SA","country":"FR","hits":1},{"asn":"210906","name":"Bite code","country":"US","hits":1},{"asn":"142593","name":"Abul Kalam Azad","country":"BD","hits":1},{"asn":"7979","name":"Servers.com, Inc.","country":"US","hits":1}]} \ No newline at end of file +{"readable":true,"books":{"\/book\/esp":2,"\/book\/les-commandes-linux":1,"\/book\/linux-architecture-des-dossiers":1},"as":[{"asn":"","name":"LAN","country":"","hits":12737},{"asn":"8075","name":"Cloud","country":"US","hits":744},{"asn":"14618","name":"AWS EC2 (us-east-1)","country":"US","hits":212},{"asn":"15169","name":"Google LLC","country":"US","hits":42},{"asn":"32934","name":"Meta Platforms Ireland Limited","country":"US","hits":32},{"asn":"36352","name":"HostPapa","country":"US","hits":18},{"asn":"16509","name":"Anthropic, PBC","country":"US","hits":8},{"asn":"16276","name":"OVH","country":"FR","hits":5},{"asn":"41281","name":"KeFF Networks Ltd","country":"SE","hits":5},{"asn":"58087","name":"Datalix","country":"DE","hits":4},{"asn":"136907","name":"Huawei Cloud","country":"SG","hits":3},{"asn":"37054","name":"Telma Madagascar","country":"MG","hits":2},{"asn":"51207","name":"Free Mobile","country":"FR","hits":2},{"asn":"209372","name":"SIA \"Singularity Telecom\"","country":"FR","hits":2},{"asn":"212238","name":"Aventice LLC","country":"ZA","hits":2},{"asn":"3215","name":"Orange S.A.","country":"FR","hits":1},{"asn":"396982","name":"Google Cloud (us-east5)","country":"US","hits":1},{"asn":"12322","name":"ProXad network \/ Free","country":"FR","hits":1},{"asn":"45102","name":"Alibaba.com LLC","country":"SG","hits":1},{"asn":"28343","name":"UNIFIQUE TELECOMUNICACOES S\/A","country":"BR","hits":1},{"asn":"213230","name":"Hetzner Online GmbH","country":"US","hits":1},{"asn":"46635","name":"Contact Consumers","country":"US","hits":1},{"asn":"29695","name":"Signal Bredband","country":"NO","hits":1}]} \ No newline at end of file diff --git a/.version_check_cache.json b/.version_check_cache.json index 84ad8e1..41a2b64 100644 --- a/.version_check_cache.json +++ b/.version_check_cache.json @@ -1 +1 @@ -{"fetched_at":1778875830,"version":"1.6.9"} +{"fetched_at":1778876976,"version":"1.6.9"} diff --git a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.json b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.json new file mode 100644 index 0000000..9a8c92b --- /dev/null +++ b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.json @@ -0,0 +1,4 @@ +{ + "title": "Réparer un disque dur bloqué en BSY State (Seagate 7200.11 / Maxtor DiamondMax 22)", + "_updated_at": "2026-05-15 20:53:49" +} diff --git a/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.md b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.md new file mode 100644 index 0000000..6a09026 --- /dev/null +++ b/910e2c3d-93f1-4af5-816c-4bc489cb0abe/draft_overlay.md @@ -0,0 +1,258 @@ +# 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