Понедельник, 29.04.2024, 01:32
Приветствую Вас Гость | Регистрация | Вход

Ремонт компьютера за час на дому и офисе

Каталог статей

Главная » Статьи » Статьи

Новые технологии 2002 года в ремонте жестких дисков и восстановление информации и данных

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

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

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

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

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

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

4. Снова о S.M.A.R.T.

Почти все винчестеры, выпущенные после 95-го года, имеют систему оперативного наблюдения за своим состоянием - S.M.A.R.T. (Self Monitoring And Reporting Technology). Эта технология позволяет в любое время оценить такие важные параметры накопителя, как количество отработанных часов, число возникших в процессе чтения/записи ошибок и многое другое. Первые винчестеры, оснащенные этой системой (например WD AC21200) имели очень несовершенный SMART из четырех-шести атрибутов. Но вскоре был разработан стандарт SMART-II, и с момента его появления в большинстве накопителей появилась такая особенность, как внутренняя диагностика и самоконтроль. Эта функция основана на проведении серии автономных внутренних тестов, которые можно запустить стандартными ATA-командами, и предназначена для углубленного контроля за состоянием механики накопителя, поверхности дисков и многих других параметров. После выполнения тестов, накопитель в обязательном порядке обновляет показания во всех SMART-атрибутах, в соответствии со своим текущим состоянием. Время тестирования может варьироваться от нескольких секунд (Quantum) до 54 минут (Fujitsu MPG). Активизировать тесты SMART можно, например, программой MHDD (консольная команда "smart test"). После запуска тестов возможны "странные" явления, очень похожие на те, что возникают при работе дефрагментатора: непрерывное горение индикатора HDD и звук интенсивного движения головок. Это нормальное явление: винт сканирует поверхность для поиска дефектов. Нужно просто подождать некоторое время, пока самотестирование закончится, и винт успокоится.

Более подробно ознакомиться с новинками технологии S.M.A.R.T. можно здесь:yusoft.hotbox.ru/techdoc/storage/smartdoc.htm.

Совсем недавно появилась спецификация SMART-III, в которой имеется не только функция обнаружения дефектов поверхности, но и возможность их восстановления "на лету" и многие другие новшества. Одной из его разновидностей стала система Data Lifeguard, применяемая в новых накопителях Western Digital. Ее суть заключается в следующем: если к винту не происходит никаких обращений, он начинает самостоятельно сканировать поверхность, выявляя нестабильные секторы, и при их обнаружении переносит данные в резервную область. После чего делает ему reassign. Таким образом данные оказываются спасены еще до того, как на этом месте возникнет настоящий BAD. В отличие от SMART-мониторинга, Data Lifeguard не может быть отключен внешними командами и работает постоянно. Поэтому "видимые" BAD-блоки на современных винчестерах Western Digital практически никогда не появляются.

Для просмотра smart-статуса жесткого диска используют программы, называемые smart-мониторами. Один из них входит в состав комплекса HddUtil для DOS и называется smartudm. Скачать его можно здесь:www.sysinfolab.com/files/smartudm.zip. Эта программа работает с любыми жесткими дисками и контроллерами. Кроме того, в комплекте с этой прогой идет подробная документация с описанием всех атрибутов. Существуют SMART-мониторы и для Windows 9x, например, очень популярны SiGuardian (http://www.siguardian.ru/) и SmartVision (www.acelab.ru/products/pc/utility.smart203.zip), но они могут не работать на некоторых системах. Объясняется это тем, что программы работают с винтом напрямую, через порты, а bus mastering-драйвера некоторых чипсетов мешают этому. Обладателям Windows XP стоит обратить внимание на монитор SmartWiewwww.upsystems.com.ua/ - прога корректно работает в этой системе даже на чипсетах VIA.

Между атрибутами SMART и состоянием поверхности существует некоторая взаимосвязь. Рассмотрим те из них, которые имеют прямое отношение к bad-блокам:

Reallocated sector count и Reallocated event count: число переназначенных секторов. Эти атрибуты показывают количество секторов, переназначенных ремапом в Grown дефект-лист. У новых винтов они обязательно должны быть равны нулю! Если их значение отличается от нуля, то это означает, что винт уже был в употреблении, на нем появлялись бэды, и ему был сделан ремап. А у винтов Fujitsu эти атрибуты могут самопроизвольно увеличиваться из-за некачественного питания. Будьте внимательны при покупке б/у!

Raw read error rate: количество ошибок чтения. У многих хардов (например у Seagate и Fujitsu) они всегда выше нуля, но если значение Value находится в пределах нормы (зеленая зона), опасаться нечего. Это "мягкие" ошибки, успешно скорректированные электроникой накопителя и не приводящие к искажению данных. Опасно, когда этот параметр резко снижается за короткий срок, переходя в желтую зону. Это говорит о серьезных проблемах в накопителе, о возможном появлении бэдов в ближайшее время, и о том, что пора делать backup важных данных.

Current Pending Sector: этот атрибут отражает содержимое "временного" дефект-листа, присутствующего на всех современных накопителях, т.е. текущее количество нестабильных секторов. Эти секторы винт не смог прочесть с первого раза. Поле raw value этого атрибута показывает общее количество секторов, которые накопитель в данный момент считает претендентами на remap. Если в дальнейшем какой-то из этих секторов будет прочитан (или переписан) успешно, то он исключается из списка претендентов. Постоянное значение этого атрибута выше нуля говорит о неполадках в накопителе.

Uncorrectable Sector: показывает количество секторов, ошибки в которых не удалось скорректировать ECC-кодом. Если его значение выше нуля, это означает, что винту пора делать ремап: не исключено, что во время записи данных ОС нарвется на этот сектор и в результате какая-нибудь важная инфа или системный файл окажутся испорчены. Однако, у некоторых винтов, например у Fujitsu MPG, этот атрибут почему-то не сбрасывается и после ремапа, поэтому доверять его показаниям необязательно.

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

Настало время разобраться, а отчего, собственно, возникает такая неприятность, как бэды? В UPGRADE #49 мы рассмотрели лишь внешние причины, способствующие их возникновению. А теперь пришло время взглянуть на проблему с другой точки зрения - со стороны самого винчестера. Для этого рассмотрим структуру сектора, в том виде, каким его видит электроника винта "изнутри":

 


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

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

Структура низкоуровневого формата сильно различается у разных моделей накопителей, и определяется типом используемого контроллера, его микропрограммой и изобретательностью разработчиков. Например, у новых винчестеров фирмы IBM используются секторы без служебных заголовков - NoID. Его устройство подробно описано на сайте IBM: http://www.storage.ibm.com/hdd/ipl/oem/tech/noid.htm.

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

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

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

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

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

Однако в процессе эксплуатации винта, некоторые сервометки могут оказаться разрушены. Если дохлых сервометок станет слишком много, в этом месте начнут происходить сбои при обращении к информационной дорожке: головка, вместо того, чтобы занять нужное ей положение и прочитать данные, начнет шарахаться из стороны в сторону. Это будет выглядеть как жирный и особо наглый BAD, или даже как группа BAD'ов. Их присутствие часто сопровождается стуком головок, зависанием накопителя и невозможностью исправить его обычными утилитами. Устранение таких дефектов возможно только специальными программами, путем отключения дефектных дорожек, а иногда и всей дисковой поверхности. Для этих целей в некоторых накопителях имеется серводефект-лист, хранящий информацию о плохих сервометках. В отличие от P- и G-листа, серводефект-лист используется не транслятором, а всей микропрограммой винта. К секторам, имеющим дефектные сервометки, блокируется доступ даже по физическим параметрам, что позволяет избежать стуков и срывов при обращении к ним. Самостоятельно винт восстановить сервоформат не может, это делается только на заводе.

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

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

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

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

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

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

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

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

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

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

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

Продолжение>>

(c) Все права на этот материал принадлежат Sergei Kazanskij,(onehalf). 2002г. 



Источник: http://www.servicebel.ru
Категория: Статьи | Добавил: servicebel (14.04.2014) | Автор: Sergei Kazanskij
Просмотров: 1239
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]