>>> Врезка прошивка, индивидуальные настройки и адаптивы
Электроника диска — это только скелет. Без управляющих микропрограмм она работать не будет! Первые модели винчестеров хранили микропрограммы в ПЗУ, что вызывало естественные неудобства и накладывало определенные ограничения. Теперь же для этой цели используется сам жесткий диск! Разработчик резервирует некоторый объем и размещает в нем весь необходимый код и данные. Информация организована в виде модулей (слабое подобие файловой системы) и управляется специализированной операционной системой. В ПЗУ остается лишь базовый код, своеобразный "фундамент" винчестера. Некоторые производители пошли еще дальше, убрав из ПЗУ все, кроме первичного загрузчика.
Само ПЗУ может быть расположено как внутри микроконтроллера, так и на отдельной микросхеме. Практически все винчестеры имеют FLASH-ROM, но не на всех моделях она распаяна. Если FLASH-ROM установлена, то микроконтроллер считывает прошивку из нее, если нет — обращается к своему внутреннему ПЗУ.
Часть модулей (и информации, находящейся в ПЗУ) одинакова для всей серии винчестеров. К ней в первую очередь относится совокупность управляющих микропрограмм. Эти модули полностью взаимозаменяемы и один диск свободно может работать с модулем другого без каких либо последствий.
Часть модулей (реже — информации из ПЗУ) готовится отдельно для каждой партии. Так, например, паспорт диска, описывающий его конфигурацию, указывает количество головок, физических секторов и цилиндров. В процессе инициализации микропроцессор опрашивает коммутатор и перечисляет головки. Если их количество не совпадает с указанным в паспорте, винчестер может "забастовать" и не войти в готовность. Зачастую производители отключают некоторые головки из-за дефектов поверхности, неисправностей самых головок или по маркетинговым соображениям. Как следствие — образуются внешне очень похожие модели "близнецы", но непосредственная перестановка плат невозможна и паспорт приходится корректировать, для чего опять-таки понадобится PC-3000.
Но, в принципе, подобрать донора с идентичным паспортом вполне возможно и без коррекции.
Все зло и коварство происходит от модулей (и часто информации, защитой в ПЗУ), уникальных для каждого экземпляра винчестера и настраиваемых строго индивидуально. В частности, каждый жесткий диск имеет как минимум два списка дефектов — P-list (от Primary – первичный) и G-list (от Grow – растущий). В P-list заносятся номера дефективных секторов, обнаруженные еще на стадии заводского тестирования, а G-list формируется самим жестким диском в процессе его эксплуатации. Если запись в сектор происходит с ошибкой, сбойный сектор переназначается другим сектором, взятым из резервной области. Некоторые жесткие диски поддерживают список "подозрительных секторов": если сектор начинает читаться не с первого раза, он замещается, а информация о замещении сохраняется либо в отдельном списке, либо в G-list'е.
Все эти процессы протекают скрыто от пользователя. Специальный модуль, называемый транслятором, переводит физические адреса в номера логических блоков или виртуальные цилиндры-головки-сектора и внешне нумерация секторов не нарушается. Все работает нормально до тех пор, пока P/G-list'ы не оказываются разрушенными или на гермоблок устанавливается плата с чужими настройками. Если P/G-list'ы хранятся во FLASH-ROM (а часто так и бывает), файловая система оказывается полностью неработоспособной, ведь трансляция адресов нарушена! И хотя на сектором уровне все читается нормально, совершенно непонятно какой сектор какому файлу принадлежит.
К счастью восстановить транслятор довольно просто, поскольку практически все файловые структуры (да и сами файлы) имеют характерные последовательности байт (сигнатуры). Для начала нужно очистить таблицы транслятора (сгенерировать пустые P/G-list'ы), в противном случае сектора, помеченные у донора как замещенные, не смогут почитаться на акцепторе. Различные винчестеры имеют различное число замещенных секторов. В некоторых замещенных секторов может не быть вообще, на некоторых их количество может доходить до нескольких тысяч.
Формат P/G-list' ов варьируется от одной модели к другой и для работы с ним лучше всего применять PC-3000. В крайнем случае — утилиты от производителей винчестера и ATA-команду unassign.
Затем необходимо просканировать весь диск на предмет поиска характерных сигнатур и загнать их "физические" адреса в список. Разумеется, никакой физикой в подлинном смысле этого слова здесь и не пахнет! Скажем так: логические адреса без переназначенных секторов, но это слишком долго писать.
Теперь, исследуя служебные структуры файловой системы (каталоги, MFT), мы определяем номера кластеров подчиненных структур. Переводим кластеры в сектора и создает еще один список. В результате у нас получается два списка, между которыми прослеживается четкая корреляция. Первый список как бы "растягивается" вдоль второго. Другими словами, каждый переназначенный сектор увеличивает расхождение между последующими "физическими" и логическими адресами на единицу. Проделав необходимые математические вычисления, мы сможем рассчитать необходимую поправку и как бы восстановить транслятор. "Как бы" потому что целевые адреса замещенных секторов остаются неизвестными, а, значит, в восстанавливаемых данных образуются "дыры", однако, большая часть информации все же возвращается из небытия. PC-3000 автоматически восстанавливает транслятор, используя довольно продвинутые алгоритмы, которые постоянно совершенствуются. Тем не менее, при желании утилиту для восстановления транслятора можно написать и самостоятельно.
А вот чего ни PC-3000, ни другие комплексы не умеют так это восстанавливать адаптивы. Нашествие адаптипов началось сравнительно недавно. До этого индивидуальные настройки диска сводились к высокоуровневым наслоениям, никак не препятствующим чтению информации на физическом уровне. Перестановка плат могла привести к невозможности работы с диском средством операционной системы, но данные всегда было можно прочитать посекторно стандартными ATA-командами или на худой конец на уровне физических адресов в технологическом режиме.
Но плотность информации неуклонно росла и нормативы допусков ужесточались, а, значит, усложнялся и удорожался производственный цикл. В промышленных условиях невозможно изготовить два абсолютно одинаковых жестких диска. В характеристиках аналоговых элементов (катушек, резисторов, конденсаторов) неизбежно возникает разброс, следствием которого становится рассогласование коммутатора-предусилителя. Но с этим еще как-то можно бороться. Сложнее справится с неоднородностью магнитного покрытия, влекущего непостоянность параметров сигнала головки, в зависимости от угла поворота позиционера. Таким образом, производитель должен либо уменьшить плотность информации до той степени, при которой рассогласованиями можно пренебречь (но в этом случае для достижения той же емкости придется устанавливать в диск больше пластин, что удорожает конструкцию и вызывает свои проблемы), либо улучишь качество производства (но это настолько нереально, что при современном уровне развития науки, экономики и техники даже не обсуждается), либо калибровать каждый жесткий диск индивидуально, записывая на него так называемые адаптивные настройки. Вот по этому пути производители и пошли.
Состав и формат адаптивом меняется от модели к модели. В грубом приближении сюда входят: ток записи, усиление канала, профиль эквалайзера, напряжение смещения для каждой головки, таблица коррекции параметров каждой головки для каждой зоны и т. д. и т. п. Без своих родных адаптивов жесткий диск просто не будет работать! Даже если случится чудо и чужие адаптивы все-таки подойдут (а чудес, как известно, не бывает) информация будет считываться очень медленно и с большим количеством ошибок. Подобрать адаптивы нереально, рассчитать их в "домашних" условиях тоже. Но ведь как-то же эти адаптивы возникают? Чисто теоретически, для заполнения таблицы адаптивов не нужно ничего, кроме самого винчестера и некоторые модели жестких дисков даже содержат в прошивке специальную программу Self Scan, как раз и предназначенную для этих целей.Да, она действительно рассчитывает адаптивы, но… при этом уничтожает всю содержащуюся на жестком диске информацию, что делает ее непригодной для наших целей.
Адаптивы могут хранится как на самом диске в служебной зоны (и тогда смена плат проходит на ура, но не работает Hot Swap), либо в микросхеме FLASH-ROM, которую перед заменой плат следует перепаять. Диски без адаптивов встречаются все реже и реже, можно сказать, что практически вообще не встречаются.
__служебная информация как правило дублируется на каждой поверхности