Некоторые аспекты ценовой политики в области услуг восстановления информации
Привет Хабравчанам! С вами снова Артем Макаров, ведущий инженер компании «Хардмастер», специализирующейся на различных вуду-шаманствах с жесткими дисками и флешками.Сегодня я хотел бы рассказать о любопытных, для человека несведущего, областях в отрасли «Data Recovery» на живом, так сказать материале. Знаю на опыте, что для ряда заказчиков это бывает настоящим откровением.
С непродолжительным перерывом к нам поступили два диска, которые побывали до нас в парочке весьма известных контор, занимающих ТОП-ы профильной выдачи в поисковиках и позиционирующих себя как «Номер 1». История, для конкурентной среды обычная, обратились к ним, цена не устроила, начали искать дешевле.
Сразу хочу оговориться, что никакой конкретики в названиях организаций давать не буду, по двум причинам. Во-первых, это не поощряется администрацией самого Хабра, а во-вторых, поскольку я давно «в теме» и всех ведущих представителей отрасли знаю лично, то появление любого «разоблачения» ранее, на страницах моего блога или в статьях на сайте, приводило ровно к одному — в течении нескольких часов раздавался звонок на мобилу и руководитель той или иной компании, условный Вася или Коля, обменявшись дежурными приветствиями начинал меня корить и настаивать на правках текста с настоятельными просьбами «убрать, а то зарэжу!».
Первый диск Seagate ST9500325AS семейства Wyatt, изначальная проблема — «уставшие» головы. Выходит в готовность с трудом, сыпет в диагностический терминал ошибками. Гермоблок вскрывался до того, как диск попал к нам.
Второй накопитель — Western Digital WD3200AAKS-75VYA0 семейства Tornado 2D, изначальная проблема — выход из строя одной из четырех, головки в пакете. Гермозона так же вскрывалась.
Не всем понятно, почему если приходится работать с дисками, в которые было постороннее вмешательство, то и анализ как правило платный, и стоимость работ выше (иногда — существенно). Дальше я расскажу — почему.
Первый диск, Seagate, после подбора совместимого блока магнитных голов вышел в готовность по регистрам состояния (биты DRD и DSC), при запросе отдал паспорт, но на любую попытку технологической работы с накопителем микрокод выдавал ошибку в диагностический порт, с последующим «зависанием».
Rst 0×08M (P) SATA Reset
F3 T> V4 (к примеру)LED:000000CC FAddr:0027245BLED:000000CC FAddr:0027245B
Бывают такие пассажиры, которые просят «вы мне головки поменяйте, а информацию я и сам считаю», что вызывает неизменное умиление. Дело в том, что после замены блока голов, на подавляющем большинстве дисков требуются дополнительные мероприятия. По причине того, что блок голов для конкретной «банки» в достаточной степени уникальный и их «притирка» друг к другу идёт на завершающих стадиях конвейерной сборки на этапе заводского самотестирования, донорский блок голов, даже взятый от диска «на один символ в серийнике отличаются, в один день выпущены» идеально работать не будет. Более того, чтоб хоть что-то прочитать на упомянутом в примере данном конкретном накопителе, требуется внести правки в загруженный в ОЗУ, при старте, микрокод.
Диск с «неродными» головами при старте тут же обнаруживает завышенные тайминги доступа, маркирует их как нестабильные, заносит в соответствующий candidate-defect list и по причине того, что этих секторов — вся поверхность, процесс маркировки «плохих» так увлекателен, что диск перестаёт отвечать на внешние раздражители.
Менее опытный инженер с такой ситуацией бы не справился. Мне же сразу стало ясно, что у диска либо не читаются т.н. «оверлеи», т.е. технологический микрокод, либо читаются, но их версия отлична от версии базового микрокода в ПЗУ.
У Seagate есть штатная опция загрузки микрокода в память через АТА команду 92h, что применяется при изготовлении диска, для записи сканового комплекта микропрограммы. Используя эту фичу можно прогрузить «самодельный» загрузчик, созданный из модулей совместимого по версии FirmWare жесткого диска.
Сделав это, я открыл полный технологический функционал, проанализировал модули служебной информации и обнаружил, как и предполагал, что всё читается, но версия оверлеев не совместима с остальным микрокодом. «Само по себе» такое случиться не могло, результатом неудачного обновления «прошивки» пользователем то же (в этом случае оверлеи в ПЗУ прописываются раньше т.н. «блинвари», т.е. того, что на пластинах). Более того, подобная операция была бы бессмысленна и с точки зрения получения доступа к пользовательской области. Очевидно что подобного рода проявление — суть рукотворное изменение микрокода с целью сделать невозможным восстановление информации в гипотетическом «другом месте».
С диском WD ситуация повеселее. После замены блока голов диск рекалибруется, отдает паспорт, но при попытке чтения пользовательской области выдает код ошибки ABRT. Код этот, в отличии от типичного для бэд-блоков кода UNC (некорректируемая ошибка данных) свидетельствует о несоответствии таблиц трансляции реальной физической геометрии диска. Начал анализировать служебную информацию.
Шаг первый — читаем модули по идентификатору. В этом случае накопитель сам проверят целостность модуля на основании проверки контрольной суммы. И сразу баг — модуль id31, в котором таблицы трансляции имеет нарушенную контрольную сумму.
Модуль транслятора, с которым диск поступил в работу
На всякий случай перечитываю его по ABA (область секторов, занимаемых модулем, без проверки «валидности»). Убеждаюсь что диск с донорскими головами действительно пишет (из-за разницы в геометрических параметрах между донорским и оригинальным комплектами голов запись может идти по другому смещению и записанное не прочитается в ожидаемом месте). Пересчитываю контрольную сумму в модуле трансляции, рестарт по питанию, попытка чтения — ABRT.
Идём дальше. У дисков WD есть возможность, при серьезном разрушении таблиц транслятора, пересчитать их на основании заводского дефект-листа (P-List). Сам по себе p-list при чтении данных не важен (не на всех дисках, а именно у данного семейства). Произвожу пересчёт, убеждаюсь в том, что содержимое модуля транслятора id31 изменилось, пробую читать — опять ABRT.
Ок, лезем дальше. Анализирую содержимое заводского дефект-листа, — 0 дефектов описано. С завода диски такими не выходят :) Очевидно что не только транслятор не родной, но и заводской дефект-лист «обнулён».
Модуль заводского дефект-листа пуст, прописан только заголовок
Смотрю дальше, с трековым дефект-листом тоже есть подозрения на «членовредительство».
Для решения проблемы пришлось проконсультироваться с коллегой по цеху, проживающим в далёком Симферополе. В итоге было найдено и испробовано изящное решение, — взять заводской скрипт селф-теста, вручную отредактировать его, отрезав все шаги, кроме формирования из логов скана дефект-менеджмента (P-list, T-list), записать всю служебку на заведомо исправный диск-донор, получив таким образом своеобразный аппаратный клон, и запустить урезанный скрипт заводского самотестирования на этом клоне. В результате на диске-доноре сформировались оригинальные дефект-листы, и после пересчета транслятора был получен комплект служебного микрокода (модулей), соответствующий оригинальному.
Модуль P-List после восстановления
Модуль транслятора после восстановления
Разумеется и в данном случае исключены возможности «диск сам себе всё попортил». Очевидно, модули были испорчены «из вредности»
Таким образом, думаю, понятно, что вместо изначального «типового» набора мероприятий по восстановлению информации, пришлось потратить немало дополнительного времени на нетривиальные и незапланированные исследования. Отсюда и повышение стоимости работ, и платный анализ дисков в которых «копались до нас».
И это еще повезло что в предыдущем месте работают не шибко умные мастера. Умный бы так упорол диск, при желании, чисто программно, что вообще никаких вариантов для восстановления кроме как получить оригинальный микрокод (который, ясное дело, остался только у «умника» в единственном экземпляре) — не осталось бы.
Вывод один — перед тем, как выбрать исполнителя и обратиться за услугой (не только в области DR — во всех областях абсолютно), надо трижды подумать и хорошо взвесить. С особой осторожностью обращать внимание на тех кто в ТОП-10 выдачи ПС и ТОП контекстной рекламы (часто это означает высокие бюджеты на SEO, и ломовой прайс, а не высокий уровень услуг), критически относится ко всем этим «мы лучшие», «самые крупные» и «самые честные».
Как говаривал старина Мюллер старине Штирлицу — «Верить нельзя никому. Мне — можно».