<< 2.
"По ком звонит будильник..."
3. "Замаскиpованные
бэд-блоки"
Можно ли с помощью какой-нибудь программы вычислить скрытие
BB?
Можно конечно. Самое простое - дефект-лист глянуть. Hо
простой пользователь такое может проделать только для HDD
Quantum, программой HddSpeed. Для остальных накопителей
доступного просмотрщика дефект-листа нет. Давно думаю некоторые
части своих утилит оформить в виде отдельных программок,
да все руки не доходят. Hапример, тот же просмотр дефект-листа
для WD, Fujitsu, SAMSUNG... В принципе, это по большому
счету не принципиально, если дефекты скрыты грамотно. Другое
дело, если использован тупой ремап BB. В этом случае используя
ту же программу HddSpeed можно понять как скрыты BB.
При тесте чтения график у нормального винта должен представлять
ступеньки (спускающиеся по ходу продвижения вглубь поверхности
- как результат зонно-секционной записи) зубцы на вершине
ступеньки - есть результат работы кэша. Внекоторых местах
переходы могут быть не идеальны в результате работы транслятора,
но общая картинка должна оставаться более-менее ровной.
Другое дело, если BB скрыты тупым ремапом. В этом случае
график будет содержать провалы, как следствие необходимости
позиционирования головок за резервным сектором. При грамотном
скрытии дефектов у накопителя также должен происходить пересчет
специальной таблицы транслятора, при помощи которой физическая
геометрия накопителя переводится в пользовательскую (виртуальную
геометрию). Т.е. общие выводы можно легко сделать подручными
средствами.
По поводу дефект листа стоит также сказать несколько слов.
Как правило даже у нового накопителя эта таблица никогда
не бывает пустой. Идеальную магнитную поверхность изготовить
практически невозможно, поэтому сбойные и нестабильные участки
будут наблюдаться даже у нового HDD. На заводе изготовителе
такие участки заносятся в таблицу дефектов после чего уже
пересчитывается транслятор. Однако у производителей HDD
существуют жесткие критерии количества дефектов в таблицах
по превышении которого накопитель отбраковывается. Иногда
вместо отбраковки происходит вырезание сбойных участков
(например, если они сосредоточены в хвостовой части, где
плотность записи максимальна - отрезается хвостовая часть).
Пример, партия накопителей семейства WDAC2850 - модель 2700
- это 2850 с отрезанным хвостом. На самом деле BB как таковых
там не много, больше нестабильных секторов с более высоким
временем доступа, нежели регламентировано. Я в свое время
успешно осуществлял обратный процесс (делал из 2700, правкой
соответствующей служебной информации, исходный 2850 - при
этом в реальных условиях косяки никак не проявлялись и эти
диски работают до сих пор)...
Что ж, раз я уже начал эту тему, то наверное надо подробно
рассказать про скрытие дефектов. Итак, скрытие дефектов
ремапом - наверное самый распространенный и доступный способ.
Увы, некоторые этого не знают и несут HDD в ремонт, где
им проделывают эту процедуру, но уже за деньги. Я с удивлением
узнал, что некоторые конторы в нашем городе за такую процедуру
берут денег столько же, сколько я беру за полное и грамотное
скрытие BB в полном технологическом цикле с пересчетом транслятора
и прочими тонкостями. Не стоит на мой взгляд кормить этих
шарлатанов. Про ремап я расскажу чуть ниже, а пока затрону
еще одну тонкость - т.н. "логический BB". Последнее в состоянии
бесследно убрать даже самый последний чайник обычным DiskEditor'ом.
Итак, классифицируем BB и методику их исключения по степени
фатальности и возможности устранения.
1. Логический BB.
Фатальность: Самый простой случай.
Последствия: Нечитаемость сектора (ошибка 40h:
UNC)
Возникновение: как правило, сбои во время операций
записи (выключение питания при swaping'е тому хороший
пример).
Лечение: доступно даже чайнику.
Требyемое ПО: DiskEditor или какая-нибудь форматилка,
пишущая в сектора.
Помимо собственно пользовательских данных в секторе содержится
еще ряд служебной информации в т.ч. и контрольная (ECC or
CRC). При сбое во время записи может произойти ситуация,
когда информация в рабочем пространстве сектора изменилась,
но контрольное значение не пересчиталось. В результате при
попытке чтения имеем ошибку 40h (Uncorrectable ECC or CRC).
Лечение весьма простое - записать в этот сектор какие-то
данные. Проще всего это сделать каким-нибудь DiskEditor'ом.
В этом случае мы также сохраним остальные данные на диске.
Можно воспользоваться какой-нибудь форматилкой, пишущей
в сектора. Это кстати, одна из причин по которой родилась
легенда, что LLF может исправить BB. Нет конечно, LLF для
HDD - это отдельная тема разговора. Возможно я об этом и
расскажу позже. Есть программки, типа ZeroFill (для Quantum,
WD и других накопителей - можно взять на сайте производителя).
Так или иначе, это на самом деле и не проблема, а мы переходим
к более серьезной вещи.
2. Разрушение области данных сектора.
Фатальность: неисправность средней сложности.
Последствия: как и в первом случае (UNC)
Возникновение: старение поверхности, царапины и
т.п.
Лечение: для грамотного лечения необходимо воспользоваться
технологическими возможностями заложенными в накопитель,
однако грубое скрытие возможно произвести и подручными
средствами. Для продвинутых пользователей.
Требуемое ПО: HddSpeed или HddUtil или специализированные
утилиты от производителя.
У накопителей как правило существуют две таблицы дефектов
P-LIST (Primary) и G-LIST (Ground). Primary (первичная)
заполняется на заводе-изготовителе при выполнении внутризаводского
тестирования. Grown (растущая) на заводе не заполняется
и предназначена для размещения дефектов которые возникли
во время эксплуатации накопителя. Для этого в списке пользовательских
команд существует команда assign по которой происходит переназначение
сбойного сектора. Эту команду используют многие тестовые
программы и в том числе программы HddSpeed и HddUtil приведенные
выше, а также специализированные утилиты от производителей
HDD, например WDDIAG которая находится на сервере WD и рекомендована
производителем для лечения накопителей с BB. При использовании
команды Assign накопитель прописывает в поле идентификации
BAD-сектора флаг перемещенного сектора и далее в поле данных
этого сектора номер резервного т.е. номер того сектора к
которому необходимо обратится. Как правило это первый сектор
после рабочей области данных пользователя (WD) или резервные
сектора на цилиндре (Quantum). Номер сбойного сектора и
его идентификационная информация помещается в таблицу G-LIST.
Если все так и оставить, то накопитель при чтении/записи
данных, при обращении к сбойному сектору прочитает флаг
и адрес переназначения и далее произойдет позиционирование
в резервную зону для чтения/записи данных из резервного
сектора. Дефектные сектора в этом случае пропадут, но накопитель
при работе, каждый раз, наткнувшись на сбойный сектор будет
позиционировать в резервную область. Этот процесс сопровождается
щелчками и некоторым замедлением. Процедурой Assign можно
скрыть только дефекты связанные с разрушением поля данных
формата (ошибки UNC). Если ошибки связанные с разрушением
поля идентификации или формата (ошибки IDNF, AMNF), или
разрушенной сервометкой (ошибки ABRT, IDNF), то такие дефекты
методом Assign скрыть нельзя. Помимо специальных утилит
Assign можно произвести и самостоятельно в соответствии
со штатной ATA командой:
1. Сначала сканируем (верификацией, чтением/записью) на
предмет выявления ошибок, составляем "карту дорожки"
2. Потом форматируем (N цилиндра в регистры номера цилиндра,
число секторов на трек - в счетчик секторов, 50h в регистр
команд.
3. Ждем DRQ, по его появлении - кидаем в буфер "карту
дорожки", состоящую из N слов, где N-число секторов на трек.
В каждом слове старший байт - номер сектора, младший - число,
которое означает следующее: 00h - Format sector as good;
20h - Unassign the alternate location for this sector; 40h
- Assign this sector to an alternate location; (оно самое)
80h - Format sector as bad;
4. Оставшийся хвост буфера заполняется нулями. По заполнении
буфера драйв начинает выполнять команду.
5. Ждем пропадания busy и появления ready и фоpматируем
следующий трек).
Это есть в стандарте ATA-2 и вроде бы ATA-3. В ATA/ATAPI-4
этой команды вообще больше нет.
Но если вы хотите чтобы при обращении к сбойным секторам
не происходило замедления в результате перепозиционирования
- нужно уже применять другие методы. А именно пересчет транслятора.
Для WD, например это делается выполнением процедуры внутреннего
форматирования (специальной технологической командой). При
выполнении процедуры внутреннего форматирования, происходит
пропуск секторов и дорожек указанных в таблицах дефектов,
а рабочая область пользователя сдвигается к середине диска
на количество секторов и дорожек указанных в таблицах. Кроме
того, пересчитываются таблицы транслятора, учитывая расположение
дефектов. После выполнения процедуры форматирования с учетом
таблицы (или таблиц) дефектов обращения к дефектным секторам
и дорожкам (при работе по логическим параметрам) не производится.
Этому способствует работа транслятора. При обращении к сбойным
секторам по физическим параметрам (после форматирования
с учетом таблиц) все дефектные сектора будут читаться с
ошибками IDNF в следствии отсутствия формата на них (но
конечному пользователю это уже не важно - при работе по
логическим (пользовательским) параметрам обращения к сбойным
секторам уже никогда не произойдет!
Последнее простой пользователь уже сделать не сможет, но
многие ремонтники и продавцы HDD тоже не могут это сделать,
они пользуются стандартными средствами Assign, заставляя
вас еще за это платить... Кстати, грамотно BB убрать у меня
происходит очень быстро и обойдется вам весьма дешево (в
зависимости от емкости HDD)
3. разрушение служебной информации, идентификаторов сектора,
адресных маркеров и сервометок. Обрыв головок и смещение
блинов в результате механических ударов.
Фатальность: серьезная неисправность.
Последствия: массовые BB либо полная неработоспособность
накопителя в результате физического повреждения магнитного
покрытия и головок.
Возникновение: Механические удары, сбои питания,
физическое старение HDD.
Лечение: Для лечения требуется работа профессионала.
Процесс может быть очень долгим и нередко в процессе приходится
физически отключать сбойные поверхности и головки.
Вот вроде бы и все про BB накопителя. Возможно где-то что-то
я рассказал несколько сумбурно (писал на одном дыхании)
и y вас могут возникнуть вопросы. Если что - пишите спрашивайте.
Программы HddSpeed и HddUtil можно взять у меня:
FREQ (2:5045/66)
HDD_UT22.EXE
HDDSPD20.ARJ
Специальные программы от производителей HDD можно взять:
А также:
http://www.faqs.org/ -
большое собрание различных FAQ
Обширная информация по компьютерной аппаратуре на русском
языке есть на http://www.ixbt.com/.
WBR, Зайко Алексей
<< 2.
"По ком звонит будильник..."
|