Zum Inhalt
HDDLab Datenrettung · Danziger Str. 78a, 10405 BerlinMo–Fr 10–18 Uhr · 030-44041476 · info@hddlab.de

Research

HGST HUH721212ALE604: Kapazität von 6 auf 12 TB zurückgeholt

, Laborleiter ·

Eine HGST HUH721212ALE604 meldete nur 6 TB statt 12 TB. HPA und DCO waren es nicht – die Grenze saß im Service-Bereich. Nach Korrektur von zwei Modulen (0x8C FCOD und 0x3E ZCHS) und einem Neustart meldet das Laufwerk wieder 23.437.770.752 Sektoren, also volle 12 TB.

Ausgangslage

Gearbeitet wurde mit PC-3000 Portable III (Software 7.9.15) und der Utility „HGST CCB Architecture“, Familie Leo-A-HE12.

Patient Spender
Modell HGST HUH721212ALE604 WDC WD121PURZ-85GUCY0
Seriennummer 8DGG•••• AAHE••••
Firmware LEGNW3D0 81.H0A80
Familie Leo-A-HE12 Leo-A-HE12
Kapazität laut ID 11.721.532.032 Sektoren (6 TB) 23.437.770.752 Sektoren (12 TB)
Köpfe 16 (00–0F), alle in der Kopfkarte 16

Diagnose

Die Beschränkung lag im Service-Bereich, nicht in den ATA-Mechanismen: Alle drei Wege, das Maximum zu lesen, ergaben dieselbe Zahl.

Prüfung in PC-3000 Wert
ID-Sektor, LBA48 11.721.532.032
MAX LBA (READ NATIVE MAX, HPA) 11.721.532.031
Device Configuration Overlay, Max LBA 11.721.532.031
  • HPA und DCO werden unterstützt, beschneiden aber nichts: Native Max entspricht dem aktuellen Wert.
  • Die Kopfkarte ist vollständig (00–0F), auf allen Köpfen gibt es Spuren – das Laufwerk ist nicht „depopuliert“.
  • Die Utility hat für diese Familie keine Funktion zum Ändern der Kapazität. Das zuständige Modul wurde deshalb durch Vergleich mit dem Spender gesucht.

Vergleich mit dem Spender

Die Kapazität steht an zwei Stellen: die Konfiguration im Modul 0x8C FCOD (Drive Configuration Data, 768 Byte), der endgültige Max-LBA im Kopf von 0x3E ZCHS (Zone Data). Alle Offsets ab Modulbeginn, Zahlen little-endian.

Modul, Offset Größe Patient (6 TB) Spender (12 TB)
FCOD 0x8C 8 Byte, Sektoren à 512 11.721.532.032 23.437.770.752
FCOD 0xB4 4 Byte, 4K-Blöcke 1.465.191.504 2.929.721.344
ZCHS 0x54, 0x64, 0x6C 5 Byte, Max-LBA 11.721.532.031 23.437.770.751
ZCHS 0x52 1 Byte, Flag 0x84 0x04

Abgesehen von diesen Feldern und der Prüfsumme (0x0C) ist FCOD bei beiden Laufwerken byteweise gleich – trotz unterschiedlicher Firmware.

Prüfsumme der Module: Die Summe aller 32-Bit-Wörter des Moduls (little-endian, einschließlich Wort 0x0C) ergibt 0xAA55AA55. Die Regel wurde an 243 Modulen beider Laufwerke geprüft; Logs halten sie nicht ein.

Dass das Laufwerk ursprünglich 12 TB hatte und später beschnitten wurde, zeigen mehrere Stellen:

  • Das Ereignisprotokoll 0x10 LGEV enthält viele Einträge mit der Kapazität 23.437.770.752.
  • In 0x17 SLFV (Offset 0x2C) steht 23.437.770.752 – die Spur eines Selbsttests über die volle Kapazität.
  • Die Werksmodule 0x0A MFGC, 0x0B MFGD und 0x65 CISP nennen 12 TB.
  • Die Zonentabellen in ZCHS sind für alle 16 Köpfe so groß wie beim Spender.

Ablauf

Die Arbeit dauerte etwa eine Stunde (laut PC-3000-Protokoll). Schreibzugriffe auf den Service-Bereich wurden jeweils von Hand bestätigt, alles andere war Lesen und Auswerten.

  1. Diagnose des Patienten. ID-Sektor, Max LBA und DCO: überall 6 TB.
  2. Sicherung des Patienten. „Ressourcen sichern“: ROM, alle Module, LogDump, ID, Inquiry – alles ohne Fehler.
  3. Sicherung des Spenders. Ebenso, ohne LogDump. Die Dateien wurden mit Zusatz „(1)“ abgelegt, nichts überschrieben; die Zuordnung wurde über den IDDump geprüft.
  4. Modulvergleich. Byteweiser Vergleich von 150 Modulpaaren und Suche nach Kapazitätswerten in verschiedenen Einheiten – so wurde FCOD gefunden.
  5. FCOD geschrieben. Modul 0x8C des Spenders aus einem eigenen Ordner geschrieben. Kontrolle durch Zurücklesen: SHA-1 identisch.
  6. Translator neu berechnet und Neustart – ohne Erfolg. Die ID zeigte weiter 6 TB. Erneutes Lesen aller Module zeigte: Die Neuberechnung änderte in ZCHS nur das Flag 0x52 (0x84 → 0x04) und die Prüfsumme, der Max-LBA im Kopf blieb bei 6 TB. Nur noch dort stand der 6-TB-Wert.
  7. ZCHS korrigiert. Das aktuelle ZCHS des Patienten genommen, in die Felder 0x54, 0x64 und 0x6C den Wert 23.437.770.751 geschrieben und die Prüfsumme neu berechnet (Summe = 0xAA55AA55). Der Kopf 0x50–0x77 war danach byteweise wie beim Spender, die Zonentabellen blieben die eigenen.
  8. ZCHS geschrieben. Modul 3E ohne Fehler geschrieben. Den Translator haben wir danach nicht neu berechnet.
  9. Neustart – 12 TB. ID-Sektor: 23.437.770.752 Sektoren.

Rückweg

Für eine Rückkehr auf 6 TB genügt es, die originalen FCOD- und ZCHS-Module des Laufwerks zurückzuschreiben und das Laufwerk neu zu starten. Beide Originale sind gesichert, ebenso die vollständige Sicherung von Patient und Spender vor der Arbeit.

Was noch offen ist

Die Kapazität ist zurück, der Bereich zwischen 6 und 12 TB ist aber noch nicht geprüft – warum das Laufwerk beschnitten wurde, ist unbekannt.

  • Vollständiger logischer Scan mit Schreiben und Prüfen; dabei Wachstum der G-List und Geschwindigkeit in der zweiten Hälfte beobachten.
  • Frische Sicherung des Service-Bereichs im 12-TB-Zustand.
  • Kontrolle am Host: hdparm -N = 23437770752/23437770752, hdparm --dco-identify.
  • Den Translator nicht ohne Grund neu berechnen. Zeigt die ID wieder 6 TB, das korrigierte ZCHS erneut schreiben.

Wiederholung an einem anderen Laufwerk derselben Familie

ZCHS ist bei jedem Laufwerk individuell – ein fremdes ZCHS darf nicht geschrieben werden.

  1. Ressourcen in ein eigenes Profil des Laufwerks sichern.
  2. Dessen FCOD und ZCHS lesen; prüfen, dass der übrige FCOD mit der 12-TB-Version übereinstimmt und die Zonentabellen vollständig sind.
  3. FCOD: 0x8C = 23.437.770.752 (8 Byte), 0xB4 = 2.929.721.344 (4 Byte).
  4. ZCHS: 0x54, 0x64, 0x6C = 23.437.770.751 (5 Byte), 0x52 = 0x04.
  5. In beiden Modulen 0x0C so neu berechnen, dass die Wortsumme 0xAA55AA55 ergibt.
  6. Beide Module aus einem eigenen Ordner schreiben, ohne Translator-Neuberechnung, dann Neustart und Kontrolle der ID.

Nicht geprüft: ob die Korrektur von ZCHS allein, ohne FCOD, genügt, und wie sich eine Translator-Neuberechnung nach beiden Korrekturen verhält.

Sie haben ein Laufwerk mit falscher Kapazität oder einem beschädigten Service-Bereich? Rufen Sie uns an unter 030-44041476 oder beschreiben Sie den Fall über das Anfrageformular.

Ein ähnlicher Fall?

Beschreiben Sie, was Sie suchen. Wir sagen, ob und wie wir helfen können.

Fall einreichen030-44041476

Laufwerk nachschlagen

Modell, Platinennummer oder Artikelnummer der externen Festplatte