Дефекты винчестера и методы их скрытия

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    2,66 Мб
  • Опубликовано:
    2012-05-05
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Дефекты винчестера и методы их скрытия

Содержание

 

Введение

1. Основные теоретические положения

1.1 Винчестер и BAD-секторы

1.2 Что такое S. M. A. R. T

1.3 История возникновения S. M. A. R. T. технологий

1.4 Спецификации S. M. A. R. T.

1.5 Атрибуты S. M. A. R. T.

1.6 Типы атрибутов

1.7 Виды дефектов и причины их появления

1.8 Метод тестирования

1.9 Журналы ошибок (SMART error log)

1.9.1 Log Directory

1.9.2 Summary Error Log

1.9.3 Comprehensive Error Log

1.9.4 Extended Comprehensive Error Log

1.9.5 Self-test Log

1.9.6 Extended Self-test Log

1.9.7 Streaming Performance Log

1.9.8 Write Stream Error Log

1.9.9 Read Stream Error Log

1.9.10 Delayed LBA Sector Log

1.9.11 ECC Uncorrectable Sector Log

1.9.12 Host Vendor Specific Log

1.9.13 Device Vendor Specific Log

2. Реализация функций S. M. A. R. T.

3. Диагностические программы

3.1 MHDD и SMARTUDM

4. Альтернативные методы скрытия дефектов

Введение

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

Выпускаемые накопители информации представляют собой разнообразные запоминающие устройства с различным принципом действия физическими и технически эксплуатационными характеристиками. Основным свойством и назначением накопителей информации является ее хранение и воспроизведение.

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

винчестер дефект сектор адрес

1. Основные теоретические положения


1.1 Винчестер и BAD-секторы


Винчестер - одно из самых ненадежных устройств в компьютере. Ведь кроме сложной электроники он содержит непрерывно работающие механические части. Со временем они изнашиваются, и начинаются различные проблемы, самая распространенная из которых - появление BAD-блоков. Особенно это относится к старым моделям жестких дисков, которые все еще могут использоваться (в частности на предприятиях, где на компьютерах фильмы, игры и другой "тяжелый" контент не держат) и которые уже изрядно поизносились.секторы (от англ. - плохой, негодный) есть на любых винчестерах. Как бы тщательно не были изготовлены их диски, на каждом из них найдется несколько мест, запись или чтение которых сопровождается ошибками. Кроме того, встречаются и просто нестабильные участки поверхности, которые могут со временем перерасти в дефекты, что для пользователя недопустимо. Поэтому каждый накопитель после изготовления на заводе, проходит тщательное тестирование, в процессе которого выявляются испорченные секторы. Они помечаются как негодные и заносятся в специальную таблицу - дефект-лист.

Самые первые жесткие диски имели дефект-лист в виде бумажной наклейки, в которую на заводе вписывали адреса нестабильных участков. Эти устройства, представляющие собой слегка измененную копию обычного флоппи-дисковода, могли работать только под своими физическими параметрами: число дорожек, секторов и головок, указанное в их паспорте, точно совпадало с их реальным количеством. Приобретая такое устройство, пользователь читал наклейку и сам заносил адреса нерабочих участков в FAT. После этого операционная система переставала замечать эти дефекты, точно так же, как она не замечает бэд-блоки на дискетах, если они были убраны утилитой Scandisk. Вероятно, в те далекие времена и появился термин "бэд-блок": блоком называли кластер - минимальную единицу логического дискового пространства. На физическом уровне кластер состоит из нескольких секторов, и при повреждении одного сектора ОС объявляет негодным весь кластер. Никаких других методов скрытия дефектов в то время не существовало. А когда появились способы скрывать отдельные секторы, люди не стали выдумывать новые понятия, и до сих пор успешно продолжают пользоваться словом "блок".

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

Предполагалось, что при включении жесткий диск сначала прочитает свои внутренние таблицы, скрывая отмеченные в них адреса дефектов, а уже затем допустит к себе BIOS, ОС и прикладные программы. А чтобы пользователь случайно не затер транслятор во время работы, он был помещен в специальную область диска, недоступную обычным программам. Только контроллер мог получить доступ к ней. Это событие произвело настоящий переворот в винчестеростроении, и ознаменовало появление нового поколения накопителей - со служебной зоной.

Для того, чтобы все диски одной модели, но с разным количеством дефектов, имели одинаковую емкость, на каждом из них стали оставлять запасные дорожки - резерв, специально предусмотренный для выравнивания емкости однотипных накопителей до стандартной заявленной величины. Его стали располагать в конце диска, возле его центра, и он тоже был недоступен пользователю. Такие винчестеры при выходе с завода не имели не одного видимого bad-сектора. Если в процессе эксплуатации появлялись новые дефекты, пользователь мог сделать низкоуровневое форматирование универсальной утилитой из BIOS материнской платы, и попытаться их скрыть. Иногда, как и на дискетах, это удавалось. Но если повреждения были физическими, то это не помогало: добавить новые дефекты в таблицу и переписать транслятор без специальных программ было невозможно. Поэтому bad-блоки на многих старых дисках (до 1995 года), приходилось скрывать все тем же, устаревшим способом - через FAT. И лишь фирмы Seagate, Maxtor и Western Digital выпустили утилиты для скрытия дефектов с замещением их из резерва.

Прошло время, и винчестеры еще больше изменились. Стремясь увеличить плотность записи, разработчики стали применять различные нестандартные ухищрения: на пластины стали наносить сервометки, предназначенные для более точного попадания головок на дорожки. Появилась технология зонно-секционной записи (ZBR), смысл которой заключался в разном количестве секторов на внешних и внутренних дорожках. Изменился привод головок - вместо шагового двигателя стали применять позиционер в виде подвижной катушки. Да и сами головки и диски изменились настолько, что каждая фирма разработала свою структуру формата нижнего уровня, пригодную только под их технологии. Это сделало невозможным применение универсальных утилит низкоуровневого форматирования из-за того, что транслятор таких винчестеров научился скрывать физический формат накопителей, переводя его в виртуальный.

Написанное на корпусе винчестера число цилиндров, секторов и головок, перестало соответствовать своим истинным значениям, и попытки отформатировать такой винт старыми утилитами, как правило, заканчивались неудачно: его контроллер отвергал стандартную ATA-команду 50h, или просто имитировал форматирование, заполняя винт нулями. Это было специально оставлено для совместимости со старыми программами. По этой же причине процедура Low-Level Format была исключена из BIOS современных материнских плат. А чтобы сделать таким жестким дискам настоящее низкоуровневое форматирование, нужно было обойти транслятор, получив прямой доступ к физическим дорожкам и головкам. Для этого стали использовать технологическую утилиту, запускающую специальный микрокод, записанный в ПЗУ накопителя. Команда вызова этого микрокода - уникальна для каждой модели, и относится к технологическим командам, которые фирмой не разглашаются. Часто такое форматирование нельзя было сделать через стандартный IDE-интерфейс: многие модели HDD выпуска 90-х годов - Conner, Teac и др., а также все современные Seagate, требуют подключения отдельного разъема к терминалу через COM-порт.

Что касается технологических утилит, то они никогда широко не распространялись и обычному пользователю были недоступны. Для широкого применения были написаны "программы-дурилки", осуществляющие псевдо-форматирование через интерфейс: заполнение диска нулями для очистки его от информации. Это видно даже из названий этих утилит, которые можно найти на сайтах производителей жестких дисков: wdclear, fjerase, zerofill и т.д. Естественно, никаких технологических команд в этих программах нет, и поэтому их можно применять к любым винчестерам. Такие утилиты часто оказываются полезны, помогая избавиться от некоторых видов BAD'ов.

Подготовка винчестера на заводе.

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

Современные винчестеры имеют два основных дефект-листа: один заполняется на заводе при изготовлении накопителя и называется P-list (-первичный), а второй называется G-list (от слова - растущий), и пополняется в процессе эксплуатации диска, при появлении новых дефектов. Кроме того, некоторые диски, имеют еще и лист серво-дефектов (сервометки, наносимые на пластины винчестеров, тоже иногда имеют ошибки), а многие современные модели содержат еще и список временных (pending) дефектов. В него контроллер заносит "подозрительные" с его точки зрения секторы, например те, что прочитались не с первого раза, или с ошибками.

Получив дефект-лист, приступают к скрытию дефектов. Существует несколько способов их скрытия, каждый из которых имеет свои особенности. Теоретически можно просто переназначить адреса испорченных секторов в резерв и брать их оттуда, но это вызовет потерю производительности диска, так как он, каждый раз обнаруживая сектор, помеченный как негодный, будет вынужден перемещать головки в резервную область, которая может находиться далеко от места дефекта. Если переназначенных секторов будет много - производительность накопителя очень сильно упадет, так как большую часть времени он будет затрачивать на бесполезное дёрганье головками. Более того, быстродействие дисков с разным количеством дефектов будет сильно различаться, что конечно же, при массовом производстве недопустимо. Такой метод скрытия дефектов получил название "метод замещения" или ремап (от англ. перестройка карты секторов).

Из-за многочисленных недостатков, присущих ремапу, при промышленном изготовлении дисков такой метод никогда не применяют, а используют другой алгоритм: после выявления всех дефектов, адреса всех исправных секторов переписываются заново, так, чтобы их номера шли по порядку. Плохие сектора просто игнорируются и в дальнейшей работе не участвуют. Резервная область также остается непрерывной и ее часть присоединяется к концу рабочей области - для выравнивания объема. Такой способ скрытия бэдов сложнее в реализации, чем ремап, но результат стоит затраченных на него усилий - при любом количестве неисправных секторов, замедления работы накопителя не происходит. Этот, второй основной тип скрытия дефектов получил название "метод пропуска сектора". (Существуют и другие алгоритмы заводского скрытия дефектов, например, путем исключения целой дорожки, или при помощи запасного сектора на каждой дорожке, но они имеют недостатки и поэтому в современных накопителях практически не используются).

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

Новые технологии.

Теперь понятно, почему фирменные утилиты не делают никаких операций, связанных с прямым доступом к служебной области. Ведь скрытие дефектов форматированием - это практически полный ремонтный цикл, основанный на внешних параметрах и связанный с четким пониманием каждого шага. И достаточно сделать что-то неправильно, чтобы испортить накопитель. Приведем простой пример: пользователь решил сделать "настоящее" низкоуровневое форматирование путем запуска подпрограммы ПЗУ в технологическом режиме. Процесс обычно длится 10-60 минут, но тут случается перебой с питанием или банальное зависание - и диск остается без транслятора, так как. просто не успевает его заново создать. Это означает, что к дальнейшей работе такое устройство будет непригодно - его просто не увидит ни ОС, ни BIOS.

Страшно даже представить, сколько накопителей может быть "убито" таким образом, из простого любопытства или по ошибке. Особенно, если эти утилиты попадут в руки неопытных пользователей, запускающих на своих компьютерах все подряд. Конечно, диск портится не безвозвратно, и повторным запуском форматирования можно вернуть его к жизни. Но мышление у большинства пользователей устроено так, что столкнувшись с проблемами (не определяющийся в BIOS "труп" вместо винчестера), многие впадают в панику, обвиняя во всем производителей. А им лишние проблемы, естественно не нужны - гораздо важнее заставить винчестер отработать гарантийный срок. Поэтому несколько лет назад в накопители стали закладывать возможность самостоятельно "ремонтировать" сбойные участки - делать ремап. Как было сказано раньше, ремап не нашел применения при заводской подготовке накопителей, но оказался очень удачным решением для скрытия дефектов в бытовых условиях.

Преимущества ремапа перед внутренним форматированием - отсутствие перевода диска в технологический режим, быстрота проведения и безопасность для накопителя. Кроме того, во многих случаях ремап можно делать без удаления файловой системы, и без связанного с этим уничтожения данных. Эта технология получила название automatic defect reassignment (автоматическое переназначение дефектов), а сам процесс - reassign. Таким образом remap и reassign - это по большому счету одно и тоже, хотя термин reassign обычно применяют к отдельному сектору, а remap - ко всему диску.

Работает ремап следующим образом: если при попытке обращения к сектору происходит ошибка, "умный" контроллер понимает, что данный сектор неисправен, и "на лету" помечает его как BAD. Его адрес тут же заносится в таблицу дефектов (G-list). У многих винтов это происходит настолько быстро, что пользователь даже не замечает обнаружение дефекта и его скрытие. Во время работы накопитель постоянно сравнивает текущие адреса секторов с адресами из таблицы и не обращается к дефектным секторам. Вместо этого он переводит головки в резервную область и читает сектор оттуда. К сожалению, из-за времени, затрачиваемого на дальнее позиционирование, такие секторы будут выглядеть, как небольшие провалы на графике чтения. То же самое будет и при записи.

Если ошибка возникает во время обычной работы ОС, автоматический ремап происходит крайне редко. Это связано с тем, что, на большинстве HDD, reassign срабатывает только при записи. А многие ОС перед записью проверяет сектор на целостность, и обнаруживая ошибку, отказывается в него писать. Поэтому, в большинстве случаев для производства ремапа диск надо об этом "попросить" - произвести принудительную низкоуровневую перезапись сектора в обход стандартных функций ОС и BIOS. Это делается программой, способной обращаться к винчестеру напрямую через порты IDE-контроллера. Если во время такой записи возникнет ошибка, контроллер автоматически заменит этот сектор из резерва, и BAD исчезнет.

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

Наиболее распространенным мифом среди пользователей является утверждение, что для каждого диска нужна своя, "особая" программа скрытия дефектов, а также то, что ремап - это низкоуровневое форматирование. На самом деле это не так. Ремап - это всего лишь разновидность записи информации стандартными средствами, и в большинстве случаев любые утилиты для ремапа могут применяться к любым дискам. Ремап делают не внешние программы, а контроллер жесткого диска. Только он принимает решение о переназначении дефектных секторов. Испортить накопитель "чужие" программы тоже не могут, так как технологические команды в них не используются, а в обычном режиме винчестер никогда не позволит сделать с собой ничего, кроме стандартных операций чтения-записи. Единственное различие между фирменными утилитами заключается в количестве попыток записи/чтения/верификации для разных дисков. Для того, чтобы контроллер "поверил", что в секторе имеется подлежащий скрытию BAD, некоторым винчестерам достаточно одного цикла, а другим - нескольких.

1.2 Что такое S. M. A. R. T


S. M. A. R. T. (Self-Monitoring Analysis and Reporting Technology) - технология самослежения и предупреждения (Технология Самодиагностики, Анализа и Отчета) позволяет отслеживать и предсказывать возникновение ошибок, связанных с функционированием HDD, следовательно появляется возможность вовремя сделать резервную копию данных, тем самым избежать морального и материального ущерба от потери информации.. M. A. R. T. - это набор программ, записанных в микрокод винчестера.

Каждая фирма-производитель дисков ведет свои разработки, отсюда и разнообразие параметров для разных дисков. Однако существуют общие параметры.

Использование технологии S. M. A. R. T. невозможно без наличия следующих двух составляющих: ПО, встроенного в контроллер накопителя и внешнего ПО, встроенного в хост.

1.3 История возникновения S. M. A. R. T. технологий


На заре развития ПК жесткие диски подключались к достаточно сложным и дорогим контроллерам (данные от диска поступали в аналоговом виде), часто диск и контроллер "понимали" только друг друга. Покупка жесткого диска требовала покупки, установки и настройки контроллера (у которого даже был свой BIOS). В целях исправления такой ситуации было решено (в 1986 году) перенести управляющую логику на плату, непосредственно прикрепляемую к жесткому диску (т.е. "встроить электронику"), а со стороны компьютера оставить достаточно простой хост-контроллер. Благодаря этому система не должна знать ничего о реальных физических параметрах (геометрии, кодировании информации и пр.) диска, подключенного к ней, чтобы успешно с ним работать. Кроме того, производитель диска может спокойно расширять существующие и встраивать новые технологии, не опасаясь потерять совместимость с немного устаревшими системами (в случае с UltraDMA дело в изменении протокола обмена с хост-контроллером, так что это - исключение). К последним относится технология S. M. A. R. T.. M. A. R. T. - открытая технология, разработанная фирмой Compaq не для жестких дисков, а для "интеллектуальных" компьютерных устройств. В применении к жестким дискам S. M. A. R. T. была реализована фирмой Quantum в 1995 году, в дальнейшем была поддержана в разработках крупнейшими мировыми производителями жестких дисков - Seagate Technology, IBM, Conner Peripherials, Western Digital и Quantum. Суть S. M. A. R. T. технологии заключается в том, что винчестер сам аппаратно отслеживает состояние своей работоспособности и способен заранее предупредить пользователя о своем предаварийном состоянии.

Предложенная IBM технология предсказания надежности называется PFA (Predictive Failure Analysis). Она заключается в измерении нескольких параметров, включая высоту полета головок над поверхностью дисковых пластин, чтобы предсказать приближающийся сбой. Дисковые накопители, почувствовав ухудшение (деградацию) параметров своей работы, таких как упомянутая высота полета головок, изменяют технологические параметры доступные для считывания и анализа программой SMART HDD, которая в свою очередь уведомляет пользователя о надвигающемся сбое. Измерялось несколько ключевых параметров, и их оценка велась непосредственно в firmware <#"564551.files/image001.gif">

Рис.1. Упрощенная структура сектора жесткого диска

Как видно из рисунка 1, все намного сложнее, чем могло показаться на первый взгляд, даже с помощью дискового редактора. Сектор состоит из заголовка-идентификатора и области данных. Начало сектора помечается специальным байтом - адресным маркером (1). Он служит для сообщения контроллеру о том, что сектор находится под головкой. Затем следуют ячейки, в которых содержится уникальный адрес сектора в формате CHS (2) и его контрольная сумма - для проверки целостности записанного адреса (3).512 байт данных пользователя помещаются в отдельном поле (4), к которому при записи добавляется несколько десятков байт избыточной информации, предназначенной для коррекции ошибок чтения с помощью ECC-кода (5). Рядом с данными размещается 4 байта циклической контрольной суммы (CRC) данных, которая служит для проверки целостности данных пользователя, и сообщения системе коррекции ошибок при ее нарушении (6). Для более надежной работы сектора при колебаниях скорости вращения имеются байты-пробелы (7). У некоторых винчестеров имеется дополнительный байт после AM - в нем сектор помечается как BAD.

Структура низкоуровневого формата сильно различается у разных моделей накопителей, и определяется типом используемого контроллера, его микропрограммой и изобретательностью разработчиков.

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

Дефекты можно разделить на две большие группы: физические и логические. Рассмотрим каждый их вид подробно.

Физические дефекты

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

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

Аппаратные BAD-секторы. Возникают из-за неисправности механики или электроники накопителя. К таким неполадкам относятся: обрыв головок, смещение дисков или погнутый вал в результате удара, запыление гермозоны, а также различные ошибки в работе электроники. Ошибки такого типа обычно имеют катастрофический характер и не подлежат исправлению программным путем.

Логические дефекты

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

Исправимые логические дефекты (софт-бэды): появляются, если контрольная сумма сектора не совпадает с контрольной суммой записанных в него данных. Например, из-за помех или отключения питания во время записи, когда диск уже записал в сектор данные, а контрольную сумму записать не успел. При последующем чтении такого "недописанного" сектора произойдет сбой: винчестер сначала прочитает поле данных, потом вычислит их контрольную сумму и сравнит полученное с записанным. Если они не совпадут, контроллер накопителя решит, что произошла ошибка и сделает несколько попыток перечитать сектор. Если и это не поможет (а оно не поможет, так как контрольная сумма заведомо неверна), то он, используя избыточность кода, попытается скорректировать ошибку, и если это не получится - диск выдаст ошибку внешнему устройству. Со стороны операционной системы это будет выглядеть как BAD. Некоторые жесткие диски имели повышенную склонность к образованию софт-бэдов из-за ошибок в микропрограмме - при определенных условиях контрольные суммы вычислялись неправильно; у других это происходило из-за дефектов механики.

Операционная система или BIOS не могут исправить логический дефект самостоятельно, так как прежде чем писать в сектор, они проверяют его на целостность, нарываются на ошибку и отказываются писать. При этом контроллер диска эту ошибку скорректировать тоже не может: он тщетно пытается прочитать этот сектор со второй, с третьей попытки, и когда это не получается - он всеми силами пытается себе помочь, на ходу подстраивая канал чтения и сервосистему. При этом и раздается душераздирающий скрежет. Этот скрип производят не "головки по поверхности", как многие привыкли думать, а всего лишь катушка позиционера, из-за специфической формы тока, протекающего через нее, и он абсолютно безопасен. Адрес непрочитанного сектора попадает во временный дефект-лист, изменяя значение атрибута Current Pending Sector в SMART, и сохраняется в нем. Ремапа при чтении не происходит. И только принудительная низкоуровневая перезапись этого сектора специальной программой в обход BIOS приводит к автоматическому перерасчету и перезаписи контрольной суммы, то есть BAD-блок бесследно исчезает. Переписать его можно дисковым редактором, способным работать с винчестером непосредственно через порты, но обычно "переписывают" весь диск, заполняя его секторы нулями. Утилиты, делающие это, свободно распространяются производителями накопителей, и часто неправильно называются "программами для низкоуровневого форматирования". На самом деле это - простые "обнулители", что нисколько не мешает им избавлять диск от бэдов: при удачной записи софт-бэды исчезают, а при неудачной - бэд считается физическим, и происходит авторемап.

Неисправимые логические ошибки. Это ошибки внутреннего формата винчестера, приводящие к такому же эффекту, как и дефекты поверхности. Возникают при разрушении заголовков секторов, например из-за действия на диск сильного магнитного поля. Но в отличие от физических дефектов, они поддаются исправлению программным путем. А неисправимыми они названы только потому, что для их исправления необходимо сделать "правильное" низкоуровневое форматирование, что обычным пользователям затруднительно из-за отсутствия специализированных утилит. Поэтому в быту такой сектор отключается так же, как и физический - с помощью ремапа. В настоящее время все большее количество винтов выпускается по технологии ID-less (сектора без заголовков), поэтому этот вид ошибок уже не так актуален.

"Адаптивные" бэды. Несмотря на то, что винчестеры является очень точными устройствами, при их массовом производстве неизбежно возникает разброс параметров механики, радиодеталей, магнитных покрытий и головок. Старым накопителям это не мешало, но у современных винтов с их огромной плотностью записи, малейшие отклонения в размерах деталей или в амплитудах сигналов, могут привести к ухудшению свойств изделия, появлению ошибок, вплоть до полной потери его работоспособности. Поэтому все современные накопители при изготовлении проходят индивидуальную настройку, в процессе которой подбираются такие параметры электрических сигналов, при которых устройству работается лучше. Эта настройка осуществляется программой ПЗУ при технологическом сканировании поверхности. При этом генерируются так называемые адаптивы - переменные, в которых содержится информация об особенностях конкретного гермоблока. Адаптивы сохраняются на "блинах" в служебной зоне, а иногда во флэш-памяти на плате контроллера. Если в процессе эксплуатации диска адаптивы окажутся разрушены (это может случиться в результате ошибок в самом винчестере, статического электричества или из-за некачественного питания), то последствия могут быть непредсказуемы: от банальной кучи бэдов до полной неработоспособности устройства, с отказом выходить на готовность по интерфейсу. "Адаптивные" бэды отличаются от обычных тем, что они "плавающие": сегодня они есть, а завтра могут исчезнуть и появиться совсем в другом месте. Ремапить такой диск бесполезно - дефекты-призраки будут появляться снова и снова. И при этом дисковая поверхность может быть в безупречном состоянии! Лечатся адаптивные бэды прогоном selfscan - внутренней программы тестирования, аналогичной той, что применяется на заводе при изготовлении винчестеров. При этом создаются новые адаптивы, и диск возвращается к нормальному состоянию. Это делается в условиях фирменных сервис-центров.

Намечающиеся дефекты

Это участки поверхности, на которых еще не сформировался явно выраженный дефект, но уже заметны проблемы со скоростью чтения. Это происходит от того, что сектор не читается контроллером с первого раза, и винчестер вынужден делать несколько оборотов диска, пытаясь прочитать его без ошибок. Если прочитать данные все-таки удается, то диск ничего не сообщит операционной системе, и ошибка останется незамеченной до тех пор, пока на этом месте не возникнет настоящий BAD-блок. Как правило, тут же выясняется, что именно на этом месте хранился очень важный файл, в единственном экземпляре, и спасти его уже нельзя. Поэтому диски нужно периодически тестировать. Это можно делать программой Scandisk или Norton Disk Doctor в режиме тестирования поверхности, но лучше - специальной утилитой, работающей независимо от файловой системы и умеющей выявлять намечающиеся BAD-секторы, замеряя время чтения каждого сектора.

1.8 Метод тестирования


Существует два способа запуска тестов S. M. A. R. T.: автономный (off-line) или монопольный (captive). Результат теста всегда сохраняется накопителем в данных S. M. A. R. T.

. При автономном запуске накопитель сообщает о успешном завершении команды до ее фактического исполнения и только после этого выполняет тест. При этом, по интерфейсу флаг "занято" (busy) не выставляется и накопитель в любой момент готов приступить к выполнению очередной интерфейсной команды, приостанавливая работу теста. Фактически, тест выполняется в фоновом режиме.

При выполнении этой функции, накопитель выполняет полное сканирование поверхности путем чтения каждого сектора и замещением ненадежных секторов на запасные сектора из резервной области (spare area) для предотвращения потери пользовательских данных.

Примечание. Если во время выполнения сканирования накопитель получает команду по интерфейсу, то процесс сканирования прерывается и накопитель приступает к обработке поступившей команды. При этом гарантируется максимальное время реагирования на поступившую команду - до 2 секунд.

. При запуске теста в монопольном режиме, по интерфейсу выставляется флаг "занято" (busy) и накопитель начинает непосредственное выполнение теста в режиме реального времени. Любая интерфейсная команда во время выполнения этого теста приведет к его прерыванию и остановке, после чего накопитель приступит к обработке поступившей команды.

Документировано существует три типа тестов самодиагностики: фоновый сбор данных (Off-line collection), сокращенный тест (Short Self-test), расширенный тест (Extended Self-test), однако еще существует набор так называемых "активных" тестов, функциональные особенности которых различны у разных производителей и для широкой публики не документированы. Сокращенный и расширенный тест способны выполняться как в фоновом, так и в монопольном режимах. Набор входящих в них тестов не стандартизирован.

Реальный набор выполняемых тестами функций можно рассмотреть на примере тестов, поддерживаемых жесткими дисками Hitachi:

Функция теста

Short Self test

Extended Self test

Off-line Collection

Raw Read Error Rate Test

YES

YES

YES

Write Test

YES

YES

NO

Servo Test

YES

YES

NO

Partial Read Scanning

YES

NO

NO

Full Read Scanning

NO

YES

YES


Как работает SMART IV.



1.9 Журналы ошибок (SMART error log)


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

Примечание: в журналах сохраняется время по внутренним часам накопителя, т.е. либо общее отработанное время на данный момент, либо время от момента последнего включения накопителя.

1.9.1 Log Directory

Тип: Каталог журналов S. M. A. R. T.

Вид доступа: только чтение (RO)

Размер: 1 сектор (512 байт)

Примечание: поддержка мультисекторных журналов

Данный журнал представляет собой своего рода каталог, в котором указаны адреса всех поддерживаемых журналов S. M. A. R. T. и их размер в секторах. Максимальное количество журналов - 255.

1.9.2 Summary Error Log

Тип: Суммарный журнал ошибок

Вид доступа: только чтение (RO)

Размер: 1 сектор (512 байт)

Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA)

Данный журнал содержит информацию об общем количестве ошибок, зафиксированных накопителем с момента первого включения (или обновления микропрограммы) и подробные записи о последних 5 ошибках. Для каждой из 5 зафиксированных ошибок сохраняются последние 5 поступивших в накопитель команд. В этом журнале сохраняются все ошибки UNC, IDNF, ошибки сервосистемы, записи/чтения и т.д. При этом, для каждой команды сохраняется значения всех регистров, время и текущее состояние накопителя на момент подачи самой команды. Ошибки, вызванные подачей неподдерживаемых команд или командами с ошибочными параментами не фиксируются в журнале. Если накопитель поддерживает Comprehensive Error Log, то журнал Summary Error Log дублирует последние пять записей из журнала Comprehensive Error Log.

1.9.3 Comprehensive Error Log

Тип: Комплексный журнал ошибок [SMART Error Logging]

Вид доступа: только чтение (RO)

Размер: 1.51 сектор (максимум 26,112 байт)

Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA)

Данный журнал содержит подробную информацию о общем количестве ошибок, зафиксированных накопителем с момента первого включения (или обновления микропрограммы) и подробные записи о последних ошибках. Максимальное количество сохраняемых ошибок - 255. Для каждой зафиксированной ошибки сохраняются последние 5 поступивших в накопитель команд. В этом журнале сохраняются все ошибки UNC, IDNF, ошибки сервосистемы, записи/чтения и т.д. При этом, для каждой команды сохраняется значения всех регистров, время и текущее состояние накопителя на момент подачи самой команды. Ошибки, вызванные подачей неподдерживаемых команд или командами с ошибочными параментами не фиксируются в журнале.

1.9.4 Extended Comprehensive Error Log

Тип: Расширенный комплексный журнал ошибок [SMART Error Logging]

Вид доступа: только чтение (RO)

Размер: 1.65,536 секторов (максимум 32 Мбайт)

Примечание: поддерживается 28/48-битная адресация секторов

Назначение данного журнала аналогично журналу Comprehensive Error Log и содержит в себе копию его записей, однако этот журнал имеет иную структуру, которая позволяет реализовать поддержку как 28-битной, так и 48-битной адресации секторов. Максимальное количество сохраняемых ошибок - 327,680.

1.9.5 Self-test Log

Тип: Журнал результатов самоконтроля [SMART self-test]

Вид доступа: только чтение (RO)

Размер: 1 сектор (512 байт)

Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA)

Данный журнал содержит информацию о результатах выполнения команд внутренней самодиагностики накопителя. Журнал может хранить до 21 записи. При превышении этого количества, журнал начинает заполняться заново, перезаписывая 1-ю запись 22-й, 2-ю - 23-ей и так далее. В каждой записи журнала сохраняется регистр с номером теста, код статуса выполнения теста, время на момент запуска/прерывания теста, номер текущей контрольной точки (или точки останова) теста, а также LBA-адрес сектора, на котором произошло прерывание/отмена теста.

1.9.6 Extended Self-test Log

Тип: Расширенный журнал результатов самоконтроля [SMART self-test]

Размер: 1.65,536 секторов (максимум 32 Мбайт)

Примечание: поддерживается 28/48-битная адресация секторов

Назначение данного журнала аналогично журналу Self-test Log и содержит в себе копию его записей, однако этот журнал имеет иную структуру, которая позволяет реализовать поддержку как 28-битной, так и 48-битной адресации секторов. Максимальное количество записей - 1,179,648.

1.9.7 Streaming Performance Log

Тип: Журнал параметров производительности потоков [Streaming]

Вид доступа: только чтение (RO)

Размер: 1.65,536 секторов (максимум 32 Мбайт)

Данный журнал содержит информацию о переданных накопителю параметров командами управления режимом Automatic Acoustic Management и Typical Host Interface Sector Time (подробнее - см. ATA/ATAPI-6 rev 1e). В журнале сохраняется набор параметров, по которым производится настройка накопителя и перевод в его в режим, когда все операции чтения/записи возможны только специальными командами и передача данных происходит в виде непрерывного потока, для которого гарантированны и учитываются все временные интервалы (на обработку команды, чтение и передачу данных; минимальные/максимальные задержки, время доступа, позиционирования и т.п.). Подробнее о назначении данного вида журналов можно узнать из описания технологии Audio/Video (AV) Streaming Feature.

1.9.8 Write Stream Error Log

Тип: Журнал ошибок потоковой записи [Streaming]

Вид доступа: только чтение (RO)

Размер: 1 сектор (512 байт)

Примечание: поддерживается 48-битная адресация секторов

Данный журнал содержит информацию о возникших ошибках записи в период работы накопителя в потоковом режиме (streaming mode). В этом журнале сохраняется общее количество подобных ошибок, номер последней ошибки, предыдущее и текущее значения регистров состояния и ошибки, количество и LBA-номер сектора, на котором данная ошибка была зафиксирована. После чтения данного журнала, накопитель сбрасывает счетчик общего количества ошибок и очищает журнал. Содержимое журнала сохраняется только во время работы и очищается в момент следующего включения/выключения накопителя или при поступлении сигнала аппаратного сброса (hardware reset). Максимальное количество сохраняемых ошибок - 31.

1.9.9 Read Stream Error Log

Тип: Журнал ошибок потокового чтения [Streaming]

Вид доступа: только чтение (RO)

Размер: 1 сектор (512 байт)

Примечание: поддерживается 48-битная адресация секторов

Данный журнал содержит информацию о возникших ошибках чтения в период работы накопителя в потоковом режиме (streaming mode). В этом журнале сохраняется общее количество подобных ошибок, номер последней ошибки, предыдущее и текущее значения регистров состояния и ошибки; количество и LBA-номер сектора, на котором данная ошибка была зафиксирована. После чтения данного журнала, накопитель сбрасывает счетчик общего количества ошибок и очищает журнал. Содержимое журнала сохраняется только во время работы и очищается в момент следующего включения/выключения накопителя или при поступлении сигнала аппаратного сброса (hardware reset). Максимальное количество сохраняемых ошибок - 31.

1.9.10 Delayed LBA Sector Log

Тип: Vendor Specified [General Purpose Logging]. Вид доступа: только чтение (RO). Размер: устанавливается производителем (VS).

Примечание: поддерживается 48-битная адресация секторов

Данный журнал содержит LBA-адреса всех секторов, которые были перемещены со своего нормального физического расположения, а также адреса границ недоступной последовательности секторов. Таким образом ведется журнал всех дефектных или нестабильных секторов. Максимальный размер журнала устанавливается производителем. Новое физическое расположение, метод и время доступа к замещенным секторам также устанавливается производителем и не документируется. Запись в данный журнал может быть добавлена в любой момент времени, при условии активности (питания) самого накопителя. Для процесса обновления журнала устанавливается наивысший приоритет и выполнение всех других команд приостанавливается. При этом удалить существующую запись из журнала не возможно. Содержимое журнала сохраняется при циклах включения/выключения накопителя и при поступлении сигнала аппаратного сброса (hardware reset).

1.9.11 ECC Uncorrectable Sector Log

Тип: Журнал неисправимых ошибок ECC [SMART Recovering]

Вид доступа: только чтение (RO)

Размер: 1 сектор (512 байт)

Примечание: поддерживается только 28-битная адресация секторов (28-bit LBA).

Данный журнал содержит список LBA-адресов секторов, на которых была зафиксирована и проигнорирована некорректируемая ошибка ECC при выполнении операции READ CONTINUOUS (см. AV feature). При этом, выполнение процедуры автоматического переназначения сбойного сектора (ADR - Automatic Defects Reassigment) накопителем заблокировано. Журнал может содержать до 126 записей. Примечание. Данный журнал доступен для чтения только при разрешенной операции READ CONTINUOUS. В противном случае накопитель возвратит код ошибки ERR->ABRT, прервет выполнение команды или возвратит пустой журнал. После успешного чтения журнала, в самом накопителе он будет очищен.

1.9.12 Host Vendor Specific Log

Тип: Пользовательские журналы

Вид доступа: чтение/запись (R/W)

Размер: максимум 31 журнал по 16 секторов (253,952 байт)

Примечание: содержание и формат журнала - любое, на усмотрение пользователя

Этот вид журнала может быть использован для хранения произвольных пользовательских данных. Для записи этого журнала используется команда WRITE SMART LOG. Если данный журнал ни разу не был записан, то при чтении накопитель возвратит пустой журнал, заполненный нулями.

1.9.13 Device Vendor Specific Log

Тип: Технические журналы изготовителя

Вид доступа: не определен, на усмотрение производителя (VS)

Размер: максимум 31 журнал по 16 секторов (253,952 байт)

Примечание: содержание, формат и размеры журнала - на усмотрение производителя

Этот вид журнала предназначен для внутреннего использования фирменными утилитами производителя, для хранения результатов работы встроенных подпрограмм анализа и диагностики состояния накопителя и т.п. Возможность чтения/записи этого вида журнала устанавливается производителем и не документируется.

Примечание. Новые накопители Seagate (модели Ux и Barracuda ATA) поддерживают и даже реально используют еще три вида журналов SMART, однако их назначение и описание пока не известны

2. Реализация функций S. M. A. R. T.


Для полной реализации функций S. M. A. R. T. необходимо специализированное программное обеспечение, которое может быть различным в том плане, что оно может, как поддерживаться графическим интерфейсом Windows, так и нет, следовательно запускаться только под DOS.

Программы, отображающие состояние SMART-атрибутов, работают по следующему алгоритму:

. Проверяют наличие поддержки технологии SMART накопителем.

. Подают в накопитель команду запроса SMART-таблиц.

. Получают таблицы в буфер приложения.

. Разбирают табличные структуры, извлекая из них номера атрибутов и их числовые значения.

. Сопоставляют стандартизированные номера атрибутов их названиям (иногда - в зависимости от типа, модели или фирмы-изготовителя HDD, как, например, в программе Victoria).

. Выводят числовые значения в удобном для восприятия виде (тут каждый программист может делать по-своему, например, конвертировать HEX-значения в десятичные).

. Извлекают из таблиц флаги атрибутов (признаки, характеризующие назначение атрибута в рамках конкретной firmware накопителя, например, "жизненно важный" или "счётчик").

. На основании всех таблиц, значений и флагов выводят общее состояние устройства.

Программы, запускаемые в Windows, имеют достаточно простой и понятный интерфейс, они отображают насколько работоспособным является жесткие диск. Работоспособность вычисляется путем анализа который проводит используемая программа, она показывает температуру жесткого диска, все его технические параметры и. т.д. Пользователь может анализировать эти данные и делать выводы. Но когда здоровье жесткого диска резко уменьшается или какой-то из его параметров подходит к пороговому значению программа предупреждает пользователя о том, что его жесткий диск скоро придет в негодность. Следовательно, для того чтобы поломка жесткого диска не стала неожиданностью нужно обязательно использовать программное обеспечение такого типа.

Программы, запускаемые под DOS, напрямую обращаются к контроллеру жесткого диска, получают и интерпретируют соответствующие данные и при необходимости оповещают пользователя или сетевого администратора.

3. Диагностические программы


Каждая фирма, выпускающая винчестеры, обычно разрабатывает специальный софт для диагностики и обслуживания своих накопителей, размещая его в интернете для свободного использования. Иногда эти утилиты уже содержат в своем составе операционную систему (обычно это одна из разновидностей DOS), как, например, Sea Tool от Seagate или Drive Fitness Test от IBM (теперь уже Hitachi). А иногда это просто исполняемый файл, который нужно самому запустить из DOS, как у Maxtor (уже принадлежащей Seagate) или Fujitsu. Такой софт позволяет протестировать накопитель на наличие ошибок и при возможности исправить их. Среди методов исправления часто можно встретить функции очистки диска (заполнение его нулями с уничтожением всей информации), а также скрытия дефектов методом ремапа. Но мы не будем рассматривать фирменные утилиты - как мы узнали, эти программы делают вполне стандартные вещи: запись нулей и проверку поверхности. Поэтому обратим внимание на несколько очень неплохих альтернативных программ.

3.1 MHDD и SMARTUDM


MHDD - это самая популярная бесплатная программа для низкоуровневой диагностики жестких дисков. Программа поддерживает работу со всеми распространёнными интерфейсами: IDE, Serial ATA, SCSI. Также, при помощи специального драйвера (эмулятор USB->SCSI), можно получить доступ к устройствам USB. Программа позволяет производить очень точную диагностику механической части накопителя, просмотр SMART-атрибутов, "ремонт" дефектных секторов, различные тесты, а также содержит десятки других функций.- бесплатная утилита чтения S. M. A. R. T. информации винчестеров. Данная программа позволяет предсказать примерную дату выхода винчестера из строя и тем самым предотвратить потерю важных данных. Отличием от многих подобных утилит является поддержка дисков на внешних UDMA/SATA контроллерах (HPT/Promise/FastTrack). Так же SMARTUDM определяет текущую температуру винчестера и количество переназначенных (reallocated) секторов.

Прежде всего, нужно подготовить диагностический софт и создать загрузочный диск с MS-DOS. Для удобства все файлы размещаем в корневом каталоге дискеты. Как вариант - дискету можно вообще не создавать или использовать ее только для загрузки DOS, а все программы запускать прямо с основного винчестера, подключив проверяемый диск на другой канал.

Загружаемся с нашей дискеты, и если исследуемый диск подключен на первичный IDE-канал, набираем в командной строке: a: smartudm, а если на вторичный - a: smartudm 1. Если в системе больше двух жестких дисков, то цифра может быть больше 1. Перед нами появится таблица, характеризующая состояние накопителя (Рис.3).

Рис.3. График SMART-статуса жесткого диска для быстрой оценки его состояния

Каждая строчка таблицы - это один из параметров текущего состояния диска. Напротив каждого из них, в графе "Indicator", находится шкала, разбитая на три цветные зоны. По мере износа накопителя длина индикаторов уменьшается, так как все больше зеленых квадратиков в их правой части оказываются погашены. Остаются желтые и красные. Когда все зеленые квадратики в каком-либо индикаторе исчезнут, это означает, что диск выработал свой ресурс или неисправен. При этом рекомендуется сохранить важные данные, так как в любой момент винчестер может "умереть" совсем. Если остался только красный квадратик - винт уже находится в аварийном состоянии, и к дальнейшему хранению файлов непригоден.

Надпись "T. E. C. not detected" означает то, что текущее состояние диска в полном порядке. Если это не так, то будет выдано предупреждение, выделенное красным цветом. Посмотрев на цветную диаграмму, можно быстро оценить, какой именно SMART-атрибут вызвал такое недовольство программы. В случае большого количества бэдов им наверняка будет самый верхний (Raw Read Error Rate). Но эта информация приблизительная, а нам нужны абсолютные значения атрибутов, поэтому нажимаем [Enter] и видим примерно такую картинку (Рис.4):

Рис.4. Расширенный SMART-статус жесткого диска (точные значения атрибутов)

Вот этот режим SMART-монитора и является основным, и по нему мы будем контролировать состояние накопителя при любых дальнейших действиях. Например, посмотрев значение атрибута 5 (Reallocated Sector Count), мы увидим содержимое пользовательского дефект-листа и сможем судить о том, удалось ли скрытие дефектов. При нажатии клавиши текущий SMART-лог сохраняется в файл. Нажав клавишу можно выйти из программы в DOS. Некоторые атрибуты контроллер обновляет "на лету", несколько раз в минуту, поэтому для получения наиболее достоверного результата, диск нужно протестировать, чем мы сейчас и займемся.

Выходим из SMART-монитора, и запускаем программу MHDD, введя в командной строке имя ее исполняемого файла. После загрузки следует сразу нажать комбинацию клавиш - программа просканирует шину и покажет список подключенных к системе накопителей. Выберите тот, который нужно проверить, введя в консоль нужную цифру от 1 до 10 (Рис.5). Затем следует нажать [F2] для инициализации выбранного винчестера.

Рис.5. Инициализация диска по команде [F2]

После этих действий накопитель выдаст информацию о своем объеме, максимально поддерживаемом режиме DMA и многом другом. Программа MHDD видит диска целиком, совершенно не интересуясь их разбиением на разделы и типом файловых систем. Она увидит все IDE-диски, независимо от того, определены ли они в BIOS или нет. Даже если материнская плата не поддерживает накопители больших объемов, программа все равно их увидит на полную емкость, лишь бы жесткие диски были исправны. Если это произошло, можно приступать к проверке поверхности.

Для этого нажимаем [F4], и в верхней строчке появившегося меню ставим параметр (по умолчанию там стоит CHS). Переключение между режимами CHS и LBA осуществляется с помощью клавиши "пробел". Затем нажимаем [F4] второй раз. По экрану побегут серые прямоугольники. Это займет 10-30 минут, и абсолютно безопасно для хранящейся на винте информации, так как при этом происходит только чтение секторов. Вот что про этот режим написал автор программы в документации к ней:

"При выполнении проверки поверхности справа появится окно. В первой строке этого окна будет отображаться текущая скорость работы с поверхностью. В последней - два значения в процентах. Первое значение показывает процент выполнения текущего теста в заданном промежутке, а второе отображает, насколько далеко головки ушли от 0 цилиндра и пришли к последнему. В процессе тестирования поверхности один квадратик равен 255 секторам (при тестировании в режиме LBA), либо числу секторов в строке параметров HDD (обычно, 63 - при тестировании в режиме CHS). Чем "мутнее" квадратик - тем больше накопителю потребовалось времени для чтения этого блока секторов. Если пошли цветные квадратики - значит, накопитель не вписался в отведенный ему для работы промежуток времени. Цветными квадратиками отображается ненормальное состояние поверхности (но еще без BAD'ов). Чем ниже по меню цвет - тем больше накопителю понадобилось времени для чтения этого трудночитаемого участка. Красный цвет - признак того, что на этом месте уже почти сформировался BAD block. Вопросительный знак появляется при превышении максимального времени ожидания готовности. То есть, при появлении [?] можно считать, что накопитель "подвис" на этом месте и здесь явно присутствует либо серьёзный дефект поверхности, либо неисправен блок магнитных головок (БМГ). Всё, что ниже вопросительного знака - это ошибки (BAD block). Если они появляются в процессе тестирования, значит, на поверхности есть физические дефекты. "

При наличии BAD-блоков, вместо квадратиков обычно появляются значки [x]. Если поверхность в порядке и без цветных квадратиков, а все SMART-атрибуты находятся в зеленой зоне, можно вздохнуть свободно: диск пока исправен.

Если же MHDD показал, что на поверхности имеются дефекты, а диск при этом "зависает" или издает скребущие звуки, значит проблемы есть. Но не будем думать сразу о плохом: ведь бэды могут быть логическими (софт-бэды), поэтому для начала устроим накопителю "прочистку мозгов" - выполним низкоуровневую запись нулей во все секторы. (Внимание! При этом вся информация будет уничтожена, поэтому копируем важные данные на другой диск). Программа MHDD имеет две команды для обнуления дисков: erase и aerase. Мы будем использовать первую, так как она работает быстрей.

Инициализируем диск, нажав клавишу [F2] (эту процедуру желательно делать перед любыми действиями), и вводим команду ERASE в консоль. Процедура очистки идет довольно медленно, занимая несколько десятков минут. Но стирать диск можно и выборочно, введя начальный и конечный номер сектора перед запуском процедуры. Это очень удобно, если бэды находятся ближе к концу диска, а его начало безупречно.

Выполнив очистку, снова запускаем тест поверхности (нажав [F4] два раза или консольной командой SCAN). При этом контроллер диска должен пересчитать жизненно важные SMART-атрибуты, что сделает его SMART-статус более достоверным. Если бэдов больше нет, диск можно считать отремонтированным. Выходим из MHDD, запускаем наш SMART-монитор и смотрим на значение атрибута Reallocated Sector Count. Если оно после очистки не увеличилось, а дефекты исчезли - значит они были логическими. Если увеличилось - они были физическими, и контроллер произвел успешный ремап этих секторов. Если же наоборот, бэды остались, а значение атрибута Raw Read Error Rate катастрофически упало - все намного сложнее, и диск имеет серьезные повреждения. Будем пытаться лечить его дальше - делать ремап.

При однократном нажатии клавиши [F4] в MHDD появляется меню, содержащее дополнительные параметры сканирования (Рис.6)

Рис.6. Настройки параметров сканирования и ремапа

Среди этих параметров есть функция ремапа. По умолчанию она выключена, но поставив на нее курсор и нажав "пробел", можно включить её (Remap: ON). В этом режиме MHDD будет пытаться вылечить дефектный сектор, всячески показывая контроллеру, что там имеется BAD и его нужно скрыть. При этом возле каждого успешно скрытого сектора возникает синий квадратик или надпись [ok]. После ликвидации всех бэдов нужно еще раз прогнать тест поверхности, выйти из MHDD и снова запустить SMART-монитор, убедившись в том, что значение Reallocated Sector Count увеличилось. Это означает, что ремап прошел успешно, без ошибок, и дефекты действительно были замещены из резерва.

Может случиться так, что даже после всех проведенных операций бэды останутся, а SMART покажет то, что ремап не происходит. Причин может быть несколько:

диск очень старый, и его контроллер не поддерживает функцию Automatic Defect Reassignment;

у диска может быть переполнен G-list, и в нем больше нет места для новых дефектов. Это хорошо видно в SMART по завалу атрибута Reallocated Sector Count. Такой диск ремонтируется в условиях мастерской, путем переноса всех ремапов в P-list и последующего низкоуровневого форматирования;

процедура автозамещения дефектов была отключена в самом диске. Фирменные утилиты некоторых накопителей позволяют это делать, и ими же можно вновь включить его. Это достаточно редкий случай;

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

контроллер так и не смог поверить в то, что сектор действительно дефектный, так как он все-таки смог прочитать/записать его, пусть даже не с первой попытки. В этом случае ремап не произойдет. Ни одна программа скрытия дефектов никогда не пишет напрямую в дефект-листы. Это может сделать только сам контроллер, на основании своих наблюдений. Для того чтобы он "поверил" в то, что в данном месте имеется бэд, и скрыл его, иногда приходиться довольно долго это ему объяснять, всячески показывая проблемный сектор - многократно производить запись/чтение, до возникновения ошибки. Поэтому утилиты для ремапа никогда не скроют намечающийся дефект. Для того, чтобы это произошло, нужен только "настоящий" BAD. Такая "недоверчивость" сделана специально: ведь каждый перемещенный сектор ухудшает параметры накопителя, снижая его быстродействие. И скрыть 666 бэдов ремапом скорей всего не получится - размер пользовательского дефект-листа ограничен, и при определенном его значении (от десятков до нескольких сотен секторов, в зависимости от конкретной модели).

4. Альтернативные методы скрытия дефектов


Как уже было сказано выше, ремап обладает недостатком, проявляющимся в виде рывков головками в резервную область. При этом диск может щелкать во время работы, а на графике будут видны провалы. Это может сильно затруднить, например, работу с потоковым видео. Особенно сильно это проявляется, когда ремапы расположены в начале диска: при этом головки проходят максимальный путь, и задержки на их перемещение очень велики. Поэтому, в некоторых случаях ремап может оказаться нецелесообразным, а вместо него лучшим выбором будет скрытие дефектов средствами файловой системы. Например, обычным высокоуровневым форматированием format.com, программой Scandisk или Norton Disk Doctor. Только решиться на этот шаг нужно сразу после проверки поверхности, не пытаясь сделать диску ремап. Иначе, при успешном его проведении, вернуть бэды назад и очистить таблицу дефектов будет нельзя. Ремап - однократная процедура, и если контроллер диска перенес адреса секторов в резерв, вернуть их назад будет уже невозможно.

Другая альтернатива ремапу - обрезание пространства в конце диска с помощью технологии HPA (Host Protected Area), имеющийся у всех современных винчестеров. При этом диск будет определяться в BIOS на меньший объем, а все беды, если они расположены в конце, останутся "за бортом", и станут невидимы. Этот метод следует применять к накопителям, имеющим много бэдов в конце диска (к сожалению, такое бывает редко). В любой момент винчестеру можно вернуть его полную емкость и, соответственно, бэды тоже. Сделать это можно программой MHDD (консольные команды HPA и NHPA). Если диск старый, и не поддерживает HPA, то можно создать отдельный логический раздел, причем, не только в конце, но и в любом другом месте диска, и расположить его так, чтобы большая группа бэдов оказалась в нем. Это делается программой Fdisk. Такой раздел можно забить ненужными файлами, а можно вообще его не форматировать, присвоив ему статус "non-dos" (тогда он станет невидим для системы).

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

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

Похожие работы на - Дефекты винчестера и методы их скрытия

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!