Обмен баннерами - FarPost
 

Главная
Новости
О факультете
Студенты
Расписание
Учёба
Рубрики
Ссылки
Форум

Рубрики

Macrohard

<< 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. "По ком звонит будильник..."



 
  Copyright © 1999-2001 Vadim Kiselev
e-mail: corum@mail.ru
Design: CS Studio
  Официальный сайт ДВГТУ:
http://www.festu.ru/
   
 
   
Используются технологии uCoz