Июньским утром сотрудники компании обнаружили, что вход в офис затоплен и из окон на улицу поступает пар. В срочном порядке была вызвана аварийная бригада, которая прекратила поступление воды в помещение и занялась откачкой. Причиной затопления стала коррозия металла, которая привела к разрушению одного из фитингов на трубе горячего водоснабжения.
Ущерб был нанесен стенам, полам, мебели, бумажной документации и оргтехнике. Наиболее пострадавшими оказались компьютеры, которые находились в серверной-админской и оставались включенными круглосуточно. Накопители, которым пришлось работать, будучи погруженными в горячую воду, представляли собой весьма печальное зрелище.

рис. 1
Проанализировав резервные копии данных, которые находились вне офиса, было принято решение о необходимости восстановления данных с некоторых накопителей. Одним из них был накопитель Samsung HD753LJ.
Примерно в таком состоянии накопитель поступил в нашу лабораторию восстановления данных (на рис. 1 накопитель уже после процедуры очистки от пыли и загрязнений). Известно, что корпус накопителя не герметичен и в нем имеет воздушный фильтр для выравнивания давления внутри накопителя с окружающей средой.

рис. 2
Конструктив накопителя таков, что ось БМГ вкручивается в корпус в отверстие с резьбой и с наружной стороны корпуса заклеивается круглой наклейкой. К сожалению, в нашем случае под воздействием горячей воды наклейка была смыта.

рис. 3
Учитывая, что накопитель находился много часов будучи погруженным в воду с отслоившейся защитной наклейкой, предполагаем, что возможно попадание жидкости внутрь гермоблока. В условиях ламинарного бокса производим вскрытие накопителя. Первичный визуальный осмотр не выявляет какого-либо серьезного попадания жидкости в гермоблок.

рис. 4
Снимаем блок магнитных головок (БМГ) и обследуем отверстие с резьбой в корпусе накопителя и его окрестности, а также сам БМГ под микроскопом. В результате осмотра обнаружены небольшие разводы у самого резьбового соединения, что говорит о том, что жидкости попало достаточно мало и на момент поступления накопителя к нам она уже вся успела испариться. Деформаций подвесок и слайдеров не обнаружено, коммутатор-предусилитель визуально без повреждений. Проводим операцию удаления солей, содержавшихся в жидкости, во избежание разлета пыли по гермоблоку, как на корпусе, так и на самом БМГ. Также замеряем сопротивление всех выводов на колодке от коммутатора-предусилителя и сравниваем его с сопротивлением аналогичного накопителя. Результат проверок позволяет предположить исправность коммутатора-предусилителя. Исходя из того, что серьезных загрязнений не обнаружено, отсутствуют деформации подвесок и слайдеров, а также есть основание предполагать, что коммутатор-предусилитель исправен, приходим к выводу, что нет необходимости производить пересадку пакета дисков в другой корпус и также нет необходимости использовать БМГ от накопителя-донора. Собираем накопитель обратно.
Исходя из результатов первичного визуального осмотра очевидно, что печатная плата «контроллера» данного накопителя деградировала в результате электрохимической коррозии и не может быть использована. В данном семействе (F1_3D) ПЗУ располагается в MCU Marvell 88i8826E. Учитывая, что неизвестно «жив» ли данный MCU, а также сложность пайки BGA микросхем, варианты с получением оригинального содержимого ПЗУ исключим.
В случае накопителей Samsung данного семейства применима методика Hot swap. Прочитав модули микропрограммы, можно установить версию оригинальной микропрограммы, а также понять, помещался ли код микропрограммы целиком в ПЗУ микроконтроллера или для его хранения использовались оверлеи в служебной зоне.

рис. 5
Проведя анализ модуля FSI, мы установили версию микропрограммы 1AG08ugB.d35. Оценивая содержимое модулей 73_MOVLY, 19_BOVLY, обнаруживаем, что они целиком заполнены нулями. Данное наблюдение позволяет сделать вывод, что для восстановления данных можно использовать практически любое ПЗУ с совместимым идентификатором платформы, которое не использует модули 19 и 73 для хранения исполняемого кода.
Используем плату донора, в которую запишем ближайшее совместимое ПЗУ Ближайшая версия в наличии оказалась 1AA18HuM.d35.
Пробный старт показал в терминале лог с некоторыми сообщениями об ошибках, которые не являются критичными при вычитывании пользовательских данных.

рис. 6
По регистрам накопитель также сообщил о готовности к обмену данными.

рис. 7
В ОЗУ жесткого диска модифицируем количество аппаратных повторов со 100 попыток чтения до 2, чтобы не провоцировать долгие задержки на нечитабельных участках, а также частично отключаем процедуры оффлайн-сканирования.
Создаем задачу посекторной копии на другой накопитель и первым делом строим карту зонного распределения.

рис. 8
Начинаем чтение в UDMA режиме с таймаутом ожидания готовности 300 миллисекунд, с прерыванием операции при обнаружении нестабильности, подачей программного сброса и прыжком на 100 000 секторов вперед.
Обнаруживаются UNC ошибки на секторах 6 24х ххх и 89 36х ххх. Остальные участки читаются без затруднений.
Отправляем накопитель в спящий режим и на копии производим анализ нулевого сектора.

рис. 9
На рис. 9 видно, что присутствуют записи о двух разделах. Первый раздел начинается с сектора 0x0000003F (63) и его длина 0x061A7927 (102 398 247) секторов. Второй раздел начинается с сектора 0x061A7966 (102 398 310), и его длина составляет 0x446AF55B (1 147 860 315) секторов. По смещению 0x1BE находится значение 0x80 – признак активности раздела (раздел является загрузочным). Согласно локализации дефектов очевидно, что они приходятся на первый раздел.
В секторе 63 располагается загрузочный сектор первого раздела, в котором кроме кода загрузчика, передающего управление NTLDR, находятся параметры файловой системы.

рис. 10
Из параметров файловой системы отметим: сектор 512 байт, 8 секторов в кластере, размер раздела в загрузочном секторе соответствует размеру, описанному в таблице разделов.
Первый сектор MFT рассчитывается по формуле: X*Y+Z, где X номер первого кластера расположения MFT, Y – количество секторов в кластере, Z – смещение до начала раздела.
0x00000000000C0000*0x08+0x3F=0x000000000060003F (6 291 519)
Так как по этому смещению у нас недочитанный фрагмент, то рассчитываем позицию MFT Mirror
0x000000000061A792*0x08+0x3F=0x00000000030D3CCF (51 199 183)
По этому смещению нет непрочитанных фрагментов. Определив позицию MFT и проведя анализ ее расположения, строим карту.

рис. 11
Производим чтение частично непрочитанного первого фрагмента MFT. Операция проходит без затруднений.
Проведем анализ записей MFT и сопоставим с картой прочитанного. В итоге обнаруживаем, что дефекты попадают лишь на два файла.

рис. 12
Первый является служебной структурой NTFS, которая некритична.
Второй является файлом виртуальной памяти в Windows и тоже не представляет ценности для Заказчика.
Для уточнения характера дефекта выполняем чтение непрочитанных фрагментов этих файлов, которое покажет наличие сплошь нечитаемых участков по несколько тысяч секторов, что свидетельствует о некорректной работе накопителя в последние минуты.
В качестве заключения хотелось бы снова напомнить всем о необходимости резервного копирования и о том, что копии желательно хранить не в тех же местах, где находятся накопители с основными рабочими данными, так как в случае подобного достаточно легко предугадываемого форс-мажорного обстоятельства пострадать может вся имеющаяся информация.
Предыдущая публикация: Всегда ли надежно шифрование или восстановление данных с внешнего жесткого диска Prestigio Data Safe II
Следующая публикация: Грех администратора или восстановление данных из стучащего HDD Western Digital WD5000AAKX

