Сайт Alex-Amur

 

Bad-блоки HDD: причины и виды

SMART - технология внутренней оценки состояния HDD

Восстановление жестких дисков

Наиболее часто встречающиеся проблемы с HDD IDE

Рекомендации по безопасному хранению информации на HDD

Последовательный способ обмена информацией (SATA)

Восстановление загрузочных секторов разделов NTFS

 

На главную                                          Bad-блоки HDD: причины и виды

Источник: http://www.3dnews.ru/Автор: Антон Клыга
В предыдущих статьях мы неоднократно упоминали о таком явлении, как сбойный (плохой или bad) блок, однако до сих пор не дали точного определения, что же это такое, каковы причины их возникновения, как с ними бороться и нужно ли. В этой статье рассмотрим два первых вопроса и предоставим вам немного времени для собственных размышлений и поисков решений. В следующий раз все-таки поговорим о методах борьбы с ними. Итак, под bad-блоком понимается обычно конкретный участок диска, нормальная работа с которым не гарантируется или невозможна вовсе. На таких участках может содержаться различная информация, это могут быть данные пользователя или служебная информация (иначе называемая серво- (очевидно от лат. servire или англ. serve - служить), в этом случае это чревато последствиями, тяжесть которых варьируется в очень широких пределах), хотя, конечно же, лучшим вариантом было бы отсутствие в этой области чего-либо (правда, столкнуться с
bad-blocks в таких областях скорее не придется). Появление таких секторов может быть обусловлено разными причинами, в одном случае такие секторы можно восстановить, в другом нельзя, в одном нужно использовать одни методы лечения и переназначения в другом другие. Но сначала развеем несколько довольно распространенных мифов.

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

 

К оглавлению На главную                                 SMART - технология внутренней оценки состояния винчестеров

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

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

И в 1995 году они предложили технологию, отслеживающую несколько критически важных параметров накопителя, и делающую попытки на основании собранных данных предсказать выход его из строя - Predictive Failure Analysis (PFA). Идею подхватила Compaq, которая чуть позже создала свою технологию - IntelliSafe. В разработке Compaq также поучаствовали Seagate, Quantum и Conner. Созданная ими технология также отслеживала ряд рабочих характеристик диска, сравнивала их с допустимым значением и рапортовала хост-системе в случае наличия опасности. Это был огромный шаг вперед если и не в повышении надежности винчестеров, то хотя бы в уменьшении риска потери информации при их использовании. Первые попытки оказались удачными, и показали необходимость дальнейшего развития технологии. Уже в объединении всех крупных производителей жестких дисков появилась технология S.M.A.R.T (Self Monitoring Analysing and Reporting Technology), базирующаяся на технологиях IntelliSafe и PFA (кстати говоря, PFA существует и поныне, как набор технологий для наблюдения и анализа за различными подсистемами серверов IBM, в том числе и дисковой подсистемой, причем наблюдение за последней базируется именно на технологии SMART). Итак, SMART - это технология внутренней оценки состояния диска, и механизм предсказания возможного выхода из строя жесткого диска. Важно отметить то, что технология в принципе не решает возникающих проблем (основные из них показаны на рисунке чуть ниже), она способна лишь предупредить об уже возникшей проблеме либо об ожидающейся в ближайшем времени. При этом нужно также сказать, что технология не в состоянии предсказать абсолютно все возможные проблемы и это логично: выход электроники в результате скачка напряжения, порча головок и поверхности в результате удара и т.п. никакая технология предсказать не в силах. Предсказуемы лишь те проблемы, которые связаны с постепенным ухудшением каких-либо характеристик, равномерной деградацией каких либо компонент. Этапы развития технологии В своем развитии технология SMART прошла три этапа. В первом поколении было реализовано наблюдение небольшого числа параметров. Никаких самостоятельных действий накопителя не предусматривалось. Запуск осуществлялся только командами по интерфейсу. Спецификации описывающей стандарт полностью нет, и, следовательно, не было и нет и четкого предначертания, о том, какие именно параметры надлежит контролировать. Более того, их определение и определение допустимого уровня их снижения целиком и полностью предоставлялся производителям винчестеров (что естественно в силу того, что производителю виднее что именно надлежит контролировать данном его винчестере, ибо все винчестеры слишком различны). И программное обеспечение, по этой причине, написанное, как правило, сторонними фирмами, не было универсальным, и могло ошибочно рапортовать о предстоящем сбое (путаница возникала из-за того, что под одним и тем же идентификатором различные производители хранили значения различных параметров). Имело место большое число жалоб на то, что число случаев обнаружения пред сбойного состояния чрезвычайно мало (особенности человеческой природы: получать хочется все и сразу, жаловаться на внезапные отказы дисков до внедрения SAMRT в голову как-то никому не приходило). Ситуация усугубилась еще и тем, что в большинстве случаев не были выполнены минимально необходимые требования для функционирования SMART (об этом поговорим позже). Статистика говорит о том, что число предсказываемых сбоев было менее 20%. Технология на этом этапе была далека от совершенства, но являлась революционным шагом вперед. О втором этапе развития SMART - SMART II известно также не много. В основном наблюдались те же проблемы, что и с первой.

Нововведениями являлись возможность фоновой проверки поверхности, выполняемая диском в автоматическом режиме при простоях и ведение журналов ошибок, расширился список контролируемых параметров (снова же в зависимости от модели и производителя). Статистика говорит о том, что число предсказываемых сбоев достигло 50%. Современный этап представлен технологией SMART III. На ней остановимся подробней, попытаемся разобраться в общих чертах как она работает, что и зачем в ней нужно. Нам уже известно, что SMART производит наблюдение за основными характеристиками накопителя. Эти параметры называются атрибутами.

Необходимые к мониторингу параметры определяются производителем. Каждый атрибут имеет какую-то величину - Value. Обычно изменяется в диапазоне от 0 до 100 (хотя может быть в диапазоне до 200 или до 255), ее величина - это надежность конкретного атрибута относительно некоторого его эталонного значения (определяется производителем). Высокое значение говорит об отсутствии изменений данного параметра или, в зависимости от значения, его медленном ухудшении. Низкое значение говорит о быстрой деградации или о возможном скором сбое, т.е. чем выше значение Value атрибута, тем лучше. Некоторыми программами мониторинга выводится значение Raw или Raw Value - это значение атрибута во внутреннем формате (который так же различен у дисков разных моделей и разных производителей), в том, в котором он хранится в накопителе. Для простого пользователя он малоинформативен, больший интерес представляет посчитанное из него значение Value. Для каждого атрибута производителем определяется минимальное возможное значение, при котором гарантируется безотказная работа накопителя - Threshold. При значении атрибута ниже величины Threshold очень вероятен сбой в работе или полный отказ. Осталось только добавить, что атрибуты бывают критически важными и некритически. Выход критически важного параметра за пределы Threshold фактический означает выход из строя, выход за переделы допустимых значений некритически важного параметра свидетельствует о наличии проблемы, но диск может сохранять свою работоспособность (хотя, возможно, с некоторым ухудшением некоторых характеристик: производительности например).

К наиболее часто наблюдаемым критически важным характеристикам относятся: Raw Read Error Rate - частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска. Spin Up Time - время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете нормализованного значения (Value) практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся не максимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например блок питания подкачал. Spin Up Retry Count - число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно не максимальное Value) свидетельствует о проблемах в механической части накопителя. Seek Error Rate - частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо. Reallocated Sector Count - число операций переназначения секторов. SMART в современных способен произвести анализ сектора на стабильность работы 'на лету' и в случае признания его сбойным произвести его переназначение. Ниже мы поговорим об этом подробнее. Из некритических, так сказать информационных атрибутов, обычно производят наблюдение за следующими: Start/Stop Count - полное число запусков/остановов шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold.

Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя. Power On Hours - число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MBTF). Принимая во внимание обычно совершенно невероятные величины MBTF, маловероятно, что параметр достигнет когда либо критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен. Drive Power Cycle Count - количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки. Temperatue - просто и понятно. Здесь хранятся показания встроенного термодатчика. Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах). Current Pending Sector Count - здесь храниться число секторов, являющихся кандидатами на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора. Uncorrectable Sector Count - число ошибок при обращении к сектору, которые не были скорректированы.

Возможными причинами возникновения могут быть сбои механики или порча поверхности. UDMA CRC Error Rate - число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы. Write Error Rate - показывает частоту ошибок происходящих при записи на диск. Может служить показателем качества поверхности и механики накопителя. Все происходящие ошибки и изменения параметров фиксируются в журналах SMART. Эта возможность появилась уже в SMART II. Все параметры журналов - назначение, размер, их число определяются изготовителем винчестера. Нас с вами в настоящий момент интересует только факт их наличия. Без подробностей. Информация хранящаяся в журналах используется для анализа состояния и составления прогнозов.

Если не вдаваться в подробности, то работа SMART проста - при работе накопителя просто отслеживаются все возникающие ошибки и подозрительные явления, которые находят отражение в соответствующих атрибутах. Кроме того начиная так же со SMART II у многих накопителей появились функции самодиагностики. Запуск тестов SMART возможен в двух режимах, off-line - тест выполняется фактически в фоновом режиме, так как накопитель в любое время готов принять и выполнить команду, и монопольном при котором при поступлении команды, выполнение теста завершается. Документировано существует три типа тестов самодиагностики: фоновый сбор данных (Off-line collection), сокращенный тест (Short Self-test), расширенный тест (Extended Self-test). Два последних способны выполняться как в фоновом, так и в монопольном режимах. Набор тестов в них входящих не стандартизирован. Продолжительность их выполнения может быть от секунд до минут и часов. Если вы вдруг не обращаетесь к диску, а он при этом издает звуки как и при рабочей нагрузке - он просто похоже занимается самоанализом. Все данные, собранные в результате таких тестов будут также сохранены в журналах и атрибутах. Ох уж эти плохие сектора...

Теперь вернемся к вопросу бэд-секторов, с которых все началось. В SMART III появилась функция, позволяющая прозрачно для пользователя переназначать BAD сектора. Работает механизм достаточно просто, при неустойчивом чтении сектора, или же ошибки его чтения, SMART заносит его в список нестабильных и увеличит их счетчик (Current Pending Sector Count). Если при повторном обращении сектор будет прочитан без проблем, он будет выброшен из этого списка. Если же нет, то при предоставившейся возможности - при отсутствии обращений к диску, диск начнет самостоятельную проверку поверхности, в первую очередь подозрительных секторов. Если сектор будет признан сбойным, то он будет переназначен на сектор из резервной поверхности (соответственно RSC увеличиться). Такое фоновое переназначение приводит к тому, что на современных винчестерах сбойные секторы практически никогда не видны при проверке поверхности сервисными программами. В тоже время, при большом числе плохих секторов их переназначение не может происходить до бесконечности. Первый ограничитель очевиден - это объем резервной поверхности. Именно этот случай я имел ввиду. Второй не столь очевиден - дело в том, что у современных винчестеров есть два дефект-листа P-list (Primary, заводской) и G-list (Growth, формируется непосредственно во время эксплуатации).

И при большом числе переназначений может оказаться так, что в G-list не оказывается места для записи о новом переназначении. Эта ситуация может быть выявлена по высокому показателю переназначенных секторов в SMART. В этом случае еще не все потеряно, но это выходит за рамки данной статьи. Итак, используя данные SMART даже не нося диск в мастерскую можно довольно точно сказать, что с ним происходит. Существуют различные технологии-надстройки над SMART, которые позволяют определить состояние диска еще более точно и практически достоверно причину его неисправности. Об этих технологиях мы поговорим в отдельной статье. Нужно знать, что приобретения накопителя со SMART не достаточно, для того, что бы быть в курсе всех происходящих с диском проблем. Диск, конечно, может следить за своим состоянием и без посторонней помощи, но он не сможет сам предупредить в случае приближающейся опасности. Нужно что-то, что позволит на основании данных SMART выдать предупреждение. Как вариант возможен BIOS, который при загрузке при включенной соответствующей опции проверяет состояние SMART накопителей. А если же вам хочется вести постоянный контроль за состоянием диска, необходимо использовать какую-то программу мониторинга. Тогда вы сможете видеть информацию в подробном и удобном виде. Об этих программах мы также поговорим в отдельной статье. Именно это я имел ввиду, когда говорил о том, что по началу не выполнялись необходимые требования при эксплуатации жестких дисков с SMART.
Автор:
Антон Клыга
Источник:
http://izcity.com

 

К оглавлению На главную                          Восстановление жестких дисков

 

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

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

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

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

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

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

Диагностические ошибки

Бит

Содержимое

Источник ошибки

7

0

Ошибка master диска

 

1

Ошибка slave диска

2-0

011

Ошибка секторного буфера

 

100

Ошибка контрольной суммы, не устранимая избыточным кодированием

 

101

Ошибка микроконтроллера

Разные BIOS-ы могут различно реагировать на такую ситуацию, но все варианты сводятся к одному - жесткий диск не определяется и не "чувствуется". Однако на уровне портов ввода/вывода устройство функционирует отлично. Заметим, что существуют такие материнские платы (особенно среди новых моделей), которые, обнаружив ошибку микроконтроллера винчестера, просто отключают питание жесткого диска. Несложно написать для испорченного таким образом винчестера драйвер, который обеспечит работу с диском через высокоуровневый интерфейс Int 0x13. Например, следующая процедура обеспечивает посекторное чтение и запись через порты ввода/вывода для первого жесткого диска в CHS режиме.

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

Этот фрагмент может служить вполне работоспособным ядром для драйвера 16-ти разрядного режима. Для упрощения понимания не включена задержка после каждого обращения к порту. В зависимости от соотношений скорости вашего процессора и контроллера диска эта задержка может и не потребоваться (в противном случае рекомендуется читать регистр статуса Ox1F7, дожидаясь готовности контроллера). При этом не следует спешить с заменой такого жесткого диска на новый, с подобной неисправностью можно успешно работать не год и не два. Последнее, правда, лишь при условии, что все используемое программное обеспечение не будет конфликтовать с нестандартным драйвером. Писать драйвер, скорее всего, придется вам самому, поскольку не известно ни одной коммерческой разработки в этом направлении, а все любительские разработки выполнены в основном "под себя". Так, например, драйвер от KPNC hddFix3a поддерживает только винчестеры PRIMARY MASTER до пятисот мегабайт и не работает в среде Windows 95 (разработан на год раньше ее появления).

Более легкий, но не всегда осуществимый путь - запретить тестирование жестких дисков BIOS-ом или, по крайней мере, игнорировать результаты такового. Как это осуществить, можно прочесть в руководстве на материнскую плату (или обратиться за помощью к службе технической поддержки фирмы-производителя, поскольку в руководствах пользователя такие тонкости нередко опускают). Например, попробуйте установить "Halt on" в "Never" или перезаписать Flach BIOS, модифицировав его так, чтобы тот не выполнял подобную проверку. Если Вам повезет, жесткий диск заработает! Однако иногда все же происходят и аппаратные отказы. Например, у винчестеров фирм SAMSUNG и CONNER отмечены случаи отказа модуля трансляции мультисекторного чтения/записи. Если это не будет обнаружено внутренним тестом устройства, то такой жесткий диск вызовет зависание операционной системы на стадии ее загрузки. Для предотвращения этого достаточно добавить в CONFIG.SYS ключ MULTI-TRACK=OFF и отключить аналогичные опции в BlOS-e. При этом, проиграв в скорости, все же можно заставить жесткий диск сносно работать. Понятно, что эксплуатировать восстановленный таким образом диск длительное время нерационально по причине потери быстродействия. Лучше приобрести новый, на который и скопировать всю информацию. С другой стороны, такой жесткий диск все же остается полностью рабочим и успешно может служить, например, в качестве резервного.

На том же CONNER эпизодически выходит из строя блок управления позиционированием головок, так что последние уже не могут удержаться на дорожке и при обращении к следующему сектору немного "уползают". При этом считывание на выходе дает ошибочную информацию, а запись необратимо затирает соседние сектора. Бороться с этим можно позиционированием головки перед каждой операцией записи/чтения, обрабатывая за один проход не более сектора. Понятно, что для этого необходимо вновь садиться за написание собственного драйвера. К счастью, он достаточно простой (можно использовать аппаратное прерывание от жесткого диска Int 0x76 IRQ14, вставив в тело обработчика команду сброса контроллера. В данном случае подразумевается, что контроллер используемого жесткого диска проводит перекалибровку головки во время операции сброса. Некоторые модели этого не делают. В этом случае придется прибегнуть к операции позиционирования головки (функция ОхС дискового сервиса 0x13). Первые модели от вторых можно отличить временем, требуемым на сброс контроллера. Понятно, что электроника "сбрасывается" мгновенно, а позиционирование головки требует хоть и не большого, но все же заметного времени. Современные модели с поддержкой кэширования этого часто не делают или "откладывают" операции с головкой до первого к ней обращения. Разумеется, в этом случае кэширование придется выключить. Большинство BIOS позволяет это делать без труда, и нет нужды программировать контроллер самостоятельно. В другом случае вышедший из строя блок позиционирования (трансляции) подводит головки вовсе не к тому сектору, который запрашивался. Например, головки могли физически сместиться с оси, "уползая" в сторону. Разумеется, этот дефект можно скорректировать программно, достаточно проанализировать ситуацию и логику искажения трансляции. Многие модели позиционируют головку, используя разметку диска, что страхует от подобных поломок (к сожалению, сейчас от такого подхода большинство фирм отказались, выигрывая в скорости).

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

Посекторно скопировать диск на винчестер с иной топологией трудно, но возможно. Дело в том, что многие современные контроллеры жестких дисков позволяют пользователю менять трансляцию произвольным образом. Для этого необходимо приобрести винчестер, поддерживающий LBA-режим (а какой из современных жестких дисков его не поддерживает?). При этом он может быть даже большего объема, нежели исходный, но это никак не помешает копированию. Другой вопрос, что без переразбиения скопированный таким образом диск не "почувствует" дополнительных дорожек и следует запустить Norton Disk Doctor, который устранит эту проблему.

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

Если же контроллер не позволяет программно управлять предкомпенсацией, то еще не все потеряно. Попробуйте перед каждым обращением делать сброс контроллера, а точнее, его перекалибровку (команда Ixh). В некоторых случаях это срабатывает, поскольку с целью оптимизации скорости обмена предкомпенсацией обычно управляет не один блок. И, кроме того, иногда контроллер КЭШа не учитывает предкомпенсацию, а его сброс реализует последнюю аппаратно. К сожалению, это по большей части догадки и результаты экспериментов автора, так как техническая документация фирм-производителей по этому поводу не отличается полнотой, а местами содержит противоречия. Можно испытать и другой способ - попробовать перезаписать микрокод контроллера (команда 92h). Конечно, это доступно только для специалистов очень высокого класса, но ведь доступно! Заметим, что не все контроллеры поддерживают такую операцию. С другой стороны, это и хорошо, так как уменьшает вероятность сбоя и не дает некорректно работающим программам (вирусам в том числе) испортить дорогое устройство. Жесткие диски от SAMSUNG обладают еще одной неприятной особенностью - часто при подключении шлейфа "на лету", при включенном питании, они перестают работать. Внешне это выглядит так: индикатор обращения к диску постоянно горит, но диск даже не определяется BIOS-oм, или определяется, но все равно не работает. Близкое рассмотрение показывает, что на шине пропадает сигнал готовности устройства. В остальном контроллер остается неповрежденным. Разумеется, если не обращать внимание на отсутствие сигнала готовности, то с устройством можно общаться, делая вручную необходимые задержки (поскольку физическую готовность устройства уже узнать не представляется возможным, приходится делать задержки с изрядным запасом времени). При этом, к сожалению, придется отказаться от DMA-mode (а уж тем более ultra-DMA) и ограничиться PIO 1 (с небольшим риском - PIO 2) режимом. Конечно, писать соответствующий драйвер вам придется опять самостоятельно. Разумеется, скорость обмена в режиме PIO 1 по сегодняшним меркам совершенно неудовлетворительна и не годится ни для чего другого, кроме как копирования информации со старого на новый винчестер, но некоторые "нечистоплотные" продавцы компьютерной техники как-то ухитряются устанавливать подобные экземпляры на продаваемые машины. Будьте осторожны! Учитывая, что написание подобных драйверов для Win32 - трудоемкое занятие, большинство ограничивается поддержкой одной лишь MS-DOS, и вовсе не факт, что компьютер, демонстрирующий загрузку win95, содержит исправный, а не реанимированный подобным образом жесткий диск.

У жестких дисков фирмы SAMSUNG при подключении "налету" может появляться другой неприятный дефект - при запросах на чтение контроллер периодически "повисает" и не завершает операцию. В результате "замирает" вся операционная система (впрочем, Windows NT с этим справляется, но, вероятно, не всегда). На первый взгляд может показаться, что с этого винчестера несложно скопировать ценные файлы, но при попытке выполнить это выясняется, что диск "зависает" все чаще и чаще и копирование растягивается до бесконечности. Однако если выполнить сброс контроллера, то можно будет повторить операцию. Это можно сделать аппаратно, подпаяв одну кнопку на линию сброса и статуса. Последнее нужно для указания на ошибочную ситуацию, чтобы операционная система повторила незавершенную операцию. Если этого не сделать, то часть секторов не будет реально прочитана (записана). Или можно выполнять сброс автоматически, например, по таймеру. Чтобы не сталкиваться с подобной ситуацией, никогда не следует подсоединять/отсоединять винчестер при включенном питании. Очень часто это приводит к подобным ошибкам, хотя производители других фирм, по-видимому, как-то от этого все же защищаются, ибо аналогичной ситуации у них практически не встречается. Все же не стоит искушать судьбу... От аппаратных ошибок теперь перейдем к дефектам поверхности. Заметим сразу, что последнее встречается гораздо чаще и проявляется намного коварнее. Обычно это ситуация, в которой мало что можно предпринять. Но достичь главной цели - спасти как можно больше уцелевших данных - довольно часто удается. Возьмем такую типичную ситуацию как ошибка чтения сектора. Маловероятно, чтобы сектор был разрушен целиком. Чаще всего "сыплется" только какая-то его часть, а все остальные данные остаются неискаженными. Существуют контроллеры двух типов. Первые, обнаружив расхождение контрольной суммы считанного сектора, все же оставляют прочитанные данные в буфере и позволяют их извлечь оттуда, проигнорировав ошибку чтения. Вторые либо очищают буфер, либо просто не сбрасывают внутренний кэш, в результате чего все равно прочитать буфер невозможно. На практике обычно встречаются последние. При этом сброс КЭШа можно инициировать серией запросов без считывания полученных данных. Кэш при этом переполняется, и наиболее старые данные будут вытолкнуты в буфер. Остается их только прочесть. Конечно, это крайне медленно, но, к сожалению, универсальной команды сброса КЭШа не существует. Разные разработчики реализуют это по-своему (впрочем, иногда это можно найти в документации на чипы, используемые в контроллере). WESTERN DIGITAL сообщает в техническом руководстве что при длинном чтении сектора без повтора контроль сектора не выполняется и он будет-таки целиком помещен в буфер. Кстати, так и должно быть по стандарту. Увы, остальные фирмы от него часто отклоняются по разным соображениям. Остается определить, какие же из прочитанных данных достоверные, а какие нет (если этого не видно "визуально" - например, в случае текстового или графического файлов)? Разумеется, в подобных рамках задача кажется неразрешимой, но это не совсем так. Дело в том, что можно произвести не только короткое, но и длинное чтение (Ox22h req PlO in long with retry), для чего можно использовать следующую процедуру. При этом кроме собственно данных читаются также и корректирующие коды. Автоматическая коррекция не выполняется (хотя некоторые контроллеры это реализуют аппаратно и не могут отключить автокоррекцию; в документации этот момент, кстати, не уточняется). Как правило, используются корректирующие коды Рида-Соломона, хотя последнее не обязательно. Математические законы позволяют не только определить место возникновения сбоя, но и даже восстановить несколько бит. При больших разрушениях можно определить только место сбоя, но достоверно восстановить информацию не удается.

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

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

 

К оглавлению На главную                          Наиболее часто встречающиеся проблемы с HDD IDE

Автор: Леонид Тарановский
B: - Что делать, если не загружается операционная система?

O: - Все проблемы, возникающие при использовании накопителей на жестких магнитных дисках (HDD), можно разделить на проблемы программные и аппаратные. Под программными проблемами подразумеваются все сбои в работе компьютерной системы, вызванные ошибками в прикладном или системном программном обеспечении, или конфликтами программного обеспечения, но не неисправностями самого оборудования. Обычно это проявляется как отсутствие загрузки операционной системы (ОС) (сообщения типа “missing operating system”, “Insert system disk and press any key”), в то время как после загрузки с дискеты сохраняется доступ к HDD как к физическому или логическому устройству. Причина такой ситуации - нарушение логической структуры информации на HDD (из-за ошибок в программах пользователя, ошибок самого пользователя, действий вирусов и т.п.). Для правильной диагностики причины, приведшей к проблемам с загрузкой ОС, необходимо поступить так:

Убедиться, что все кабели (питания и сигнальный) подсоединены правильно и надежно. Практически на всех HDD первый контакт шлейфа IDE - тот, который ближе к разъему питания. На кабеле он отмечен каким-нибудь цветом. При неправильном подключении, скорее всего не запустится системная плата (из-за того, что сигнал аппаратного сброса окажется соединен с сигнальной “землей”). Разъем питания должен обеспечивать хороший контакт. Падение напряжения в месте плохого контакта может не позволить двигателю раскрутить диски до номинальной скорости. Hадо также проверить установку перемычек на HDD, отвечающих за переключение режимов master/slave. При включении питания должен быть слышен звук раскрутки шпиндельного двигателя, после чего - несколько секунд работы позиционера (инициализация, калибровка). После чего звук вращения дисков должен быть ровным, а светодиод выбора накопителя (если он есть) - погаснуть.

Запустить системный Setup компьютера и попробовать определить параметры винчестера с помощью пункта “IDE HDD autodetect”. Не исключено, что в вашем компьютере разрядилась батарея, питающая CMOS память, и он “забыл” правильные параметры. Надо также проверить, какой установлен режим трансляции параметров (если BIOS поддерживает разные режимы) - Normal (CHS), LBA или LARGE. Normal используется для накопителей емкостью до ~500mb, LBA - для накопителей большей емкости, LARGE используется редко. Некоторые HDD (например, Conner CP3000 и некоторые другие Conner'ы емкостью до 100mb) выдают по autodetect'у такие параметры, под которыми работать не могут. В этом случае приходится вручную прописывать параметры, соответствующие какому-нибудь близкому по емкости стандартному типу. Для 40мб накопителей это чаще всего тип 17. Точно узнать те параметры, под которыми накопитель был отформатирован, можно, загрузив ОС с дискеты и посмотрев Diskedit'ом из Norton Utilities любой версии (в режиме просмотра физического диска) таблицу разделов (partition table). Координаты конца последнего раздела и будут искомыми параметрами (число головок+1, число цилиндров, число секторов). Некоторые старые типы HDD могут не работать на некоторых типах современных материнских плат с интегрированными контроллерами HDD. Подобное наблюдалось на MB ATC1425B с HDD CP3000, WD93044A на secondary HDC (вторичном IDE интерфейсе). Также нет ничего удивительного в том, что HDD емкостью до 400мб разных производителей (в основном Conner + Seagate, Conner + WD и другие пары с Conner) могут не работать нормально в паре master/slave на одном кабеле. Это вызвано различием во временных диаграммах работы накопителей ранних разработок. Единственный способ решить эту проблему - разнести конфликтующие накопители на разные контроллеры (один - на primary, другой - на secondary). Еще одна часто встречающаяся проблема, возникшая с появлением Intel TX chipset - несовместимость интегрированных контроллеров IDE TX чипсета со многими более старыми моделями HDD. Hесовместимость вызвана пониженным по сравнению со стандартным TTL уровнем логической “1” на TX. В результате многие старые HDD на TX начинают работать неустойчиво. Выход только один - замена HDD на поддерживающий режим UltraDMA. Итак, если параметры винчестера определяются autodetect'ом, то это обычно означает, что он успешно инициализировался и исправны, по крайней мере управляющий процессор, схемы управления двигателем и позиционером, канал чтения и микроконтроллер, а также читаются служебные дорожки и некоторая часть области данных пользователя. Иногда случается, что после того, как винчестер нормально определился BIOS'ом, его инициализация перед загрузкой операционной системы не проходит (не устанавливается сигнал готовности устройства), что приводит к появлению сообщения об ошибке инициализации HDD. Такое, в частности, случается со старыми HDD (ST157A, иногда с другими). Hеобходимо перезапустить компьютер кнопкой Reset или выключить/включить питание.

Загрузить операционную систему с дискеты. Для удобства рекомендуется подготовить дискету (на машине, не зараженной вирусами!) такого содержания: DOS (в составе: системные файлы, Fdisk.exe, Format.com, Sys.com - от соответствующей версии DOS или Windows95), Checkit 3.0, Diskedit.exe+Nlib200.rtl, и что-нибудь типа Volkov Commander (он занимает меньше места, чем NC). Дискета должна быть защищена от записи. Возможна ситуация, когда при подключенном HDD ОС не загружается и с дискеты, хотя при отключенном HDD загружается нормально. В этом случае вероятнее всего причина проблемы - заражение вирусом, изменившим системные области ОС. Хорошо, если вирус может быть обнаружен и удален одной из общеизвестных антивирусных программ (DrWeb, Aidstest, и др.). Иначе удалять вирус придется вручную Diskedit'ом с возможной потерей информации на HDD. Естесственно, для этого надо достаточно хорошо представлять себе структуру файловой системы данной ОС (или воспользоваться услугами того, кто в этом разбирается ;-)). При этом крайне нежелательно пользоваться программами типа Norton Disk Doctor (ndd), Scandisk и т.п., так как они способны исправить файловую систему, но не восстановить ее. Такое исправление часто только искажает картину и сильно затрудняет восстановление данных пользователя, а иногда делает его невозможным.

После успешной загрузки ОС с дискеты можно запустить тест HDD из Checkit. Тест должен пройти без ошибок для всего дискового пространства. Если это так, то “железо” почти наверняка в порядке (за исключением весьма редкого случая неисправности канала записи), и необходимо разбираться с системным программным обеспечением. В случае если хранившаяся на накопителе информация не представляет особой ценности, можно, воспользовавшись Diskedit'ом в режиме просмотра физического диска, заполнить кодом 00 начальный сектор 0 дорожки (или несколько начальных секторов - это не принципиально), а потом (после перезагрузки) заново создать логические диски и отформатировать их. Простая переразметка с помощью fdisk (без предварительного стирания MBR Diskedit'ом) бессильна против многих вирусов (например, OneHalf), так как они при этом остаются активными, перехватывая прерывания DOS, и заново заражают загрузочный сектор. Сообщения об ошибках в окне тестирования Checkit указывают на наличие дефектных участков в рабочей области дискового пространства. Сообщение “marked by DOS” означает, что данный участок отмечен как Bad cluster в FAT и не используется ОС. При этом “программные” дефекты, т.е. те кластеры, которые отмечены в FAT как bad, а на самом деле таковыми не являются, в окне тестирования отображены не будут. Небольшое количество дефектных секторов можно попытаться скрыть с помощью процедуры низкоуровневого форматирования.

Если описанная выше процедура привела к положительному решению возникшей проблемы, то, как говорится, не проблема и была. В случае, когда необходимо сохранить данные на HDD, процесс восстановления информации может оказаться сложным и длительным. Хотя в большинстве случаев это возможно, в том числе и расшифровка файлов и секторов, зашифрованных вирусом. По вопросам, связанным с диагностикой, ремонтом HDD и восстановлением информации, можно обращаться к автору данного текста (e-mail: mleonid@mailbox.alkor.ru, FIDOnet: 2:5030/304.18 AKA 2:5030/1167.11).

 

К оглавлению На главную                                Рекомендации по безопасному хранению информации на HDD

Автор: Леонид Тарановский
В: Какие существуют способы избежать потери информации при неполадках в работе HDD?

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

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

1) Логическая организация дискового пространства: не менее 2-х логических дисков, первый логический диск (С:) должен быть предназначен только для операционной системы и легко восстановимых приложений. Причина - первый логический диск подвержен наибольшей опасности в случае сбоев. Представьте ситуацию: кто-то по ошибке запустил программу низкоуровневого форматирования HDD и понял свою ошибку только где-то во время форматирования 10-го цилиндра... Потеряна таблица разделов, FAT, корневой каталог диска С:. А второй логический диск при этом останется нетронутым.

2) "Великое и ужасное" нашествие вируса WIN95.CIH заставило по-новому взглянуть на плюсы и минусы файловых систем FAT16 и FAT32. Если ранее наиболее предпочтительной с точки зрения надежности казалась FAT16 (из-за более простой и знакомой структуры), то теперь надо признать, что информацию на разделах FAT32 легче восстановить при повреждениях, наносимых этим вирусом. Связано это со значительно большей длиной FAT (из-за большего количества кластеров и большей разрядности элементов FAT). В результате действия вируса оказывается заполнено "мусором" большое число начальных секторов жеского диска, в которое входят таблица разделов, Boot record, обе копии FAT и корневой каталог (при FAT16). В случае же использования FAT32 "мусор" обычно накрывает только таблицу разделов, Boot record и часть первой копии FAT, так что полностью восстановить раздел не составляет большого труда. Возможно, конечно, и восстановление данных из раздела FAT16, разрушенного описанным выше способом (и таких восстановлений в конце апреля - начале мая вот уже 2 года подряд нами проделано немало), но оно связано со сканированием всего логического диска для поиска каталогов и файлов, и восстановлением FAT в предположении, что файлы были нефрагментированными. Соответственно, процент удачного восстановления данных оказывается от 70 до 90, против 100% для разделов FAT32.

3) Использование длинных имен файлов, а также использование в именах файлов символов, не входящих в стандартную кодовую таблицу DOS (символы национальных алфавитов, в т.ч. русского), затрудняет любые операции с такими файлами, так как требует использования соответствующего программного обеспечения. Hапример, копирование подобных файлов при неработоспособной из-за сбоя Windows 95 связано с определенными трудностями.

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

5) При работе с различными приложениями используются различные форматы данных. В случае серьезного повреждения файловой системы может возникнуть необходимость ручного восстановления цепочки кластеров, принадлежавших файлу данных пользователя. Если формат файла данных известен, то теоретически возможен поиск его фрагментов по всему диску и восстановление исходной цепочки. Hа практике подобным образом восстанавливаются обычно только файлы текстовых форматов (.txt, .dbf и т.п.) по известным фрагментам текста (кодов символов). Фрагменты файлов других форматов сложнее идентифицировать по их содержимому, еще сложнее определить порядок следования этих фрагментов. Из этого следует, что, например, текст надежнее "набивать" в .txt формате DOS (и сохранить этот вариант как резервный), а уже затем импортировать его в графические редакторы (Word, и др.). Возможен и обратный вариант: сохранить готовый документ .doc в текстовом формате как резервную копию на крайний случай (ведь документы Word, кроме всего прочего, подвержены заражению макровирусами). При потере файла .doc в этом случае останется всего лишь восстановить форматирование, шрифты, картинки, а не вводить заново весь текст.

Автор надеется, что данные рекомендации Вам не пригодятся ;-), но допускает, что они окажутся полезными и уменьшат количество отрицательных эмоций, вызванных работой на персональном компьютере.
Тарановский Л. О., (leonid@mailbox.alkor.ru)

 

К оглавлению На главную                                 Последовательный способ обмена информацией (SATA)

Впервые спецификация, описывающая последовательный способ обмена информацией, была представлена на Intel Developer Forum 2000 в виде версии 0.9 и была окончательно доработана до версии 1.0 в конце того же года. Первые продукты начали появляться в 2001 году, а массовое производство началось полтора года спустя - в 2002-2003 годах.

Последовательный интерфейс полностью эмулирует параллельный, используя для обмена те же регистры и команды, обеспечивая совместимость с предыдущими версиями ATA. В SATA нет понятия главного и подчиненного устройства. Все подключенные накопители являются независимыми устройствами, что позволило избавиться от необходимости использования перемычек для выбора главного (Master) и подчиненного (Slave) устройства в ATA канале.

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

Информационный кабель последовательного интерфейса состоит из 7 проводов, из них 3 провода не используются, а оставшиеся 4 используются парами (одна для передачи, другая для приема). Таким образом, кабель стал тонким и круглым, что позволило несколько улучшить охлаждение компонентов внутри системного блока. Разъем конструктивно предусматривает защиту от неправильного подключения.

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

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

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

® 2003-2005 "HCode software"

К оглавлению    На главную                         Восстановление загрузочных секторов разделов NTFS

 

Переводчик: Владимир Володин 06/01/2007

 

Что делать, когда раздел диска на сервере или рабочей станции становится недоступным?

 

Симптомы

Когда раздел диска на сервере или рабочей станции становится недоступным или Disk Administrator определяет его как "неизвестный" (unknown), причина может заключаться в испорченном или поврежденном загрузочном секторе. Эта статья поможет вам восстановить загрузочный сектор с помощью второй его копии, которую сохраняет NTFS.

Имейте в виду, что для применения советов описанных в статье, должны выполняться два условия:

1. Файловая система поврежденного раздела диска NTFS. FAT сейчас не сохраняет копию загрузочного сектора.

2. Возможность загрузки компьютера в Windows NT или 2000 или XP.

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

Решение проблемы

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

В NT 3.5x вторая копия хранится в центре логического диска.

В NT 4.0 и Windows 2000 она перенесена в конец логического диска, что требует другой техники восстановления. В описанном примере будет использоваться специальная утилита Disk Probe (dskprobe.exe) для NT, которая поставляется в комплекте NT V4.0 Resource Kit. Ее можно переписать и в составе пакета средств поддержки SP2 для Windows XP на этой странице. Disk Probe работает и под NT V3.5x.

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

Восстановление загрузочного сектора основного раздела диска

1. В Disk Probe выберите Drives, Physical Drive, выберите PhysicalDriveX, где X - номер диска. Чтобы определить номер диска, используйте утилиту Disk Administrator. Например, если в системе установлены три диска SCSI, c номерами SCSI ID 1,3 и 5, Disk Administrator покажет их номера 0, 1, 2. После отключения диска SCSI ID 3, его место займет следующий (5). В нумерации Disk Administrator он станет 1.

2. Два раза нажмите на PhysicalDriveX, который вы хотите восстановить. В поле около него уберите опцию Read Only и нажмите кнопку Set Active. Вы заметите, что Active Handle установилась в PhysicalDriveX, нажмите OK.

3. Из меню Sectors выберите Read и укажите 0 для Starting Sectors и 1 для Number of Sectors. Нажмите Read. После этого вы окажадеть о основной загрузочной записи физического диска (MBR). В этом можно убедиться по ASCII тексту в правой части окна, начиная со смещения 8B, которое должно отображать "Invalid Partition Table". Из меню View выберите Partition Table. В области под названием "partition table index" с помощью полосы скроллинга выберите раздел под вопросом и кликните его дважды. Слева внизу показан относительный номер сектора Relative Sector, запишите это значение и выберите закладку Go за этой областью.

4. Теперь из меню View выберите Bytes. В зависимости от того, как поврежден загрузочный сектор, вы можете даже рассмотреть некоторые строки текста в правой верхней части окна или увидеть сообщение об ошибке чтения "A disk Read error ocurred...", начиная со смещения 130. Из меню View выберите "NTFS bootsector".

5. Выбираем "Volume End" для NT V4.0 или "Volume Middle" для NT V3.5x. Сейчас вы должны находиться на архивной копии загрузочного сектора. Если вы увидите сообщение "incomplete Data Read" или, после просмотра, определите, что это не копия загрузочного сектора, это может значить, что ваш основной сектор был поврежден, поэтому мы получили неверное значение адреса архивной копии. В таком случае переходите к следующему разделу нашей статьи, чтобы узнать, как восстановить загрузочный сектор, если он отсутствует или сильно поврежден. Если же все нормально, переходим к следующему пункту.

6. Из меню View выбираем Bytes и проверяем, что это загрузочный сектор NTFS. Когда мы в этом убедились, в меню Sectors выберем Write. Убедитесь, что в диалоговом окне отображаются верные значения Handle и PhysicalDrive. В поле Starting Cecjtor to write Data укажите относительный номер сектора (Relative sector), записанный вами в пункте 4. Нажмите кнопку Write.

7. В меню Sectors укажите относительный номер сектора (Relative sector), оставив в поле количество секторов (Number of sectors) значение 1, выберите Read. Теперь убедитесь, что данные были записаны успешно.

8. Закройте Disk Probe и перезагрузите компьютер.

Восстановление копии загрузочного сектора, если оригинальной копии нет, или она сильно повреждена

Если загрузочного сектора нет или он поврежден на столько, что не имеет корректной информации о количестве секторов, восстановление можно провести по такому плану:

1. В Disk Probe выберите Drives, Physical Drive. Выбираем PhysicalDriveX, где Х - номер диска, который можно узнать в Disk Administrator.

2. Двойным нажатием открываем нужный PhysicalDriveX, в поле внизу снимаем отметку Read Only и выбираем Set Active. Вы должны заметить, что значение Active Handle установится на PhysicalDriveX. Нажимаем OК.

3. Из меню Sectore выбираем Read. В поле начальный сектор (Starting Sector) устанавливаем значение 0, а для количества секторов (Number of Sectors) - 1. Нажимаем Read.

4. Сейчас вы находитесь в загрузочной записи (MBR) физического диска. В этом можно убедиться по тексту, который выводится с позиции 8B, который должен выглядеть примерно так: "Invalid Partition Table...". Из меню View выбираем Partition Table. Осталось выбрать необходимый номер раздела, отмеченый знаком вопроса.

5. Дальше нам понадобятся два значения: Total Sectors (общее количество секторов) и Relative Sectors (относительный номер сектора). Запишите значение Relative Sectors, именно здесь должен находиться загрузочный сектор. Чтобы найти его копию, нужно будет провести несложные вычисления.

6. Выбираем Sectors. В поле Starting sector вводим значение, определенное на предыдущем шаге. В поле Number of sectors вводим 1. Нажимаем Read и мы должны попасть на архивную копию загрузочного сектора.

7. Из меню View выбираем Bytes и проверяем, действительно ли это сектор NTFS. После проверки заходим в меню Sectors, выбираем Write, и проверяем в появившемся диалоговом окне значения Handle и PhysicalDrive. В поле "Starting Sector to write Data" укажите относительный номер сектора, который вы записывали (Relative Sectors) и нажмите кнопку Write.

8. В меню Sectors еще раз укажите относительный номер сектора, в поле количество секторов (Number of sectors) введите 1, выберите Read. Теперь вы можете убедиться, что данные были записаны правильно.

9. Закройте Disk Probe и перезагрузите компьютер.

Восстановление загрузочных секторов расширенного раздела диска

1. В Disk Probe выберите Drives, Physical Drive. Выбираем PhysicalDriveX, где Х - номер диска, который можно узнать в Disk Administrator.

2. Двойным нажатием открываем нужный PhysicalDriveX, в поле внизу снимаем отметку Read Only и выбираем Set Active. Вы должны заметить, что значение Active Handle установится на PhysicalDriveX. Нажимаем OК.

3. Из меню Sectore выбираем Read. В поле начальный сектор (Starting Sector) устанавливаем значение 0, а для количества секторов (Number of Sectors) - 1. Нажимаем Read.

4. Сейчас вы находитесь в загрузочной записи (MBR) физического диска. В этом можно убедиться по тексту, который выводится с позиции 8B, который должен выглядеть примерно так: "Invalid Partition Table...". Из меню View выбираем Partition Table. В этом режиме в поле Partition Table Index выберите раздел расширенной области диска. Далее в поле System ID должно появиться значение Extended. Если необходимый раздел является четвертым логическим диском в расширенной области, кнопку Next partition придется нажать четыре раза. В поле System ID должно быть значение NTFS.

5. В области Pattition Table Index два раза нажимаем на необходимом разделе в расширенной области диска. В System ID должно появиться значение Extended.

Переходим к логическому тому, который нужно восстановить. Если он второй в этой области диска, кнопку Next Partition нужно нажать два раза. При переходах между томами расширенного раздела диска в поле System ID будет отображаться файловая система каждого тома.

Когда раздел, подлежащий восстановлению, найден, запишите номер текущего сектора (Current Sector в заголовке Disk Probe), относительный номер сектора (relative sector) и общее количество секторов в этом томе (total sectors). Эта информация понадобится нам для рассчета расположения архивной копии загрузочного сектора.

6. Нажмите кнопку Go, чтобы перейти к загрузочному сектору поврежденного тома. Запишите номер этого сектора из заголовка окна (Boot Sector).

Чтобы проверить, что вы находитесь на правильном секторе, выберите Bytes из меню View. Если сектор сильно поврежден, вы увидите в правой части окна сообщение об ошибке.

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

7. Произведем необходимые вычисления:

8. Выбираем Sectors, Read и вводим в поле начальный сектор (Starting sector) вычисленное значение. Количество секторов (Number of sectors 1). Выбираем Read и вы должны оказаться в секторе, где находится архивная копия загрузочного сектора.

Из меню View выбираем Bytes и убеждаемся, что это загрузочный сектор NTFS. Если это не так, в правом столбце текста должно появиться сообщение об ошибке. В этом случае не продолжайте, начните весь процесс сначала, чтобы исключить ошибки.

9. После того, как вы убедились, что нашли архивную копию загрузочного сектора, запишите ее поверх основной. В меню Sectors выбираем Write. В появившемся диалоговом окне проверьте значения Handle и PhysicalDrive. В поле Starting Sector (начальный сектор) введите номер сектора, в котором находится поврежденный загрузочный сектор. Нажмите кнопку "Write it" для записи.

10. В меню Sectors выберите пункт Read. В качестве начального сектора снова укажите номер сектора в который вы записывали архивную копию, количество секторов снова 1. Выберите Read и убедитесь в том, что данные были записаны.

11. Закройте Disk Probe и перезагрузите компьютер.

Описанные действия подходят для:

Источник: Майкрософт

К оглавлению На главную

 

Hosted by uCoz