Bad-блоки HDD: причины и виды
В предыдущих статьях мы неоднократно упоминали о таком явлении, как сбойный (плохой или bad) блок, однако до сих пор не дали точного определения, что же это такое, каковы причины их возникновения, как с ними бороться и нужно ли. В этой статье рассмотрим два первых вопроса и предоставим вам немного времени для собственных размышлений и поисков решений. В следующий раз все-таки поговорим о методах борьбы с ними. Итак, под bad-блоком понимается обычно конкретный участок диска, нормальная работа с которым не гарантируется или невозможна вовсе. На таких участках может содержаться различная информация, это могут быть данные пользователя или служебная информация (иначе называемая серво (очевидно от лат. servire или англ. serve - служить), в этом случае это чревато последствиями, тяжесть которых варьируется в очень широких пределах), хотя, конечно же, лучшим вариантом было бы отсутствие в этой области чего-либо (правда, столкнуться с бэдами в таких областях скорее не придется). Появление таких секторов может быть обусловлено разными причинами, в одном случае такие секторы можно восстановить, в другом нельзя, в одном нужно использовать одни методы лечения и переназначения в другом другие. Но сначала развеем несколько довольно распространенных мифов.Миф первый: на современных винчестерах не бывает бэдов. Это неправда, бывают. По большому счету технология та же, что и годы назад, только усовершенствованная и доработанная, но по прежнему не идеальная (впрочем, идеальная вряд ли будет создана на базе технологий магнитной записи). Миф второй: для винчестеров оснащенных SMART это не актуально (читай там не может быть бэдов). Тоже не так: актуальна, ничуть не меньше чем для винчестеров без SMART (если таковые еще остались). Понятие сбойного сектора для нее родное и близкое, это должно было стать понятно из соответствующих публикаций посвященных этой технологии (ссылки в конце). Дело только в том, что большую часть забот о таких секторах ранее возлагавшуюся на пользователя, SMART взяла на себя. И часто может случиться так, что пользователь вообще ничего не знает и не узнает о имеющих место бэдах на его винте, если конечно ситуация не патологическая. Доводилось слышать от пользователей, что так продавцы порой аргументируют свой отказ в гарантийном обмене винчестеров, у котрых бэды "всплыли" наружу. Продавец, конечно же, не прав. SMART не всемогуща, а бэды пока никто не отменял. Для того, что бы разобраться в бэдах и их разновидностях, углубимся в метод хранения информации на винчестере, совсем на чуть-чуть. Выясним два момента. 1. Единицей которой оперирует винчестер на низком уровне является сектор. В физическом пространстве на диске, соответствующем сектору, записываются не только непосредственно данные, но и служебная информация - поля идентификации и контрольная сумма для него, данные и контрольный код для них, код для восстановления ошибок и др. (не стандартизировано и зависит от производителя и модели). По наличию полей идентификации различают два вида записи - с полями идентификаторов и без оных. Первый стар и уступил свои позиции в пользу последнего. Позже станет понятно, почему я это отмечаю. Важно также, что имеются средства контроля ошибок (которые как мы увидим, могут стать их источниками). 2. При работе со старыми винчестерами необходимо было прописать в BIOS их физические параметы, которые указывались на этикете, а для того, чтобы однозначно адресовать блок данных, необходимо было указывать номер цилиндра, номер сектора на дорожке, номер головки. Такая работа с диском была полностью зависимой от его физических параметров. Это не было удобным, и связывало руки разрабочикам во многих вопросах. Требовался выход и он был найден в трансляции адресов. Та, которая нас интересует - данные в накопителе решено было адресовывать одним параметром, а функцию определения действительного физического адреса соответствующего этому параметру возложить на контроллер жесткого диска. Это давало терубемую свободу и совместимость. Реальные физические данные накопителя уже оказывались не важны. Важно только, чтобы число логических блоков указанное BIOS не превышало действительное. Создание такого транслятора имеет огромное значение и для вопросов бэд-секторов тоже. И вот почему. Обработка плохих секторов старых жестких дисках была не совершенна, осуществлялась средствами файловой системы. Диск поставлялся с наклейкой, на которой были указаны адреса дефектных блоков, найденных изготовителем. Пользователь сам в ручную заносил эти данные в FAT, и исключал таким образом исключалось обращение к ним операционной системы. Технология изготовления пластин была несовершенная тогда, и несовершенна сейчас.
Не существует методов создания идеальной поверхности не содержащей ни одного плохого блока, вопреки встречающемуся мнению, что с завода винчестер поставляется без них. С ростом объема дисков росло количество сбойных секторов при выходе с завода, и, понятно, что только до определенного момента процедура их регистрации в FAT могла выполнятся в ручную, нужно было найти способ маркировать бэды, даже не смотря на то, что не известно, какая файловая система будет использоваться. Изобретение транслятора позволило решить эти проблемы. На винчестере выделялась специальная защищенная область, куда записывался транслятор, в котором устанавливалось соответствие каждого логического блока непрерывной цепочки и реального физического адреса. Если вдруг на поверхности обнаруживался сбойный блок, то он просто пропускался, а данному логическому блоку присваивался адрес следующего физического доступного блока. Транслятор считывался с диска при включении. Создание его выполнялось (и выполняется) на заводе, и именно по этому, а не от того, что производителем применяется какая-то супер технология, новые диски как бы не содержат бэд-блоков. Физические параметры оказались скрыты (и они слишком рознились, так как у фирм оказались развязаны руки в производстве своих собственных форматов низкого уровня, и пользователя это не заботило), дефекты помечались на заводе, универсальность увеличилась. Хорошо как в сказке.
Теперь вернемся к бэдам и их разновидностям. В зависимости от природы происхождения всех их можно подразделить на две большие группы: логические и физические. Физические и логические дефекты Дефекты поверхности могут быть связаны с постепенным износом магнитного покрытия дисков, просочившимся через фильтр мельчайшим частицам пыли, кинетическая энергия которых, разогнанных внутри накопителя до колоссальных скоростей, оказывается достаточной для повреждения поверхности дисков (впрочем, скорее всего они скатяться с диска под действием центробежных сил и будут задержаны внутренним фильтром, но напакостить могут успеть), результатом механических повреждений при ударе, при котором могут из поверхности могут выбиться маленькие частицы, которые потом в свою очередь также будут выбивать другие частички, и процесс пойдет лавинообразно (такие частицы тоже будут скатываться с пластин под действием центробежных сил, но значительно дольше и тяжелее, так как будут удерживаемы силами магнитного притяжения. Это еще чревато тем, что с ними будет происходить столкновение головки, парящей на очень малой высоте, что вызовет ее нагрев и ухудшение рабочих характеристик - будут возникать искажения сигнала, результат - ошибки чтения), доводилось слышать (у меня такой статистики нет) что и курение у компьютера способно сделать то же самое, так как табачные смолы способны проникать сквозь воздушный фильтр винчестера (у которых он есть), приводя там к прилипанию головок к пластинам (порче поверхности и головок), просто оседая на поверхности, и меняя тем самым рабочие характеристики и т.д. Такие сектора к обращению оказываются непригодными и должны быть исключены из обращения. Восстановление их не представляется возможным ни в домашних условиях, ни в условиях сервисных центров. Будет хорошо, если из них удасться хотя бы восстановить информацию. Скорость процесса такого вида разрушения поверхности индивидуальная. Если число бэдов не растет или растет крайне незначительно, то можно серьезно не опасаться (хотя делать резервное копирование все же стоит) если же рост быстрый, то диск придется заменить, и, причем, очень поторопиться.
При данном виде бэдов можно произвести переназначение блоков на резервную поверхность: имеет смысл при отсутствии прогрессирования. Но об этом не сейчас. Это если говорить об области данных. Как уж было отмечено, на пластинах храниться еще и служебная информация. В процессе использования она также может оказаться разрушенной. Это может быть гораздо болезненнее, чем обычной пользовательской поверхности. Дело в том, что сервоинформация активно используется в процессе работы: по серво меткам происходит стабилизация скорости вращения дисков, удержание головки над заданным цилиндром независимо от внешних воздействий. Незначительные разрушения сервоинформации могут пройти незамеченными. Серьезные повреждения сервоформата могут сделать недоступной какую-то часть диска или весь диск целиком. Поскольку сервоинформацей пользуется программа накопителя и она критически важна для обеспечения нормального функционирования и вообще в силу ее специфики, дела обстоят с ней намного сложнее. Некоторые винчестеры позволяют отключить сбоящие серводорожки. Восстановление же их возможно только на заводе на специальном дорогом и сложном оборудовании (оценим приблизительно расходы на такой ремонт негарантийного винчестера и поймем, что правильно будет назвать этот вид бэдов неисправимым). К физическим бэдам можно также отнести сбойные сектора, появление которых обусловлено неисправностями электронной или механической части накопителя, например обрыв головок, серьезные механические повреждения в результате удара - заклинивание катушки позиционера или дисков, смещение дисков. Действия здесь могут быть различными и зависеть от конкретной ситуации, если, например, обрыв головки (такие бэды появляются потому, что делается попытка обращения к поверхности, доступ к которой не может быть осуществлен (что вовсе не означает, что что-то не так с поверхностью)), то, например, часто ее можно отключить (а можно и поменять в условиях специализированных сервисных центров, вот только стоиомость операции заставляет серьезно задуматся о ее целесообразности (в большинсте случаев ответ отрицательный), если конечно, речь не идет о необходимости восстановить крайне ценную информацию (но это уже другой разговор)). В целом же для этого вида повреждений характерен катастрофический характер. Т.е. как видим физические бэды не лечатся, возможно лишь какое-то "смягчение" их присутствия. С логическими плохими секторами ситуация проще. Некоторые из них излечимы. В большинстве случаев обусловлены ошибками записи.
Можно выделить следующие категории:
1. Самый простой случай: ошибки файловой системы. Сектор помечен в FAT как сбойный, но на самом деле таковым не является. Раньше таким приемом пользовались некторые вирусы, когда на небольшом обьеме винчестера требовалось найти себе укромное местечко, не доступное простыми средствами. Сейчас этот прием не актуален, так как скрыть в недрах Windows пару мегабайт (а то и пару десятков мегабайт) не представляет никакой сложности. Кроме того так кто-то мог просто пошутить над незадачливым пользователем (программы попадались такие). Да и вообще файловая система вещь хрупкая, лечится очень легко и абсолютно без последствий.
2. Неисправимые логические бэды - характерны для старых винчестеров использующих запись с полями идентификаторов. Если у вас такой диск, то вполне можете с ними столкнуться. Обусловлено неверным форматом физического адреса, записанного для данного сектора, ошибка контрольной суммы для него и т.д. Соответственно, невозможно обращением к нему. На самом деле они восстановимы, но на заводе. Поскольку я уже сказал, что сейчас используется технология записи без полей идентификаторов, то эту разновидность можно считать неактуальной.
3. Исправимые логические бэды. Не так уж редко встречаемый, особенно на некоторых типах накопителей тип сбойных блоков. Происхождением в основном обязаны ошибкам записи на диск. Чтение произвести с такого сектора не удается, так как обычно в нем ЕСС код не соответствует данным, а запись обычно невозможна, так как перед записью осуществляется предварительная проверка подлежащего записи пространства, и поскольку с ней уже обнаружены проблемы, запись в данную область отклоняется. Т.е. получается блок невозможно использовать, хотя физически поверхность, им занимаемая в полном порядке. Дефекты подобного рода могут быть иногда вызваны ошибками в микропрограмме винчестера, могут быть спровоцированы программным обеспечением или техническими причинами (напримем перебоем питания и его колебанием, уходом во время записи головки на недопустимую высоту и др.). Но если удается привести в соответствие содержимое сектора и его ECC-код, то такие блоки бесследно проходят. Причем процедура эта не сложна, а средства для ее осуществления широко доступны, и, в общем-то, безобидны.
4. Появления на винчестерах бэд-блоков этого вида обязано особенностям технологии производства: никогда не существует двух абсолютно одинаковых устройств, какие-то их параметры непременно отличатся. При подготовке винчестеров на заводе, для каждого определяется набор параметров, обеспечивающих наилучшее функционирование данного конкретного экземпляра, так называемые адаптивы. Эти параметры сохраняются, и в случае если они каким то загадочным образом оказываются повреждены, то результатом может быть полная неработоспособность диска, нестабильная его работа или большое количество сбойных секторов появляющихся и исчезающих то в одном, то в другом месте. В домашних условиях с этим сделать ничего нельзя, но все можно настроить на заводе или в сервисном центре. Как видим, реально лечатся в домашних условиях только два вида логических бэдблоков. Другие в случае необходимости можно попробовать подменить на резервные, но не вылечить. С третьими дома сделать ничего нельзя. О том, как и что нужно делать в первых двух случаях будем говорить в следующий раз.