Zum Inhalt
HDDLab Datenrettung · Danziger Str. 78a, 10405 BerlinПн–Пт 10–18 · 030-44041476 · info@hddlab.de

Восстановление объёма HUH721212ALE604 (6→12 ТБ)

14.10.2026 · Лаборатория HDDLab, Берлин

Диск HGST HUH721212ALE604 (S/N 8DGG••••) возвращён с 6 ТБ на полные 12 ТБ: после правки двух модулей служебной зоны (0x8C FCOD и 0x3E ZCHS) и рестарта питания паспорт показывает 23 437 770 752 сектора.

Исходные данные

Работали на PC-3000 Portable-III (ПО 7.9.15), утилита HGST CCB Architecture, профили в D:\!Profiles\HGST_CCB\Leo-A-HE12.

Пациент Донор
Модель HGST HUH721212ALE604 WDC WD121PURZ-85GUCY0
S/N 8DGG•••• AAHE••••
Прошивка LEGNW3D0 81.H0A80
Семейство Leo-A-HE12 Leo-A-HE12
Объём в паспорте 11 721 532 032 сект. (6 ТБ) 23 437 770 752 сект. (12 ТБ)
Головки 16 (00–0F), все в карте 16

Диагностика

Ограничение сидело в служебной зоне, а не в ATA-механизмах: все три способа чтения максимума давали одно и то же число.

Проверка в PC-3000 Значение
Паспорт, 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 и DCO поддерживаются, но не урезают: native max равен текущему.
  • Карта головок полная (00–0F), дорожки есть на всех головках — диск не «депопнут».
  • В утилите нет функции смены ёмкости для этого семейства, поэтому искали нужный модуль сравнением с донором.

Сравнение с донором

Объём задаётся в двух местах: конфигурация — в модуле 0x8C FCOD (Drive Configuration Data, 768 байт), итоговый max LBA — в заголовке 0x3E ZCHS (Zone Data). Все смещения — от начала файла модуля, числа little-endian.

Модуль, смещение Размер Пациент (6 ТБ) Донор (12 ТБ)
FCOD 0x8C 8 байт, секторы 512 11 721 532 032 23 437 770 752
FCOD 0xB4 4 байта, блоки 4K 1 465 191 504 2 929 721 344
ZCHS 0x54, 0x64, 0x6C 5 байт, max LBA 11 721 532 031 23 437 770 751
ZCHS 0x52 1 байт, флаг 0x84 0x04

Кроме этих полей и контрольной суммы (0x0C), FCOD у двух дисков побайтово одинаков, хоть прошивки разные.

Контрольная сумма модулей: сумма всех 32-битных слов модуля (little-endian, со словом 0x0C) = 0xAA55AA55. Правило проверено на 243 модулях обоих дисков; логи его не соблюдают.

Что диск изначально был 12 ТБ и урезан позже:

  • журнал событий 0x10 LGEV содержит много записей с ёмкостью 23 437 770 752;
  • в 0x17 SLFV (смещение 0x2C) — 23 437 770 752, след самотеста на полный объём;
  • заводские 0x0A MFGC, 0x0B MFGD и 0x65 CISP указывают 12 ТБ;
  • таблицы зон в ZCHS по всем 16 головкам по размеру такие же, как у донора.

Ход работ

Работа заняла около часа (время по протоколу PC-3000). Запись в служебную зону запускали вручную (кнопка OK), всё остальное — чтение и анализ.

  1. Диагностика пациента. Паспорт, Max LBA и DCO — везде 6 ТБ (раздел «Диагностика»).
  2. Бэкап пациента, 19:03. «Резервирование ресурсов HDD»: ПЗУ, все модули, LogDump, ID, Inquiry — всё Ok.
  3. Бэкап донора, 19:09. То же без LogDump. Утилита оставалась привязана к папке пациента, поэтому файлы донора легли туда же с суффиксом «(1)» (выбрано «Переименовать», ничего не перезаписано; принадлежность проверена по IDDump).
  4. Сравнение модулей. Побайтовый diff 150 пар модулей и поиск значений ёмкости в разных единицах → найден FCOD.
  5. Запись FCOD, \~19:25. Записан модуль 0x8C донора из отдельной папки FCOD_12TB. Проверка чтением (19:30): на диске именно этот файл, SHA-1 совпадает.
  6. Пересчёт транслятора и рестарт — без результата. Паспорт остался 6 ТБ. Повторное чтение всех модулей (19:42) показало: пересчёт поменял в ZCHS только флаг 0x52 (0x84 → 0x04) и контрольную сумму, max LBA в заголовке остался 6 ТБ. Значение 6 ТБ к этому моменту оставалось только в ZCHS.
  7. Правка ZCHS. Взят текущий ZCHS пациента, в поля 0x54, 0x64, 0x6C записано 23 437 770 751, пересчитана контрольная сумма (сумма = 0xAA55AA55). Заголовок 0x50–0x77 стал побайтово как у донора; таблицы зон остались родными.
  8. Запись ZCHS, 19:58. Модуль 3E из папки ZCHS_12TB — Ok. Пересчёт транслятора не запускали.
  9. Рестарт питания — 12 ТБ. Паспорт: 23 437 770 752 сектора.

Файлы и откат

Все пути — от D:\!Profiles\HGST_CCB\Leo-A-HE12\. Для отката до 6 ТБ: записать родные FCOD и ZCHS, затем рестарт питания.

Файл / папка Что это
HGST HUH721212ALE604-LEGNW3D0-8DGG••••\Data\SABackup\ Бэкапы: без суффикса — пациент до работ (19:03), «(1)» — донор (19:09)
...\SABackup\Modules\08C_FCOD_6TB_orig.rpm Родной FCOD пациента (6 ТБ)
...\SABackup\Modules\08C_FCOD.rpm Заменён на 12-ТБ версию; оригинал — строкой выше
ZCHS_6TB_backup\03E_ZCHS.rpm ZCHS пациента после пересчёта, до правки (6 ТБ)
FCOD_12TB\08C_FCOD.rpm Записанный FCOD (12 ТБ)
ZCHS_12TB\03E_ZCHS.rpm Записанный ZCHS (12 ТБ); только для диска 8DGG••••
HGST HUH721212ALE604-LEGNW3D0-8DGG••••\Data\Modules\ Чтение всех модулей после записи FCOD и пересчёта (19:42)

Что ещё сделать

Объём вернулся, но область 6–12 ТБ пока не проверена: причина урезания неизвестна.

  • Полное логическое сканирование с записью и проверкой; следить за ростом G-list и скоростью во второй половине
  • Свежий бэкап служебки в состоянии 12 ТБ
  • Проверка на хосте: hdparm -N = 23437770752/23437770752, hdparm --dco-identify
  • Не запускать пересчёт транслятора без нужды; если паспорт снова покажет 6 ТБ — перезаписать ZCHS_12TB\03E_ZCHS.rpm

Повтор на другом диске того же семейства. ZCHS у каждого диска свой, чужой записывать нельзя.

  1. Бэкап ресурсов в собственный профиль диска.
  2. Прочитать его FCOD и ZCHS; убедиться, что остальной FCOD совпадает с 12-ТБ версией, а таблицы зон полные.
  3. FCOD: 0x8C = 23 437 770 752 (8 байт), 0xB4 = 2 929 721 344 (4 байта).
  4. ZCHS: 0x54, 0x64, 0x6C = 23 437 770 751 (5 байт), 0x52 = 0x04.
  5. В обоих модулях пересчитать 0x0C так, чтобы сумма слов = 0xAA55AA55.
  6. Записать оба модуля из отдельной папки, без пересчёта транслятора, затем рестарт питания и проверка паспорта.

Не проверено: сработает ли правка одного ZCHS без FCOD и как поведёт себя пересчёт транслятора после обеих правок.

Эта статья на немецком: /wissen/hgst-huh721212-kapazitaet-12tb/

Похожий случай?

Опишите проблему – скажем, сможем ли помочь. Телефон 030-44041476.

Связаться+49 30 44041476

Найти модель диска

Модель, номер платы или артикул внешнего диска