Показаны сообщения с ярлыком Восстановление жестких дисков. Показать все сообщения
Показаны сообщения с ярлыком Восстановление жестких дисков. Показать все сообщения

среда, 6 марта 2013 г.

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

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

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

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

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

Один из самых частых отказов винчестеров фирмы 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 и отключить аналогичные опции в blose. При этом, проиграв в скорости, все же можно заставить жесткий диск сносно работать. Понятно, что эксплуатировать восстановленный таким образом диск длительное время нерационально по причине потери быстродействия. Лучше приобрести новый, на который и скопировать всю информацию. С другой стороны, такой жесткий диск все же остается полностью рабочим и успешно может служить, например, в качестве резервного.

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

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

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

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

Если же контроллер не позволяет программно управлять предкомпенсацией, то еще не все потеряно. Попробуйте перед каждым обращением делать сброс контроллера, а точнее, его рекалибровку (команда ixh). В некоторых случаях это срабатывает, поскольку с целью оптимизации скорости обмена предкомпенсацией обычно управляет не один блок. И, кроме того, иногда контроллер кэша не учитывает предкомпенсацию, а его сброс реализует последнюю аппаратно. К сожалению, это по большей части догадки и результаты экспериментов автора, так как техническая документация фирм-производителей по этому поводу не отличается полнотой, а местами содержит противоречия. Можно испытать и другой способ - попробовать перезаписать микрокод контроллера (команда 92h). Конечно, это доступно только для специалистов очень высокого класса, но ведь доступно! Заметим, что не все контроллеры поддерживают такую операцию. С другой стороны, это и хорошо, так как уменьшает вероятность сбоя и не дает некорректно работающим программам (вирусам в том числе) испортить дорогое устройство. Жесткие диски от samsung обладают еще одной неприятной особенностью - часто при подключении шлейфа "на лету", при включенном питании, они перестают работать. Внешне это выглядит так: индикатор обращения к диску постоянно горит, но диск даже не определяется biosom, или определяется, но все равно не работает. Близкое рассмотрение показывает, что на шине пропадает сигнал готовности устройства. В остальном контроллер остается неповрежденным. Разумеется, если не обращать внимание на отсутствие сигнала готовности, то с устройством можно общаться, делая вручную необходимые задержки (поскольку физическую готовность устройства уже узнать не представляется возможным, приходится делать задержки с изрядным запасом времени). При этом, к сожалению, придется отказаться от dma-mode (а уж тем более ultra-dma) и ограничиться pio 1 (с небольшим риском - pio 2) режимом. Конечно, писать соответствующий драйвер вам придется опять самостоятельно. Разумеется, скорость обмена в режиме pio 1 по сегодняшним меркам совершенно неудовлетворительна и не годится ни для чего другого, кроме как копирования информации со старого на новый винчестер, но некоторые "нечистоплотные" продавцы компьютерной техники как-то ухитряются устанавливать подобные экземпляры на продаваемые машины. Будьте осторожны! Учитывая, что написание подобных драйверов для win32 - трудоемкое занятие, большинство ограничивается поддержкой одной лишь ms-dos, и вовсе не факт, что компьютер, демонстрирующий загрузку win95, содержит исправный, а не реанимированный подобным образом жесткий диск.

У жестких дисков фирмы samsung при подключении "налету" может появляться другой неприятный дефект - при запросах на чтение контроллер периодически "повисает" и не завершает операцию. В результате "замирает" вся операционная система (впрочем, windows nt с этим справляется, но, вероятно, не всегда). На первый взгляд может показаться, что с этого винчестера несложно скопировать ценные файлы, но при попытке выполнить это выясняется, что диск "зависает" все чаще и чаще и копирование растягивается до бесконечности. Однако если выполнить сброс контроллера, то можно будет повторить операцию. Это можно сделать аппарат -но, подпаяв одну кнопку на линию сброса и статуса. Последнее нужно для указания на ошибочную ситуацию, чтобы операционная система повторила незавершенную операцию. Если этого не сделать, то часть секторов не будет реально прочитана (записана). Или можно выполнять сброс автоматически, например, по таймеру. Чтобы не сталкиваться с подобной ситуацией, никогда не следует подсоединять/отсоединять винчестер при включенном питании. Очень часто это приводит к подобным ошибкам, хотя производители других фирм, по-видимому, как-то от этого все же защищаются, ибо аналогичной ситуации у них практически не встречается. Все же не стоит искушать судьбу... От аппаратных ошибок теперь перейдем к дефектам поверхности. Заметим сразу, что последнее встречается гораздо чаще и проявляется намного коварнее. Обычно это ситуация, в которой мало что можно предпринять. Но достичь главной цели - спасти как можно больше уцелевших данных - довольно часто удается. Возьмем такую типичную ситуацию как ошибка чтения сектора. Маловероятно, чтобы сектор был разрушен целиком. Чаще всего "сыплется" только какая-то его часть, а все остальные данные остаются неискаженными. Существуют контроллеры двух типов. Первые, обнаружив расхождение контрольной суммы считанного сектора, все же оставляют прочитанные данные в буфере и позволяют их извлечь оттуда, проигнорировав ошибку чтения. Вторые либо очищают буфер, либо просто не сбрасывают внутренний кэш, в результате чего все равно прочитать буфер невозможно. На практике обычно встречаются последние. При этом сброс кэша можно инициировать серией запросов без считывания полученных данных. Кэш при этом переполняется, и наиболее старые данные будут вытолкнуты в буфер. Остается их только прочесть. Конечно,-это крайне медленно, но, к сожалению, универсальной команды сброса кэша не существует. Разные разработчики реализуют это по-своему (впрочем, иногда это можно найти в документации на чипы, используемые в контроллере). western digital сообщает в техническом руководстве что при длинном чтении сектора без повтора контроль сектора не выполняется и он будет-таки целиком помещен в буфер. Кстати, так и должно быть по стандарту. Увы, остальные фирмы от него часто отклоняются по разным соображениям. Остается определить, какие же из прочитанных данных достоверные, а какие нет (если этого не видно "визуально" - например, в случае текстового или графического файлов)? Разумеется, в подобных рамках задача кажется неразрешимой, но это не совсем так. Дело в том, что можно произвести не только короткое, но и длинное чтение (ox22h req ploin long with retry), для чего можно использовать следующую процедуру. При этом кроме собственно данных читаются также и корректирующие коды. Автоматическая коррекция не выполняется (хотя некоторые контроллеры это реализуют аппаратно и не могут отключить автокоррекцию; в документации этот момент, кстати, не уточняется). Как правило, используются корректирующие коды Рида-Соломона, хотя последнее не обязательно. Математические законы позволяют не только определить место возникновения сбоя, но и даже восстановить несколько бит. При больших разрушениях можно определить только место сбоя, но достоверно восстановить информацию не удается.

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

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


источник www.wm-help.net

Восстановление информации на жестком диске


Это руководство подскажет, как восстановить информацию на жестком диске, даже если на нем поврежден раздел файловой системы (в том числе NTFS). Мы подскажем, как его восстановить и не потерять своих данных и как решить другие возможные проблемы, связанные с потерей информации на жестком диске.
Если вы достаточно долго работаете с компьютером, для вас не секрет, что жесткий диск нельзя считать надежным местом для хранения данных. В отличие от компакт-дисков и других средств для хранения данных, жесткий диск – это механическое устройство, которое в процессе работы изнашивается, как любой механизм. Кроме механической поломки существует очень много способов потерять данные на диске, на котором их очень просто и быстро изменить.
Решение большинства проблем с жесткими дисками при работе с Windows 98 и более ранними системами сводилось к использованию программы fdisk и ряда других утилит, позволяющих производить разметку и восстановление дисков. Сейчас применение таких утилит даже опытным пользователем иногда приводит к необратимым последствиям…
Представьте себе такую ситуацию: Во время работы над статьей по обновлению компьютеров, когда было написано уже более 10000 символов и оставалось несколько предложений и снимков экрана, все, что нужно было сделать – запустить fdisk на компьютере с двумя операционными системами Windows 98/XP Pro и сохранить несколько снимков экрана. У меня в статье несколько абзацев описывали работу с fdisk, предупреждая читателей, не применять эту программу, если нет полной уверенности в своих действиях…
Итак, мне нужно было получить всего несколько снимков экрана, но я забыл, что fdisk при запуске производит запись данных в некоторые области диска, чтобы в них до этого не находилось. Об этом я вспомнил только тогда, когда получил нужные мне копии экрана и перезагрузил компьютер в режиме Windows XP, вернее, хотел перезагрузить… После довольно долгого ожидания система так и не загрузилась.
Исчез основной раздел диска?
Пострадавшим диском, с которым мы будем иметь дело, был Fujitsu 17 ГБ с двумя разделами NTFS по 5 ГБ (XP Home и Professional) и 6 ГБ неиспользованного пространства. После описанного выше инцидента система в обоих разделах XP перестала загружаться.
После подключения диска к компьютеру с Windows 2000, я запустил «управление дисками». Чтобы сделать это в XP или в 2000, нажмите правой кнопкой мыши на «мой компьютер», выберите пункт «управление», а в появившемся окне – «управление дисками».
Основной раздел, на котором и находилась моя статья, отображался как не отформатированный, и операционная система не могла его прочитать. Система, находящаяся во втором разделе, не могла загрузиться, но он хотя бы распознавался как отформатированный и из него можно было скопировать нужные файлы. К сожалению, все нужные мне данные были в первом разделе.
Что же делать? Есть несколько способов извлечения данных, но прежде чем их рассматривать, нам нужно остановиться на том, что представляет собой файловая система, и как в ней хранятся ваши данные.
Файловые системы
Файловая система определяет метод, который используется для хранения данных на жестком диске или на любом другом устройстве, которое применяется для хранения информации. Свободное пространство на жестком диске делится на разделы, в которых создаются логические диски (С:, D:,…).
Windows может работать с несколькими файловыми системами, которые называются NTFS (NT File System) и FAT (File Allocation Table). FAT – более ранняя файловая система, применявшаяся в DOS под названием FAT-16 и в Windows 9x/Me – под названием FAT-32. Основное различие между FAT-16 и 32 заключается в максимальном объеме дисков и файлов, с которыми они могут работать. FAT-16 может использовать диски объемом до 2 ГБ. Операционные системы Windows 2000 и XP полностью совместимы с FAT, даже притом, что стандартно они используют другой метод хранения данных.
Windows NT, 2000 и XP работают с файловой системой NTFS, обеспечивая лучшую безопасность и надежность хранения данных. Кроме того, NTFS позволяет определять права доступа для каждого файла. Все эти файловые системы используют таблицу разделов и загрузочные записи (MBR), которые хранятся в первом секторе каждого диска, определяя, какой раздел является загрузочным.
Если информация в MBR повреждена, операционная система перестает с него загружаться, а разделы диска могут определяться как пустые.
Разделы NTFS
Первый сектор раздела NTFS зарезервирован как загрузочный. Он содержит информацию, позволяющую системе работать с этим разделом, без этой информации раздел будет недоступным.
Копия загрузочного сектора хранится в последнем секторе раздела. Эквивалент такого сектора в FAT тоже называется загрузочным и хранится в первом секторе раздела. Разница с FAT заключается в том, что FAT не хранит копии этой информации, делая восстановление более трудным процессом…
Первый файл, который хранится на диске, называется Master File Table (MFT) – это таблица, в которой находится информация о расположении всех файлов, их свойствах и правах доступа. NTFS хранит копию и этой информации. FAT имеет аналогичную таблицу размещения файлов File Allocation Table (FAT), резервная копия которой тоже есть на диске.
Если какой-то файл удаляется, в том числе из «корзины», обе файловые системы просто отмечают его как удаленный. Данные реально не удаляются с диска, но место, которое они занимают на диске, считается свободным. Так что все файлы можно восстановить, если только вы ничего не записывали на диск после их удаления.
В моем случае применялся диск с двумя разделами NTFS. При запуске fdisk, программа записала что-то в важные области диска в обоих разделах. В результате, первый раздел имеет поврежденный загрузочный сектор. Второй раздел просто имеет поврежденную область с системными файлами, и с него система тоже не загружается, но файлы на нем доступны. Я перенес диск на другой компьютер. Именно на этом месте мы и прервались.
Предупреждение: все, описанное с этого момента, может при невнимательном использовании привести к удалению разделов диска и файлов. Если у вашего жесткого диска физическая неполадка, например, он издает странные звуки или дымится, ничто, описанное далее, не поможет, выключите компьютер, снимите жесткий диск и несите его в сервисную мастерскую. Попытки самостоятельно ремонта, скорее всего, приведут к значительно более дорогим последствиям.
Восстановление информации
Первое правило, которое нельзя нарушать, если вы собираетесь восстановить информацию на поврежденном жестком диске – не запишите ничего поверх.
Если вы случайно удалили раздел, не создавайте на его месте новый, оставьте все, как есть.
Если вы удалили файлы из корзины, а потом поняли, что удаленная информация вам нужна, не записывайте ничего на диск.
Это же относится и к разделам дисков. Если вы не создадите на месте потерянного новый раздел, то информация о старом все еще сохранится.
В моем случае на диске сохранились копии информации о разделах и критических файлах. Один раздел недоступен из-за перезаписанного загрузочного сектора, а второй перестал быть загрузочным, но информация из него все еще читается. Забегая вперед, скажу, что все (или почти все) удалось восстановить. А сейчас остановимся на том, как это сделать.
Самый неудобный вариант, когда у вас на диске один раздел, и именно он пропал. Тогда лучше всего перенести винчестер на другой компьютер. Работа на втором компьютере имеет много преимуществ. Не нужно делать диск загрузочным, можно просто добиться читаемости файлов и переписать нужную информацию с помощью проводника Windows.
Если повреждены системные файлы, и система не загружается, но раздел доступен, файлы легко прочитаются на другом компьютере, и проблема будет решена.
Программы для восстановления файлов
Если у вас нет возможности физически перенести жесткий диск, не поддавайтесь искушению переустанавливать систему. Есть несколько программных средств, которые позволят вам загрузить компьютер под управлением альтернативной операционной системы и помочь вам восстановить ваши файлы.
Простейший путь получить доступ к файлам на жестком диске – загрузить компьютер с помощью загрузочной дискеты DOS и воспользоваться программой для восстановления данных наподобие testdisk, рассмотренной ниже.
Имейте в виду, что при работе с одним разделом, который к тому же и не виден, восстановление данных становится значительно более сложной задачей. Многим программам для восстановления необходимо место, чтобы копировать восстановленные данные. В этом случае у вас нет никаких гарантий, что вы не уничтожите больше, чем восстановите. Если вы не можете перенести жесткий диск на другой компьютер, подумайте над подключением еще одного жесткого диска, на который можно будет установить систему и программу восстановления.
Есть несколько программ, например, ‘Winternals Disk Commander’ и ‘ERD Commander’, которые загрузят ваш компьютер под управлением DOS или другой операционной системы и начнут процесс восстановления. К сожалению, ни одна из этих программ не является бесплатной.
Если вы подключили свой диск к другому компьютеру или подключили к вашему компьютеру диск с установленной операционной системой, можете попробовать загрузить компьютер и скопировать нужные данные. У вас не получиться, если утрачена информация о разделах. В таком случае система просто «не увидит» логических дисков.
Бесплатные программы для восстановления информации
Существующие бесплатные программы, как правило, менее функциональны, чем платные. Это связано с тем, что разработчики понимают, что если утерянные данные действительно важны, то люди готовы будут заплатить за программу для их восстановления.
Прежде, чем делать что-либо дальше, внимательно все прочитайте.
FINDNTFS
FindNTFS (http://inet.uni2.dk/~svolaf/utilities.htm) – это бесплатная программа, которая может найти и восстановить поврежденный раздел NTFS. Есть несколько разных версий, среди которых есть и предназначенная для работы после загрузки в режиме DOS. Ее можно использовать, если Windows не загружается. FindNTFS кроме поиска и восстановления разделов NTFS имеет еще несколько полезных функций, которые нам сейчас не нужны, и мы на них останавливаться не будем.
Чтобы использовать findntfs, загрузите компьютер с помощью загрузочной дискеты DOS, с записанным на нее файлом findntfs.exe. Получить список файлов и папок на восстанавливаемом диске можно, набрав в командной строке 'FINDNTFS # 1 1 1 c:\recoverlog.txt files'. Символ # нужно заменить на номер диска. Если у вас только один жесткий диск, то его номер будет 1, а если дисков несколько, то номер 1 получит физический диск, на котором находится логический диск ‘С:’.
Эта команда говорит findntfs, искать по всему указанному диску файлы NTFS и вывести их список в текстовый файл на диске С:. Вы можете задать любое имя файла и на любом диске. Только не создайте его на том же диске, информацию на котором вы хотите восстановить. Как только файл будет создан, вы можете его просмотреть. Он должен выглядеть примерно так:
Если все прошло удачно, вы сможете найти в списке нужные файлы. Папки, в которых их нашла findntfs, могут не совпадать с тем, где они находились реально. Прежде, чем переходить к следующим шагам, запишите номера папок с нужными файлами.
Чтобы восстановить файлы с помощью findntfs, нужно воспользоваться командой ‘copy’. Ограничение программы заключается в том, что она записывает файлы в папку, в которой сама же и находится. Так что перед следующим шагом убедитесь, что там достаточно места.
Выполните команду ‘findntfs # 1 1 1 copy #’ (первый символ # нужно заменить на номер диска, как в предыдущей команде, а второй – на номер нужной папки). Можно указать до 10 номеров папок. Если вы не укажете номер папки, программа попытается скопировать все файлы с указанного диска.
Проверьте восстановленные файлы, чтобы убедиться, что они не повреждены.
У программы findntfs есть еще одно существенное ограничение, она не может копировать файлы в раздел с файловой системой FAT. Это делает восстановление невозможным без раздела NTFS и поддержки его операционной системой (Windows NT/2000/XP). В таком случае, восстановить файлы, загрузив компьютер с помощью диска с DOS, не удастся. Проблему может решить еще одна бесплатная утилита NTFS reader.
NTFS reader для DOS
NTFS reader для DOS (http://www.ntfs.com/products.htm) – это свободно распространяемая программа, которая позволяет копировать файлы NTFS в разделы DOS (FAT). Если загрузка с вашего раздела NTFS невозможна, вы можете скопировать эту программу на загрузочную дискету и переписать с ее помощью все нужные файлы.
Ограничение этой программы заключается в том, что она не может читать данные из разделов с поврежденными загрузочными секторами или с дисков с поврежденными таблицами разделов. Так что перед ее использованием, нужно сделать раздел NTFS «читаемым» и уже после этого копировать с него нужные файлы.
Этих ограничений не имеет коммерческая утилита 'Active@ Partition Recovery' (http://www.ntfs.com/), которая может найти потерянный раздел и скопировать из него данные.
Эти программы предназначены для работы под управлением DOS, с ними можно будет работать и под управлением Windows 9x/ME, но не в Windows 2000 или XP из-за ограничений на доступ к дискам, действующих в этих операционных системах.
TESTDISK
TestDisk (http://www.cgsecurity.org/testdisk-4.4.zip) – это программа, существующая в версиях для DOS и Linux, которую можно использовать для поиска и восстановления разделов FAT и NTFS. С помощью нее можно восстановить загрузочные секторы по их копиям.
С помощью именно этой программы я и восстановил свой первый раздел NTFS, которого вообще не было «видно». Работать с testdisk не очень сложно, главное быть осторожным и прочитать документацию (в папке ‘doc’).
После запуска программы вы увидите список доступных физических дисков:
Укажите диск, разделы которого нужно восстанавливать, и выберите пункт ‘analyze’.
Программа выведет список существующих на данный момент разделов и, после нажатия ‘enter’, начнет собственный процесс поиска разделов.
После окончания поиска нажмите ‘enter’ еще раз. Дальше желательно выбрать пункт ‘search!’, чтобы произвести более тщательный поиск. Если вдруг вы не видели вначале ни одного раздела из-за повреждения таблицы разделов, testdisk должен их найти.
Проверьте эту информацию и выберите ‘write’, чтобы записать новые сведения о разделах на диск. Если потеря раздела была единственным повреждением, то на этом процесс восстановления для вас закончен. Вы получите полностью восстановленную систему. Но, если поврежден загрузочный сектор раздела (как в моем случае), придется выбрать пункт ‘advanced’, а после него – ‘boot’.
Testdisk сравнит загрузочный сектор с его копией. Если они разные, то программа задаст вам вопрос, хотите ли вы переписать в загрузочный сектор его копию.
Эта операция сделала мой «потерянный» раздел со статьей снова доступным. Testdisk – одна из самых полезных программ для восстановления разделов диска. Конечно, ей не хватает графического интерфейса и запускается она только под управлением DOS, но не это главное для программы, способной восстановить нужную информацию за несколько минут.
Есть много разных бесплатных утилит для восстановления данных. Вот несколько, восстанавливающих удаленные файлы: PC INSPECTOR (http://www.pcinspector.de/file_recovery/UK/welcome.htm) и Restoration для 9x/NT/2K/XP (http://hccweb1.bai.ne.jp/~hcj58401/REST2514.EXE). Если задаться целью, можно найти много подобных программ со своими достоинствами, но мы не ставили перед собой такой цели, так как всего описанного, на наш взгляд, вполне достаточно для решения большинства проблем, связанных с восстановлением поврежденных разделов и удаленных файлов.
Коммерческие утилиты для восстановления данных
Существует и много платных программ для восстановления данных. Большинство из них работает только под управлением Windows. С ними удобно работать, если вам удалось подключить жесткий диск к другому компьютеру или подключить к этому же компьютеру другой жесткий диск с операционной системой. Два хороших примера таких программ: ‘Active file recovery’ и ‘R-Studio’.
Я не проводил серьезного тестирования коммерческих программ, но мне приходилось иметь дело с их демо-версиями, которые просто сообщают, есть ли файл на диске и не поврежден ли он. Исключением была демонстрационная версия R-Studio, позволявшая восстанавливать файлы, не большие 64 КБ. Она удачно скопировала удаленные файлы со статьями.
Из своего опыта работы, я могу порекомендовать ‘Winternals Disk Commander’, но вам придется поверить на слово, так как создатели программы не предоставляют демо-версий. Ниже мы привели список платных программ для восстановления данных, к помощи которых вы можете обратиться, если бесплатные утилиты, рассмотренные в этом обзоре, не смогли решить ваших проблем.



Источник  www.rtfm.fsay.net

вторник, 18 декабря 2012 г.

Реанимация жёсткого диска

Спешу поделиться полезностями. На этот раз в пользовании домашними компьютерами и связанными с этим проблемами.

Итак, у товарища при скачкЕ напряжения на компьютере полетел жёсткий диск.

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

Предварительный диагноз:
Появились битые сектора, повреждён загрузочный сектор, слетела файловая система или что-то подобное…

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

Итак, у товарища при скачкЕ напряжения на компьютере полетел жёсткий диск.

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

Предварительный диагноз:
Появились битые сектора, повреждён загрузочный сектор, слетела файловая система или что-то подобное…

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

Перепробовал кучу разных программ для восстановления удаленных или поврежденных файлов.
Пару программ (R-Studio, например) даже нашли все папки и файлы, но восстанавливали их криво — ни один документ не открывался. При этом программа явно указывала, что на диске файловая система FAT.

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

Оставил на ночь с проверкой и исправлением плохих секторов программу HDD Regenerator.
Сутра обнаружил "синий экран смерти" с надписью типа: "конфликт с новым оборудованием или программным обеспечением".

Пробовал вырубать жёсткий, вытаскивать из материнки батарейку, чтоб сбить настройки биоса, ну, и кучу всяких манипуляций, в том числе бональной загрузкой в безопасном режиме. Ничего не помогло.

Переустановил систему на этом ПК, снова воткнул сломанный жестяк. Всё как и прежде: система видит, но не заходит…

Скачал бесплатную программку TestDisk решил попробовать поковыряться с ней.
Работа происходит в консольном-окне (досовском), но всё примерно понятно…
С моими знаниями базового английского, я минут за 10 смог восстановить работу диска без потери данных =)

Куда примерно тыкался:
1) Выбрал нужный диск.
2) Проверку секторов.
3) Перезапись MBD.
4) Перезапись boot-сектора.
При этом один раз перезагрузился и всё…

Автор статьи: Fokus29
  Автор: Ivan

понедельник, 5 ноября 2012 г.

Жесткий диск WD10EARS с сектором 4 КБ. Подготовка к эксплуатации в Linux.


Исходя из специфики работы автору приходится регулярно приобретать различные новые жесткие диски, как правило для сохранения посекторных копий с неисправных накопителей.
На этот раз для этих целей был приобретен терабайтный винчестер фирмы Western Digital, модель WD10EARS-00Y5B1. В винчестере используется технология «Advanced Format», что в переводе на русский означает новый внутренний (низкоуровневый) формат с размером сектора 4096 байт (4 КБ) вместо устоявшегося за десятки лет стандартного 512-байтного сектора.
Теоретически, никаких особых нюансов в работе с этим винчестером быть не должно, т. к. он представляется как обычный НЖМД со стандартным сектором 512 Байт (разумеется, это эмулируется самим накопителем), что видно из его идентификационных данных, обозначенных на наклейке - LBA: 1953525168. Подверждение этому получаем и (забегая немного наперед) программно:
root@tazik001:~# hdparm -I /dev/sdb | grep LBA48
        LBA48 user addressable sectors: 1953525168

root@tazik001:~# hdparm -I /dev/sdb | grep Sector\ size
        Logical/Physical Sector size:          512 bytes

Тем не менее, производитель почему-то настойчиво акцентирует внимание на предварительной подготовке накопителя для работы в «устаревших» системах, о чем пишет на крышке самого накопителя и дополнительно дублирует на наклейке на упаковочном кульке. Причем явно указана только Windows XP. Для остальных ОС «drive is ready for use as is», что можно интерпретировать как «подготовки не требует», так и «ешьте, что дают :) ».
Разумеется, мы зададимся вопросом, есть ли особенности в работе этого HDD в Linux, раз ни прямо ни косвенно об этом не упоминается.
Исследования ведутся на IBM-PC совместимом компьютере, собранном на базе материнской платы ECS KV2 Extreme (чипсет VIA K8T880+VT8237R с дополнительным контроллером PATA+SATA на SiS 180, к которому и подключается испытуемый винчестер), процессор Athlon64 3700+, 1ГБ ОЗУ. Установлен частично русифицированный Slackware-12.1, проапгрейжен hdparm с 8.6 до 9.27.

Как издавна на Руси повелось, перво-наперво ориентируемся в пространстве:
root@tazik001:~# fdisk -l
Диск /dev/sda: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000945ef

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sda1                 1          127      1020096     b   W95 FAT32
/dev/sda2               128         5099     39937590    83   Linux
/dev/sda3    *         5100        10071     39937590     7   HPFS/NTFS
/dev/sda4             10072       121601    895864725     7   HPFS/NTFS

Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

На диске /dev/sdb отсутствует верная таблица разделов


Уточняем устройство для экспериментов:
root@tazik001:~# hdparm -i /dev/sdb | grep Model
 Model=WDC WD10EARS-00Y5B1, FwRev=80.00A80, SerialNo=WD-WCAV55974950


Тест скорости чтения:

root@tazik001:~# hdparm -t /dev/sdb
/dev/sdb:
 Timing buffered disk reads: 302 MB in 3.01 seconds = 100.48 MB/sec


Тест скорости чтения посредством dd:
root@tazik001:~# dd if=/dev/sdb of=/dev/null bs=128K count=20000
20000+0 записей считано
20000+0 записей написано
 скопировано 2621440000 байт (2,6 GB), 24,372 c, 108 MB/c

Тест скорости записи посредством dd:
root@tazik001:~# dd if=/dev/zero of=/dev/sdb bs=128K count=20000
20000+0 записей считано
20000+0 записей написано
 скопировано 2621440000 байт (2,6 GB), 24,2364 c, 108 MB/c


Теперь создаём один основной раздел на всю «поляну»:
root@tazik001:~# fdisk /dev/sdb
Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый цилиндр (1-121601, по умолчанию 1):
Используется значение по умолчанию 1
Последний цилиндр или +size или +sizeM или +sizeK (1-121601, по умолчанию 121601):
Используется значение по умолчанию 121601

Команда (m для справки): p
Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x15f317bf

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sdb1                 1       121601    976760001    83   Linux

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.


Форматируем новый раздел:
root@tazik001:~# mkfs.reiserfs /dev/sdb1

Монтируем файловую систему раздела:
root@tazik001:~# mount /dev/sdb1 /mnt/hd

Проверяем скорость записи данных в файловую систему.
(Для наблюдения за скоростью здесь и в последующих аналогичных случаях на втором терминале вводим watch -n60 killall -SIGUSR1 dd, либо, чтоб не топтать лишний раз клавиши, запишем команду в файл и сделаем его исполняемым.)
root@tazik001:~# dd if=/dev/zero of=/mnt/hd/000.dd bs=128K count=100000
16140+0 записей считано
16140+0 записей написано
 скопировано 2115502080 байт (2,1 GB), 56,9052 c, 37,2 MB/c
32379+0 записей считано
32379+0 записей написано
 скопировано 4243980288 байт (4,2 GB), 117,056 c, 36,3 MB/c
46439+0 записей считано
46439+0 записей написано
 скопировано 6086852608 байт (6,1 GB), 177,719 c, 34,2 MB/c
65859+0 записей считано
65859+0 записей написано
 скопировано 8632270848 байт (8,6 GB), 237,151 c, 36,4 MB/c
75811+0 записей считано
75811+0 записей написано
 скопировано 9936699392 байта (9,9 GB), 297,219 c, 33,4 MB/c
90639+0 записей считано
90639+0 записей написано
 скопировано 11880235008 байт (12 GB), 357,965 c, 33,2 MB/c
100000+0 записей считано
100000+0 записей написано
 скопировано 13107200000 байт (13 GB), 399,318 c, 32,8 MB/c

Оба-на! Скорость записи втрое ниже ожидаемой.
(Между делом замечу, что скорость чтения этого же файла вполне на уровне - около 100 МБ/сек. Баг вылазит только на записи.)
Может ReiserFS «глючная» :) ? Проверим «грязным хаком» :) .
Сначала отмонтируемся:
root@tazik001:~# umount /dev/sdb1

Потом сотрем содержимое нулевого сектора:
root@tazik001:~# dd if=/dev/zero of=/dev/sdb count=1

А потом создадим новую файловую систему прямо на жестком диске как на дискете (ключ -f - форсировать выполнение ни о чем не предупреждая):
root@tazik001:~# root@tazik001:~# mkfs.reiserfs -f /dev/sdb

Монтируем:
root@tazik001:~# mount /dev/sdb /mnt/hd

Пишем:
root@tazik001:~# dd if=/dev/zero of=/mnt/hd/000.dd bs=128K count=100000
17877+0 записей считано
17877+0 записей написано
 скопировано 2343174144 байта (2,3 GB), 27,8018 c, 84,3 MB/c
53827+0 записей считано
53827+0 записей написано
 скопировано 7055212544 байта (7,1 GB), 87,8909 c, 80,3 MB/c
89724+0 записей считано
89724+0 записей написано
 скопировано 11760304128 байт (12 GB), 148,018 c, 79,5 MB/c
100000+0 записей считано
100000+0 записей написано
 скопировано 13107200000 байт (13 GB), 165,614 c, 79,1 MB/c

Совсем другое дело! Видим, что проблема не в файловой системе. Видим также, что винчестеру совершенно не нравится традиционная MS-DOS MBR совместимая разметка с началом раздела на 63-м стандартном 512-байтном секторе, с номером, не кратным размеру нового «хардверного» сектора в 4 КБ (8 «традиционных» секторов по 512 Б). Попробуем обойти это. Отмонтируем файловую, очищаем 0-й сектор для дальнейшей работы:
root@tazik001:~# umount /dev/sdb
root@tazik001:~# dd if=/dev/zero of=/dev/sdb count=1

Попробуем создать fdisk'ом раздел с началом на 64-м секторе. Для ввода границ раздела в секторах (LBA), а не в стандартном LCHS применим ключ -u. Акцентирую внимание на том, что fdisk по умолчанию предлагает сектор 63!
root@tazik001:~# fdisk -u /dev/sdb
Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый сектор (63-1953525167, по умолчанию 63): 64
Последний сектор или +size или +sizeM или +sizeK (64-1953525167, по умолчанию 1953525167):
Используется значение по умолчанию 1953525167

Команда (m для справки): p
Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x5e5c7cb9

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sdb1                64  19535251671    976762552    83   Linux

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.


Форматируем, монтируем:
root@tazik001:~# mkfs.reiserfs /dev/sdb1
root@tazik001:~# mount /dev/sdb1 /mnt/hd

Проверяем скорость записи на раздел:
root@tazik001:~# dd if=/dev/zero of=/mnt/hd/000.dd bs=128K count=100000
2889+0 записей считано
2889+0 записей написано
 скопировано 378667008 байт (379 MB), 4,32944 c, 87,5 MB/c
42386+0 записей считано
42386+0 записей написано
 скопировано 5555617792 байта (5,6 GB), 64,369 c, 86,3 MB/c
87304+0 записей считано
87304+0 записей написано
 скопировано 11443109888 байт (11 GB), 124,384 c, 92,0 MB/c
100000+0 записей считано
100000+0 записей написано
 скопировано 13107200000 байт (13 GB), 140,365 c, 93,4 MB/c

В целом недурно и значительно ближе к максимально возможной скорости записи.
При организации 2-х и более первичных разделов придерживаемся того же правила: начало каждого раздела должно быть на секторе с номером, кратным как минимум 8-ми. Для этого рассчитываем на калькуляторе кратным 8-ми (минус 1 сектор) номер последнего сектора предыдущего раздела и вводим его fdisk'ом . Требуемый «правильный» номер начального сектора следующего раздела fdisk предложит по умолчанию сам.
В этом примере номер сектора второго раздела я подобрал кратным 64-м:
root@tazik001:~# fdisk -u /dev/sdb
Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Номер раздела (1-4): 1
Первый сектор (63-1953525167, по умолчанию 63): 64
Последний сектор или +size или +sizeM или +sizeK (64-1953525167, по умолчанию 1953525167): 976639999

Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
p
Номер раздела (1-4): 2
Первый сектор (976640000-1953525167, по умолчанию 976640000):
Используется значение по умолчанию 976640000
Последний сектор или +size или +sizeM или +sizeK (976640000-1953525167, по умолчанию 1953525167):
Используется значение по умолчанию 1953525167

Команда (m для справки): p
Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x17d66173

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sdb1                64    976639999    488319968    83   Linux
/dev/sdb2         976640000   1953525167    488442584    83   Linux

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.

Форматируем, монтируем, проверяем скрость записи:
root@tazik001:~# mkfs.reiserfs /dev/sdb2
root@tazik001:~# mount /dev/sdb2 /mnt/hd
root@tazik001:~# dd if=/dev/zero of=/mnt/hd/000.dd bs=128K count=100000
33765+0 записей считано
33765+0 записей написано
 скопировано 4425646080 байт (4,4 GB), 51,3811 c, 86,1 MB/c
72486+0 записей считано
72486+0 записей написано
 скопировано 9500884992 байта (9,5 GB), 111,47 c, 85,2 MB/c
100000+0 записей считано
100000+0 записей написано
 скопировано 13107200000 байт (13 GB), 153,375 c, 85,5 MB/c

Working good!

Рассмотрим совсем запущенный случай для логического тома в расширенном разделе.

Т. к. во времена господства MS-DOS расширенный раздел был придуман для программной эмуляции еще одного (второго) жесткого диска на свободном пространстве уже имеющегося накопителя, то для организации первого логического тома в расширенном разделе fdisk предложит нам создать его начальный сектор с номером n+63, где n - начальный сектор расширенного раздела. Нам же необходимо для соблюдения условия кратности 8-ми сектор n+64.
Т. е., сначала нам надо организовать расширенный раздел с номером начального сектора, кратным 8-ми. После чего будем создавать логический том в расширенном разделе также с начальным сектором, кратным восьми.
Отмонтируем и удалим fdisk'ом 2-й основной раздел.
После чего на его месте создадим расширенный со вложенным логическим томом.
root@tazik001:~# fdisk -u /dev/sdb
Команда (m для справки): p
Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x00054d40

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sdb1                64    976639999    488319968    83   Linux

Команда (m для справки): n
Действие команды
   e   расширенный
   p   основной раздел (1-4)
e
Первый сектор (976640000-1953525167, по умолчанию 976640000):
Используется значение по умолчанию 976640000
Последний сектор или +size или +sizeM или +sizeK (976640000-1953525167, по умолчанию 1953525167):
Используется значение по умолчанию 1953525167

Команда (m для справки): p
Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x00054d40

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sdb1                64    976639999    488319968    83   Linux
/dev/sdb2         976640000   1953525167    488442584     5   Расширенный

Команда (m для справки): n
Действие команды
   l   логический (5 или более)
   p   основной раздел (1-4)
l
Первый сектор (976640063-1953525167, по умолчанию 976640063): 976640064
Последний сектор или +size или +sizeM или +sizeK (976640064-1953525167, по умолчанию 1953525167):
Используется значение по умолчанию 1953525167

Команда (m для справки): p
Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Disk identifier: 0x00054d40

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sdb1                64    976639999    488319968    83   Linux
/dev/sdb2         976640000    1953525167   488442584     5   Расширенный
/dev/sdb5         976640064    1953525167   488442552    83   Linux

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.
Синхронизируются диски.

root@tazik001:~# mkfs.reiserfs /dev/sdb5
root@tazik001:~# mount /dev/sdb5 /mnt/hd
root@tazik001:~# dd if=/dev/zero of=/mnt/hd/000.dd bs=128K count=100000
6585+0 записей считано
6585+0 записей написано
 скопировано 863109120 байт (863 MB), 11,2747 c, 76,6 MB/c
37947+0 записей считано
37947+0 записей написано
 скопировано 4973789184 байта (5,0 GB), 72,3125 c, 68,8 MB/c
68410+0 записей считано
68410+0 записей написано
 скопировано 8966635520 байт (9,0 GB), 131,587 c, 68,1 MB/c
99030+0 записей считано
99030+0 записей написано
 скопировано 12980060160 байт (13 GB), 191,798 c, 67,7 MB/c
100000+0 записей считано
100000+0 записей написано
 скопировано 13107200000 байт (13 GB), 193,386 c, 67,8 MB/c


Working very good! Что и требовалось доказать.
Отмонтируем раздел для дальнейших экспериментов:
root@tazik001:~# umount /dev/sdb5
В свою очередь WD предлагает нам свой вариант согласования старой разметки с новым низкоуровневым форматом путем установки перемычки на контакты 7-8. В этом случае винчестер сдвигает трансляцию на 1 сектор (512 Б), «подсовывая» под начало раздела свой «родной» 64-й сектор, вместо 63-го. Для пущей понятности наглядно продемонстируем, что в этом случае происходит.
Очистим первые 500 секторов для дальнейшей работы:
root@tazik001:~# dd if=/dev/zero of=/dev/sdb count=500

Создадим новый раздел классическим методом и отформатируем:
root@tazik001:~# fdisk /dev/sdb
root@tazik001:~# mkfs.reiserfs /dev/sdb1

Посмотрим содержимое сектора 0:
root@tazik001:~# hdparm --read-sector 0 /dev/sdb
/dev/sdb:
reading sector 0: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 8ba4 c746 0000 0100
0001 fe83 ffff 003f 0000 5982 7470 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 aa55

Визуально напоминает :) живую таблицу разделов (сигнатура aa55) с одним разделом Линукс (тип 83).
Почитаем сектор 191 - в нем живет рейзерэфэсный суперблок:
root@tazik001:~# hdparm --read-sector 191 /dev/sdb
/dev/sdb:
reading sector 191: succeeded
0b30 0e8e ce00 0e8d 2013 0000 0012 0000
0000 0000 2000 0000 0400 0000 0f87 3caf
0384 0000 001e 0000 0000 0000 1000 03cc
0002 0001 6552 7349 7245 4632 0073 0000
0003 0000 0002 1d1d 0002 0000 0000 0000
0001 0000 d748 2bfc fd2a bd4f 9d95 4612
4d4c 605d 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0001 0000
0003 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

Прошу поверить на слово - это именно он :) .
Выключаем тазик:
root@tazik001:~# halt

Cтавим перемычку на контакты 7-8. Включаемся.
root@tazik001:~# fdisk -l
Диск /dev/sda: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000945ef

  Устр-во  Загр      Начало        Конец        Блоки    Id   Система
/dev/sdb1                 1          127      1020096     b   W95 FAT32
/dev/sdb2               128         5099     39937590    83   Linux
/dev/sdb3    *         5100        10071     39937590     7   HPFS/NTFS
/dev/sdb4             10072       121601    895864725     7   HPFS/NTFS

Диск /dev/sdb: 1000.2 ГБ, 1000204886016 байт
255 heads, 63 sectors/track, 121601 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000

На диске /dev/sdb отсутствует верная таблица разделов
Раздел как ветром сдуло. Куда ж он делся? «Пошукаем псису»:
root@tazik001:~# hdparm --read-sector 0 /dev/sdb
/dev/sdb:
reading sector 0: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

root@tazik001:~# hdparm --read-sector 191 /dev/sdb
/dev/sdb:
reading sector 191: succeeded
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

Пусто. Поищем суперблок в окрестностях:
root@tazik001:~# hdparm --read-sector 190 /dev/sdb
reading sector 190: succeeded
0b30 0e8e ce00 0e8d 2013 0000 0012 0000
0000 0000 2000 0000 0400 0000 0f87 3caf
0384 0000 001e 0000 0000 0000 1000 03cc
0002 0001 6552 7349 7245 4632 0073 0000
0003 0000 0002 1d1d 0002 0000 0000 0000
0001 0000 d748 2bfc fd2a bd4f 9d95 4612
4d4c 605d 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0001 0000
0003 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000

Вот он! Оказался на 190-м секторе. Соответственно, таблица разделов сейчас находится на секторе -1 (минус 1), т. е. не в пользовательской зоне и она недоступна штатными средствами.
Если сейчас в таком виде, с установленной перемычкой 7-8, создать классическую разметку и отформатировать новоиспеченный раздел, то таблица разделов окажется на «заводском» 1-м секторе. Но начало раздела - на «удобном» винчестеру «заводском» 64-м, суперблок - на 192-м. Т. е. логика раздела и ФС будет кратна «хардверному» сектору в 4 КБ и ничего тормозить не будет. Разумеется, перемычку после этих операций снимать будет нельзя!
Это есть весьма оригинальное «хардверное» решение проблемы от WD, и для создания единственного основного раздела вполне успешно заменяет «пляски с бубном» в fdisk. К сожалению, трюк с перемычкой работает только для одного основного раздела на весь объем устройства, либо же только для первого основного раздела. Если всё делать «по умолчанию», то для следующих после первого основных разделов, либо логических томов в расширенном разделе, кратность будет опять переломана, и работа в рамках всех разделов, кроме первого, будет идти с тормозами, и никакие перемычки здесь уже не помогут.
В целом мы убедились, что проявленная багофича связана с тяжелым наследием разметки дисков по умолчанию, совместимым с классическим MS-DOS MBR.
При создании же посекторных копий других дисков на исследуемый диск тем же dd, либо отказоустойчивыми ddrescue и dd_rescue, без учёта имеющихся логических структур, в связи со вполне приемлемой эмуляцией 512-байтного сектора, никаких критических сбоев в работе замечено не было. Вкупе с демократичной ценой, винчестер демонстрирует приличные скоростные характеристики при последовательных записи и чтении и низкую рабочую температуру, характерную для всех накопителей WD Green. И после внимательного ознакомления с написанным материалом может однозначно быть рекомендован к эксплуатации в Линукс.

Виталий Розизнаный AKA Rozik, R.LAB.

четверг, 11 октября 2012 г.

Как сохранить свою информацию на винчестере от потери


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


ПОМHИТЕ: СОВРЕМЕHHЫЙ ВИHЧЕСТЕР -
HЕ МЕСТО ДЛЯ ХРАHЕHИЯ ИHФОРМАЦИИ.

ЕСЛИ ВАШ ВИHЧЕСТЕР ЕЩЕ HЕ СЛОМАЛСЯ,
ТО У ВАС ЕЩЕ ВСЕ В ВПЕРЕДИ. ;-)


  1. Hи в коем случае нельзя лезть в винчестер, особенно вскрывать гермоблок с блинами. Hикогда не откручивайте винты на винчестере, не нарушайте защитные ленточки. Это может делать только специалист по ремонту винчестеров и то, только в особых случаях.
  2. Если с вашим компьютером что-то случилось - появились посторонние звуки, просто перестал работать - срочно выключайте компьютер и несите грамотному специалисту по ремонту. Он определит неисправность и если она касается винчестера, то вполне возможно, что этот винчестер еще можно отремонтировать или хотя бы снять с него информацию. Очень часто лишнее включение-выключение такого винчестера может привести просто к его смерти с необратимыми последствиями.
  3. Ставьте хороший блок питания (БП), который будет нормально работать с компьютерными комплектующими, установленными в ваш компьютер, без просадок и плавания напряжений, в приемлемыми уровнями пульсаций на выходе.
    Я устал уже об этом говорить, но в большинстве случаев с тем дерьмом, которое компьютерные фирмы называют БП и впаривают доверчивым покупателям, компьютеры просто не могут нормально работать.
    Практически каждый БП требует осмотра и, чаще всего, (особенно дешевые) - доработки. При этом помните, что доработка не позволяет повысить мощность БП, а только доводит его до работоспособного состояния. У большинства БП нельзя доверять надписям с указанием мощности и обеспечиваемым токам. Проблем не возникало пока только с БП "Power Man" (настоящими) и DELTA. Hо учтите, что превышение нагрузки, на которую реально изготовлен БП может убить его, какой бы хороший он не был.
  4. Hе таскайте свой винчестер к друзьям. Hе ставьте себе винчестеры друзей, если вы не уверены в своем блоке питания, вылетит и ваш винчестер, и друга.
    Если же все-таки понесли, то обязательно упакуйте винчестер в антистатическую упаковку - специальный антистатический пакет и в какую-нибудь коробочку или в заводскую пластиковую упаковку. Иначе появляется очень большой риск обломать детальки на плате винчестера или просто стукнуть его. Если все-таки пришлось нести винчестер в холодное время года, не включайте его сразу, прогрейте 2-3 часа не вынимая из упаковки чтобы не допустить засасывания конденсата. Лучше носите в нагрудном кармане, чтобы не морозить и не стукать.
  5. При установке операционной системы первым делом поставьте IDE драйверы от производителя чипсета материнской платы. Для чипсетов Интел - начиная с TХ, на другие чипсеты - на все. Только потом ставить драйверы на другие устройства.
  6. Рекомендуем не использовать режимы работы винчестеров UDMA100 и UDMA133. Hекоторые производители винчестеров наделали ошибок в микропрограммах, управляющих работой винчестеров в этих режимах, на некоторых винчестерах данные режимы некорректно работают с операционными системами. Всё это может привести к потере ваших данных и выходу из строя винчестеров.
    Поэтому переключите ваш винчестера в режим UDMA33 или UDMA66. Скорость вы практически не потеряете, а надежность повысится. Переключение выполняется с помощью специальных программ, написанных производителями винчестеров. Взять такую программу можно на сайте фирмы-изготовителя конкретного винчестера.
    Материнские платы, выпущенные уже давно, могут не поддерживать скоростные режимы работы современных винчестеров, поэтому бессмысленно подключать к ним винчестеры в режимах UDMA66, UDMA100 и UDMA133. Переключите их в режим, который поддерживает ваша плата.
  7. Если блок питания у вас АТХ, а внутренний кэш на вашем винчестере больше 512 Кб, то при установке операционных систем семейства Windows обязательно поставьте фикс, который исправляет ошибку системы, заключающейся в том, что она выключает блок питания раньше, чем успевает сохраниться на винчестере информация, временно лежащая во внутренней памяти винчестера (кэше).
    При наличии интернета для этого на кнопке "Пуск" есть строчка "Windows update". Для Windows 98 файл называется 273017rus8.exe.
  8. Очень многие современные винчестеры греются, независимо от скорости вращения шпинделя. Поэтому лучше ставить обдувающие вентиляторы на все современные винчестеры.
  9. Hа хвосте питания, подключаемом к винчестеру, больше не должно быть никаких других устройств. Категорически запрещается подключать параллельно на этот же хвост охлаждающие вентиляторы. Охлаждающие вентиляторы советуем подключать к соответствующим разъемам материнской платы.
  10. При подключении хвоста питания к винчестеру (а так же к другим устройствам) проверьте качество соединения в разъеме и, в случае необходимости, подогните перед подключением контакты, чтобы исключить дребезг по питанию. Делать это надо ОЧЕHЬ АККУРАТHО !
  11. Если используется компьютер с блоком питания ATX, то перед подключением или отключением винчестера надо обязательно отключить от блока питания сетевой шнур.
  12. Если применяете мобиль-рэк - ставьте накопитель только при отключенном от электрической сети компьютере.
    Постарайтесь не использовать мобиль-рэки с 80-ти контактными разъемами, т.к. это часто приводит к выдергиванию ножек на IDE разъеме винчестера. А если все-таки используете, то поменьше дергайте разъемы, т.е. поставили винчестер - пусть стоит. и обязательно в мобиль-рэке должен быть охлаждающий вентилятор.
  13. При подключении переносного винчестера на материнскую плату, которая не понимает винчестеры большой емкости, выключите автоопределение этого винчестера в BIOS и определите его средствами операционной системы. Очень неприятно смотреть на раздел, который вместо FAT32 вдруг стал FAT16. Стоимость восстановления информации может получиться соизмерима или выше стоимости нового винчестера.
  14. При соединении материнской платы и винчестера IDE-кабелем помните, что надо обязательно использовать крайние разъемы кабеля. Если подключаете только один винчестер, то свободным должен остаться средний разъем на кабеле. При подключении 2-х винчестеров разнесите их по разным IDE-каналам на отдельные IDE-кабели и поставьте перемычки на винчестерах в положение MASTER. Многие винчестеры могут некорректно работать или вообще не работать в режиме SLAVE, особенно при отсутствии на данном IDE-канале другого винчестера в режиме MASTER.
  15. Винчестер нельзя ставить в корпус вплотную к донышку корзины, т.к. это ухудшает теплообмен и можно замкнуть некоторые выставляющиеся детали платы "на корпус" с выходом из строя винчестера.
    По этой же причине нельзя класть винчестеры на токопроводящие поверхности без изолирующей прокладки.
  16. Постоянно делайте резервные копии ценной информации и не только на этот же винчестер. Используйте для этой цели дискеты, магнитные ленты, другие винчестеры, CD-R или CD-RW диски, другие компьютеры в локальной сети...
  17. Обязательно отключите в управлении питанием все "зеленые" функции. Постоянная работа винчестера полезнее, чем периодические его засыпания- просыпания. Вспомните, что лампочки перегорают, когда их включают или выключают. В связи с этим постарайтесь реже выключать компьютер. Лучше, если он будет постоянно работать весь рабочий день. А еще лучше - круглосуточная работа.
    Если выключаете компьютер, то отключите его от электрической сети выдернув сетевой шнур из розетки, а лучше купите сетевой фильтр с выключателем и отключайте компьютер на нём.
  18. Регулярно выполняйте дефрагментацию и профилактику винчестеров (для Windows). Hефрагментированные данные восстанавливаются легче и полнее.
  19. Hе забывайте про регулярную проверку на вирусы. 

пятница, 13 июля 2012 г.

Ремонт и восстановление жестких дисков самостоятельно


Ремонт и восстановление жестких дисков самостоятельно

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

Мы будем говорить о восстановлении данных. Ремонт винчестеров (за исключением редких случаев) невозможен или экономически нецелесообразен. Нашей задачей будет временное восстановление работоспособности жесткого диска, достаточное лишь для копирования самых ценных данных, в идеале - всего диска целиком.
Что нам понадобится
Непременным атрибутом серьезного фирмы была и остается "чистая комната" с классом чистоты 100 (в одном кубическом футе воздуха содержится не более 100 пылинок размером 0,5 миллиметров). За этими незатейливыми словами скрывается грандиозное инженерное сооружение со стоимостью от 30 тыс. долларов. Менее серьезные ремонтники ограниваются "чистой камерой", что на порядок дешевле, но для кустарных мастеров даже это неподъемно дорого. Можно ли обойтись без чистой комнаты или соорудить ее самостоятельно?
 Рисунок 3. Чистая комната, в которой вскрывают гермоблоки жестких дисков.
Вопреки распространенным слухам и опасениям - да, можно! Как минимум достаточно обыкновенной незапыленной комнаты с работающим кондиционером или даже без него. Также желательно обзавестись ионизатором (ионизатор вызывает слипание частичек пыли, и они вместо того, чтобы носиться по комнате, оседают на пол, откуда их удаляет нехитрая система вентиляции). Хороший ионизатор стоит в передах $500 - $1.000, но при желании его можно сконструировать и самостоятельно. Взять хотя бы ту же "Люстру Чижевского", схему которой легко найти в старых журналах "Радио", "Моделист-Конструктор" или в Интернете. Естественно, непосредственно перед проведением работ ионизатор нужно выключать.
 Рисунок 4. Схематичное устройство типовой чистой комнаты.
При ремонте винчестера на более или менее постоянной основе, имеет смысл соорудить некоторое подобие чистой камеры. Для этого потребуется стеклянный аквариум, воздушный фильтр и компрессор, нагнетающий воздух внутрь аквариума и препятствующий попаданию пыли через открытую переднюю стенку. Да! Передняя стенка остается открытой! Аквариум ставится на "бок", открытой стороной на себя. Сверху закрепляется стеклянная пластина, закрывающая до 2/3 поверхности, а внутрь устанавливается воздушный фильтр. Компрессор остается снаружи. Оставшаяся 1/3 закрывается другой пластинкой, на несколько часов включается фильтр (точное, время зависит от его пропускной способности и объема аквариума), а затем перед началом работ эта пластинка удаляется, предоставляя простор рукам. Невероятно дешево, но достаточно чисто. Во всяком случае, намного чище, открытой жилой комнаты. Учитывая непродолжительное время вскрытия гермозоны, на пластины успевает осесть не так уж много пыли и у винчестера есть все шансы считать данные до смертельного исхода.
 Рисунок 5. Чистая камера.
После выполнения всех операций, винчестер следует обязательно закрыть крышкой, предварительно удалив попавшие пылинки с помощью балкончика с воздухом для продувки двигателей, который можно купить в автомагазине. При хранении в трубке образуется конденсат, поэтому первые порции струи выпускаются в сторону от винчестера и затем плавно направляются на диск. Другая особенность заключается в том, что балкончик нельзя встряхивать, иначе из него полезет белая непотребность, которая убьет диск окончательно. Сергей Яценко подготовил видеоматериал, на котором все это наглядно проиллюстрировано: http://pc3k.rsu.ru/video/video03_N40P_disk_swap.avi (157 Мбайт).
Продолжительная работа с "оголенной" гермозоной даже в чистой камере недопустима! Частицы пыли, присутствующее в воздухе, сталкиваясь с бешено вращающейся пластиной, за короткий срок уничтожают магнитное покрытие. На дисках со стеклянной подложкой (например, винчестерах типа DTLA) образуется настоящий "иллюминатор". Но ведь при вскрытии гермоблока в него все равно попадает пыль! Разве от закрытия крышки она исчезнет? По этому поводу вспоминается анекдот: Вася, закрой форточку, на улице холодно! - От того, что я ее закрою, на улице теплее не станет! Штука. На самом деле, внутри гермоблока расположен фильтр рециркуляции, активно поглощающий попавшую пыль, в результате чего ее концентрация быстро уменьшается до приемлемых значений. А вот при работе в стиле "ню" концентрация пыли остается постоянной. Другая причина - закрученная крышка слегка деформирует гермоблок, поэтому без нее диск может читаться нестабильно, с многократными повторами. Установка крышки - это целое дело! Запустив утилиту, выводящую скоростную кривую на экран, попеременно подтягиваем болты, добиваясь наиболее ровного графика чтения. Впрочем, это уже излишество.
 Рисунок 6. Для жесткого диска каждая пылинка равносильна метеориту.
Часы жизни винчестера, вскрытого вне чистой комнаты, сочтены, а время, требующееся для вычитки данных, велико, особенно если используются аппаратно-программные комплексы, не поддерживающие режимов DMA/ULTRA DMA. Поэтому жесткий диск лучше подключать к компьютеру напрямую и в первую очередь считывать только самые важные данные, установив счетчик повторов чтения на значение 3. То есть, сначала читаем все, что читается само, и только затем - то, что читается с трудом.
Вторым козырем серьезных фирм являются только что упомянутые аппаратно-программные комплексы. Наибольшую известность получили PC-3000 от ACE Lab (www.acelab.ru) и HDD Repair Tools от BVG Group (www.bvg-group.ru). Что это такое? С "железной" точки зрения это обыкновенный (даже слегка ущербный) IDE-контроллер, поддерживающий режимы PIO и отчасти DMA/UDMA со встроенным электронным ключом (как правило, собранном на мощном полевом транзисторе), позволяющим подсоединять/отсоединять жесткие диски "на лету", без выключения компьютера, что очень удобно. Однако того же эффекта можно достичь, если подсоединить жесткий диск к отдельному блоку питания, а перед его выключением подать ATA-команду 94h (standby immediate).
 Рисунок 7. Аппаратно-программный комплекс PC-3000, установленный в компьютер.
Технологические команды, приоткрывающие дверь во внутренний мир жесткого диска, передаются либо по ATA-интерфейсу, либо через COM-терминал. Да-да! На многих моделях винчестером имеется интегрированный COM-порт, подключившись к которому, можно контролировать процесс инициализации и управлять приводом (правда, не на всех он распаян, то есть выведен на разъем). Обычного COM-порта, встроенного в компьютер, плюс пары переходников, которые любой радиолюбитель легко смастерит самостоятельно, для наших целей вполне достаточно. Еще в аппаратно-программных комплексах имеется возможность в любой момент подать RESET, что помогает в случае "зацикливания" жесткого диска. Штатные IDE-контроллеры на это не способны, но что мешает прицепить на IDE-шину свою кнопку или просто замкнуть пинцетом выводы?
 Рисунок 8. Жесткий диск, подключенный через стандартный ATA-порт (широкий ленточный кабель) и через технологический COM-терминал с помощью адаптера PC-KALOC, входящего в комплект поставки PC-3000 (узкий ленточный кабель).
Зачем же тогда люди приобретают аппаратно-программные комплексы, отстегивая за них ненормальную цену? (В частности, PC-3000 в полном комплекте обойдется в несколько тысяч долларов). А за поддержку и сервис? Сам по себе PC-3000 бесполезен. Но к нему прилагается документация с подробным описанием методики восстановления различных моделей винчестеров, имеется база служебных модулей, к услугам которой приходится прибегать, если родная "служебка" отправилась к праотцам, наконец, в стоимость комплекса входят консультация и обучение. К тому же, прилагается нехилое программное обеспечение, в частности Data Extractor, отличительной чертой которого является способность автоматического восстановления транслятора (ниже мы об этом еще поговорим) плюс продуманный механизм "вычитывания" информации. Если сектор прочитался, он заносится в базу и в дальнейшем никогда не читается с диска повторно (разве, что специально об этом попросить), а всегда берется из базы. Большинство распространенных утилит (например, GetDataBack от Runtime Software) ведут себя совсем не так. Они многократно перечитывают одни и те же сектора, особенно сектора, принадлежащие служебным областям диска, такие как FAT или MFT, или вообще аварийно завершают свою работу при встрече с BAD-сектором. В случае логических разрушений все ОК, но для восстановления жестких дисков такой подход непригоден. Можно, конечно, написать такую утилиту самостоятельно или доработать близкий по духу Open Source-проект, можно раздобыть готовую служебку в сети или считать ее с аналогичной модели винчестера, но... на все это требуется время, а времени всегда не хватает. Наличие специализированного комплекса существенно упрощает дело. Тем не менее, PC-3000 - не панацея! Специалист, умеющий ремонтировать жесткие диски, при необходимости обойдется и без него, а неумеющему он ничем не поможет.
Из инструментов нам в первую очередь понадобятся отвертки-звездочки. Для старых винчестеров - номер 10, для новых - номер 9. При отсутствии звездочек можно воспользоваться и обыкновенной плоской отверткой. В частности, звездочка-10 соответствует плоской-3. Под звездочку-9 отвертку придется затачивать самостоятельно. Впрочем, сейчас звездочки уже не проблема и приобрести их можно в любом техническом магазине.
Остальной инструментарий вполне стандартен. Пассатижи, плоскогубцы, пинцеты... Для перестановки "блинов" придется собрать специальный захват, устройство и приемы работы с которым наглядно продемонстрированы в уже упомянутом видеоматериале Сергея Яценко (http://pc3k.rsu.ru/video/video03_N40P_disk_swap.avi).
В процессе ремонта нам придется заниматься демонтажом микросхем. Для этого нужен либо строительный фен, либо паяльник плюс фантазия. Фен обойдется примерно в ~$50, но им еще необходимо научиться пользоваться. Сергей Яценко подготовил специальный видеоматериал, демонстрирующий технику демонтажа ПЗУ с помощью паяльной стации http://pc3k.rsu.ru/video/video02_WDC_ROM.avi (13 Мб). Паяльная станция, конечно, не фен, но принципы работы с ней схожи. Если фена нет, то можно обойтись паяльником с расплющенным жалом, лезвием (для демонтажа планарных микросхем) и медицинской иглой со сточенным концом (для демонтажа элементов, установленных в отверстия со сквозной металлизацией). О самом демонтаже можно прочитать в статье "Лудить, паять, кастрюли-ведра чиним" (www.computerra.ru/offline/1998/251/1400/).
Устройство жесткого диска
Жесткий диск состоит из гермоблока и платы электроники. В гермоблоке расположен шпиндельный двигатель, вращающий пакет из одного или нескольких магнитных дисков, блок магнитных головок (сокращенно БМГ), ранее управляемый шаговым двигателем, а теперь - устройством под названием "звуковая катушка" (voice coil), а также предусилитель/коммутатор чтения/записи, смонтированный в микросхеме либо непосредственно на БМГ, либо расположенный на отдельной плате рядом с ней. В последнем случае замена коммутатора возможна без съема БМГ, что существенно упрощает его ремонт.
 Рисунок 9. Блок-схема типичного жесткого диска.
Плата электроники включает в себя: контроллер шпиндельного двигателя и звуковой катушки, управляющий вращением пакета диска и позиционированием головок; канал чтения/записи; микроконтроллер, являющийся, по сути, "сердцем" винчестера; контроллер диска, отвечающий за обслуживание ATA-интерфейса.
Как их ремонтируют
Древние жесткие диски стоили дорого, использовали "рассыпуху" микросхем с низкой степенью интеграции и серийные комплектующие, над которыми еще имело смысл подолгу зависать с осциллографом, выискивая неисправный элемент. Но затем степень интеграции начала стремительно нарастать, производители перешли на заказные чипы, а цены на винчестеры упали ниже плинтуса. Ремонтировать электронику стало не только сложно, но еще и нерентабельно.
Основным способом возвращения работоспособности стала замена всей платы контроллера целиком. Берется диск идентичный модели (донор), и плата переставляется на гермоблок с восстанавливаемыми данными (акцептор). Исключение составляет мелкий ремонт типа замены перегоревшего предохранителя или транзистора, который можно выполнить непосредственно на теле "пациента".
 Рисунок 10. Плата электроники, готовая к пересадке.
Возникает естественный вопрос - если ремонтники уже давно ничего не ремонтируют, а только тасуют платы, зачем же к ним обращаться и платить деньги, когда эту операцию можно проделать и самому? Но все не так просто!
Во-первых, необходимо найти подходящего донора. У разных моделей винчестеров совместимость плат электроники сильно неодинакова, некоторые требуют совпадения всех цифр в номере модели, некоторые соглашаются работать только с "родственным" контроллером. А некоторые могут не работать даже при полном совпадении всех букв и цифр и тогда приходится перебирать одного донора за другим в надежде найти подходящий. Особенности поведения каждой модели можно почерпнуть из документации, прилагаемой к PC-3000 или найти в Интернете. Поиски доноров серьезно осложняются тем, что период производства большинства винчестеров намного меньше их среднего срока существования. Компьютерные магазины постоянно обновляют свой ассортимент и приобрести модель аналогичную той, что вы купили несколько лет назад, скорее всего, не удастся. Остаются радио-рынки и фирмы, торгующие поддержанными комплектующими, но выбор здесь никакой.
 Рисунок 11. Коллекция винчестеров-доноров, используемая при пересадке контроллеров.
Внимание: неродной контроллер может повредить микросхему коммутатора/предусилителя, расположенную внутри гермоблока, и разрушить служебную информацию, что значительно затруднит дальнейший ремонт, поэтому не переставляйте платы, если не уверены в их совместимости!
Во-вторых, помимо электроники плата контроллера несет на своем борту ПЗУ, в котором могут быть записаны индивидуальные настройки. И с чужой платой винчестер работать просто не будет! Тут есть два пути. Если акцептор еще не совсем сдох, с него считывается оригинальная прошивка и заливается на плату донора. В противном случае приходится перепаивать непосредственно само ПЗУ.
В-третьих, даже если винчестер "заведется" с чужой платой, последовательность нумерации секторов может оказаться нарушена и файловая система превратиться в мусор, который придется разгребать руками или специализированными программными комплексами (лучшим из которых является Data Extractor, входящий в комплект PC-3000, но также способный работать и отдельно от него со штатным IDE-контроллером).
Тем не менее, никаких экстраординарных способностей для ремонта не требуется и он вполне по силам мастерам средней руки. Отказ электроники - это ерунда. Хуже, если испорчена часть служебной информации, записанной на магнитных пластинах (см. "Прошивка, индивидуальные настройки и адаптивы"). Это может произойти по разным причинам: ошибки в прошивке, сбои питания, отказ электроники, вибрация/удары, деформация гермоблока и т.д. и т.п. При этом жесткий диск не входит в готовность или на все команды отвечает ошибкой. Некоторые винчестеры автоматически переходят в технологический режим, предназначенный для заливки служебной информации, которая может быть передана либо через стандартный ATA-интерфейс, либо через COM-терминал.
В состав PC-3000 входит большая коллекция разнообразных служебных модулей для популярных моделей жестких дисков, а всем зарегистрированным пользователем предоставляется бесплатный доступ к ftp-серверу, на котором можно найти практически все, что угодно. Как вариант, можно воспользоваться специализированными утилитами, распространяемыми производителями винчестера, выбрав режим обновления прошивки. Однако при этом обновляются далеко не все модули и далеко не для всех моделей такие утилиты есть.
К тому же этот способ восстановления бесполезен, если в служебной зоне имеются физические дефекты или накопитель "зависает" еще на старте, отказываясь входить в технологический режим. На этот случай существует метод Hot-Swap (горячая замена). В нем также участвуют два накопителя - донор и акцептор, но трансплантация осуществляется вживую, под местным наркозом. Донор обесточивается, с него снимается плата электроники, обнажая гермоблок. Акцептор подключается в IDE-шлейфу, на него подается питание, затем после процесса инициализации и выдачи готовности, отдается ATA-команда Sleep (95h), останавливающая шпиндельный двигатель. Все остальные узлы остаются под напряжением. Контроллер аккуратно свинчивается и переставляется на гермоблок акцептора. Затем ему подается любая команда для пробуждения (например, команда чтения сектора). Поскольку контроллер уже был проиницилизирован, обращения к служебной зоне не происходит и с диска удается считать всю уцелевшую информацию. (При использовании штатного IDE-контроллера необходимо заблаговременно отключить S.M.A.R.T. в настройках BIOS Setup, иначе винчестер будет вести S.M.A.R.T.-протокол, производя запись в служебную зону). Требования к совместимости плат электроники - те же самые, что и в случае простой перестановки контроллера. В принципе, не обязательно переставлять плату донора на акцептор. Можно взять плату акцептора, проинициализировать ее на гермоблоке донора, а затем вернуть обратно. Такой способ даже более предпочтителен, поскольку в этом случае, акцептор будет работать со "своим" ПЗУ.
Ряд неисправностей требует вскрытия гермоблока и ювелирного мастерства рук. Первое место по частоте отказов занимает выход из строя одной или нескольких магнитных головок. Причиной может быть и заводской брак, и пробой электроники, и механическое воздействие (например, удар). Если физически головка остается неповрежденной, то одна из поверхностей перестает читаться и тогда через каждые N секторов образуется BAD, где N - количество головок. Некоторые модели имеют 6 головок, некоторые - только одну, тогда при ее отказе диск становится полностью неработоспособным и не может прочитать даже служебную зону. Но и при отказе 1-й из 6-ти головках информация превращается в труху. Все файлы, размер которых превышает 3 Кб (512 * 6), становятся продырявленными. Что делать? Переставлять блок головок! Это очень сложная операция, и у начинающих мастеров в половине случаев она заканчивается летальным исходом. Практиковаться на своем рабочем винчестере, который надо восстановить, категорически недопустимо! Сначала потренируйтесь на "кошках" - жестких дисках разной степени убитости, на которых нет ничего интересного.
Нам потребуется донор близкой модели. Точное совпадение всех цифр модели уже не обязательно, главное, чтобы БМГ быть аналогичного типа. Некоторые диски паркуют головки за пределами внешней кромки магнитных пластин, некоторые - в специальной зоне близ центра шпинделя. Последний случай самый трудный. Ведь, чтобы снять головки, их нужно протащить сквозь всю поверхность, а допускать контакта головки с поверхностью нельзя, иначе магнитное покрытие будет разрушено!
 Рисунок 12. Блок магнитных головок (БМГ) с микросхемой коммутатора/предусилителя.
Вооружившись тонкой полоской выгнутого и обезжиренного пластика, аккуратно заводим ее под каждую головку, так чтобы пластик приподнимал головку над поверхностью, но сам ее не касался и выводим головки за пределы внешний кромки. Чтобы головки не касались и не царапали друг друга, между ними вставляется полоска полиэтилена, которую можно вырезать из антистатической упаковки жесткого диска. Меняется только БМГ. "Родной" магнит звуковой катушку акцептора остается тот же самый. В зону парковки магнитные головки заводятся аналогичным образом, только наоборот. Остается закрутить винт оси позиционера и надеть крышку на гермоблок. При включении винчестера наверняка раздаться жуткий звук, а скорость чтения упадает десятки раз. Это следствие работы с чужим БМГ, на не родных адаптивах. Подтягивая винты крышки, можно до некоторой степени выровнять график чтения. Долго в таком состоянии жесткий диск работать не может, поэтому необходимо как можно скорее приступать к вычитываю поверхности, начиная с наиболее ценных данных. Подробнее об этом читайте в статье "Как я переставлял блок головок на Fujitsu MPG3409AH, чтобы спасти информацию. ("Записки сумасшедшего ремонтника" Сергея Казанского, http://onehalf.pisem.net/stat/heads.html).
 Рисунок 13. Инструмент для перемещения БМГ, изготавливаемый из узкой полоски пластика (1), обжимаемый на разогретом металлическом стержне (2).
Некоторые жесткие диски содержат только одну магнитную головку и в случае ее отказа выгоднее переставлять саму пластину, как показано в уже упомянутом видеоматериале Сергея Яценко: http://pc3k.rsu.ru/video/video03_N40P_disk_swap.avi.
Также приходится сталкиваться с "залипанием" магнитных головок, в прямом смысле слова прилипшим к поверхности за счет сил межмолекулярного притяжения. Некоторые источники рекомендуют в этом случае просто крутануть диск в горизонтальном направлении, но польза от этого действия очень сомнительна, а вот вред оно может нанести немалый и зачастую непоправимый (например, повредить подвески головки с последующим фрезированием магнитной поверхности). Лучше разобрать гермоблок и аккуратно приподнять головки с помощью уже знакомого нам куска изогнутого пластика, вернув их в зону парковки. Подробности - в статье Сергея Яценко: "Восстановление гермоблока IBM DJNA371350 после падения": http://www.acelab.ru/pcTechSupport/DOSvers/MFGFeatures/IBM/VGPP.html (только для зарегистрированных пользователей PC-3000).
Еще встречается повреждение коммутатора/предусилителя или обрыв гибкого шлейфа. Если он расположен непосредственно на БМГ (особенно в микросхеме бескорпусного исполнения), то весь БМГ меняется целиком по вышеописанной методике.
Звуковая катушка в силу своей конструктивной простоты практически никогда не отказывает (там просто нечему ломаться), но вот выводные провода обломаться могут, однако их легко припаять.
 Рисунок 14. Звуковая катушка.
Шпиндельный двигатель очень надежен и перегорает/замыкает обмотками только в исключительных случаях, но вот клин гидродинамического подшипника - вполне распространенное явление, и тогда его приходится расклинивать по методике, описанной в http://www.acelab.ru/pcTechSupport/DOSvers/TechDoc/Barracuda4.html (только для зарегистрированных пользователей PC-3000).
Прошивка, индивидуальные настройки и адаптивы
Электроника диска - это только скелет. Без управляющих микропрограмм она работать не будет! Первые модели винчестеров хранили микропрограммы в ПЗУ, что вызывало естественные неудобства и накладывало определенные ограничения. Теперь же для этой цели используется сам жесткий диск! Разработчик резервирует некоторый объем и размещает в нем весь необходимый код и данные. Информация организована в виде модулей (слабое подобие файловой системы) и управляется специализированной операционной системой. В ПЗУ остается лишь базовый код, своеобразный "фундамент" винчестера. Некоторые производители пошли еще дальше, убрав из ПЗУ все, кроме первичного загрузчика.
Само ПЗУ может быть расположено как внутри микроконтроллера, так и на отдельной микросхеме. Практически все винчестеры имеют FLASH-ROM, но не на всех моделях она распаяна. Если FLASH-ROM установлена, то микроконтроллер считывает прошивку из нее, если нет - обращается к своему внутреннему ПЗУ.
Часть модулей (и информации, находящейся в ПЗУ) одинакова для всей серии винчестеров. К ней в первую очередь относится совокупность управляющих микропрограмм. Эти модули полностью взаимозаменяемы и один диск свободно может работать с модулем другого без каких либо последствий.
Часть модулей (реже - информации из ПЗУ) готовится отдельно для каждой партии. Так, например, паспорт диска, описывающий его конфигурацию, указывает количество головок, физических секторов и цилиндров. В процессе инициализации микропроцессор опрашивает коммутатор и перечисляет головки. Если их количество не совпадает с указанным в паспорте, винчестер может "забастовать" и не войти в готовность. Зачастую производители отключают некоторые головки из-за дефектов поверхности, неисправностей самых головок или по маркетинговым соображениям. Как следствие - образуются внешне очень похожие модели "близнецы", но непосредственная перестановка плат невозможна и паспорт приходится корректировать, для чего опять-таки понадобится PC-3000. Но, в принципе, подобрать донора с идентичным паспортом вполне возможно и без коррекции.
Все зло и коварство происходит от модулей (и часто от информации, зашитой в ПЗУ), уникальных для каждого экземпляра винчестера и настраиваемых строго индивидуально. В частности, каждый жесткий диск имеет как минимум два списка дефектов - P-list (от Primary - первичный) и G-list (от Grow - растущий). В P-list заносятся номера дефектных секторов, обнаруженные еще на стадии заводского тестирования, а G-list формируется самим жестким диском в процессе его эксплуатации. Если запись в сектор происходит с ошибкой, сбойный сектор переназначается другим сектором, взятым из резервной области. Некоторые жесткие диски поддерживают список "подозрительных секторов": если сектор начинает читаться не с первого раза, он замещается, а информация о замещении сохраняется либо в отдельном списке, либо в G-list'е.
Все эти процессы протекают скрыто от пользователя. Специальный модуль, называемый транслятором, переводит физические адреса в номера логических блоков или виртуальные цилиндры-головки-сектора и внешне нумерация секторов не нарушается. Все работает нормально до тех пор, пока P/G-list'ы не оказываются разрушенными или на гермоблок устанавливается плата с чужими настройками. Если P/G-list'ы хранятся во FLASH-ROM (а часто так и бывает), файловая система оказывается полностью неработоспособной, ведь трансляция адресов нарушена! И хотя на секторном уровне все читается нормально, совершенно непонятно, какой сектор какому файлу принадлежит!
К счастью, восстановить транслятор довольно просто, поскольку практически все файловые структуры (да и сами файлы) имеют характерные последовательности байт (сигнатуры). Для начала нужно очистить таблицы транслятора (сгенерировать пустые P/G-list'ы), в противном случае сектора, помеченные у донора как замещенные, не смогут прочитаться на акцепторе. Различные винчестеры имеют различное число замещенных секторов. В некоторых замещенных секторов может не быть вообще, на некоторых их количество может доходить до нескольких тысяч. Формат P/G-list'ов варьируется от одной модели к другой и для работы с ним лучше всего применять PC-3000. В крайнем случае - утилиты от производителей винчестера и ATA-команду unassign.
Затем необходимо просканировать весь диск на предмет поиска характерных сигнатур и загнать их "физические" адреса в список. Разумеется, никакой физикой в подлинном смысле этого слова здесь и не пахнет! Скажем так: логические адреса без переназначенных секторов, но это слишком долго писать.
Теперь, исследуя служебные структуры файловой системы (каталоги, MFT), мы определяем номера кластеров подчиненных структур. Переводим кластеры в сектора и создаем еще один список. В результате у нас получается два списка, между которыми прослеживается четкая корреляция. Первый список как бы "растягивается" вдоль второго. Другими словами, каждый переназначенный сектор увеличивает расхождение между последующими "физическими" и логическими адресами на единицу. Проделав необходимые математические вычисления, мы сможем рассчитать необходимую поправку и как бы восстановить транслятор. "Как бы", потому что целевые адреса замещенных секторов остаются неизвестными, а значит в восстанавливаемых данных образуются "дыры", однако большая часть информации все же возвращается из небытия. PC-3000 автоматически восстанавливает транслятор, используя довольно продвинутые алгоритмы, которые постоянно совершенствуются. Тем не менее, при желании утилиту для восстановления транслятора можно написать и самостоятельно.
А вот чего ни PC-3000, ни другие комплексы не умеют, так это восстанавливать адаптивы. Нашествие адаптивов началось сравнительно недавно. До этого индивидуальные настройки диска сводились к высокоуровневым наслоениям, никак не препятствующим чтению информации на физическом уровне. Перестановка плат могла привести к невозможности работы с диском средством операционной системы, но данные всегда было можно прочитать посекторно стандартными ATA-командами или, на худой конец, на уровне физических адресов в технологическом режиме.
Но плотность информации неуклонно росла и нормативы допусков ужесточались, а, значит, усложнялся и удорожался производственный цикл. В промышленных условиях невозможно изготовить два абсолютно одинаковых жестких диска. В характеристиках аналоговых элементов (катушек, резисторов, конденсаторов) неизбежно возникает разброс, следствием которого становится рассогласование коммутатора/предусилителя. Но с этим еще как-то можно бороться. Сложнее справится с неоднородностью магнитного покрытия, влекущего непостоянность параметров сигнала головки в зависимости от угла поворота позиционера. Таким образом, производитель должен либо уменьшить плотность информации до той степени, при которой рассогласованиями можно пренебречь (но в этом случае для достижения той же емкости придется устанавливать в диск больше пластин, что удорожает конструкцию и вызывает свои проблемы), либо улучишь качество производства (но это настолько нереально, что при современном уровне развития науки, экономики и техники даже не обсуждается), либо калибровать каждый жесткий диск индивидуально, записывая на него так называемые адаптивные настройки. Вот по этому пути производители и пошли.
Состав и формат адаптивных настроек меняется от модели к модели. В грубом приближении сюда входят: ток записи, усиление канала, профиль эквалайзера, напряжение смещения для каждой головки, таблица коррекции параметров каждой головки для каждой зоны и т.д. и т.п. Без своих родных адаптивов жесткий диск просто не будет работать! Даже если случится чудо и чужие адаптивы все-таки подойдут (а чудес, как известно, не бывает) информация будет считываться очень медленно и с большим количеством ошибок. Подобрать адаптивы нереально, рассчитать их в "домашних" условиях - тоже. Но ведь как-то же эти адаптивы возникают? Чисто теоретически, для заполнения таблицы адаптивов не нужно ничего, кроме самого винчестера и некоторые модели жестких дисков даже содержат в прошивке специальную программу Self Scan, как раз и предназначенную для этих целей. Да, она действительно рассчитывает адаптивы, но... при этом уничтожает всю содержащуюся на жестком диске информацию, что делает ее непригодной для наших целей.
Адаптивы могут храниться как на самом диске в служебной зоне (и тогда смена плат проходит на ура, но не работает Hot Swap), либо в микросхеме FLASH-ROM, которую перед заменой плат следует перепаять. Диски без адаптивов встречаются все реже и реже, можно сказать, что практически вообще не встречаются.
Какой диск выбрать?
Своему винчестеру мы доверяем самое дорогое что у нас есть - свои данные. Знакомые меня постоянно спрашивают: какого производителя выбрать? Какой модели отдать предпочтение? Цена не критична. Остальные параметры (ну, быть может, за исключением шума) тоже. Главное - чтобы он не сдох без предупреждений. (Медленная смерть, сопровождающаяся посторонними звуками типа визга или шума и размножающимися BAD-секторами не в счет, тут любому понятно, что диск надо менять). Я сам задаю себе тот же вопрос, но... как говорится, "во вселенной существуют вопросы, на которые нет ответов". У жестких дисков нет надежности. Вместо этого у них гарантийный талон. И точка. На сотни тысяч часов наработки на отказ, приводимых в документации, можно не опираться, поскольку они берутся с потолка и производитель за них не отвечает (а следовало бы...).
Не бывает "хороших" и "плохих" производителей. С каждым брендом случались свои проколы. Независимо от производителя, из партии в тысячу дисков, от одного до десяти винчестеров возвращаются задолго до истечения гарантийного срока, даже если они позиционируются как серверные модели. Все решает вероятность. Кому-то жить, а кому-то умирать.
Правильнее говорить о неудачных (то есть "падучих") моделях. Например, печально известная серия Fujitsu MPG, в которой использовалась микросхема Cirrus Logic с измененным составом подложки, со временем образовывала паразитные утечки и практически все эти винчестеры вымерли в течении двух лет. Или вот IBM DTLA (в просторечии называемый дятлом) с идиотской конструкцией разъема гермоблока, вызывающей периодический неконтакт и как следствие - преждевременный обрыв операции записи. Часть сектора записана, часть - нет. В результате на диске образуются виртуальные BAD-сектора (контрольная сумма не совпадает, но физических дефектов нет), которые можно прочитать, но нельзя восстановить (данные не дописаны). У меня было три дятла. Один сдох в течении первых 2х месяцев, но был успешно отремонтирован и заброшен на полку как враг народа. Два других успешно работают до сих пор. А сколько дисков полетело у моих знакомых - не сосчитать! Все решает слепая вероятность и, может даже, судьба (у одного винчестера - одна карма,
у другого - другая). Ну и качество блока питания, отсутствие вибраций, наконец!
Сбор статистики затруднен еще и потому, что ее просто неоткуда взять. Абсолютное количество отказов само по себе еще ни о чем не говорит. Требуется учесть распространенность данной модели и условия эксплуатации. SCSI-диски надежнее IDE только потому, что они устанавливаются в серверах и работают практически никогда не выключаясь (а большинство неисправностей как раз и происходит в момент включения/выключения), им неведомо что такое перегрев или "винт в сумке".
На сайте фирмы Derstein, занимающейся восстановлением данных, приводится любопытная статистика зафиксированных отказов (http://www.derstein.ru/cgi-bin/stat.cgi?do=show), которую я в сокращенном виде привожу ниже. Одна таблица - по производителям, другая - по моделям.
ПроизводительКоличество зафиксированных отказов
Fujitsu498
IBM393
Maxtor210
Quantum110
Western Digital95
Samsung49
Seagate42
Conner3

Таблица 1. Статистика отказов жестких дисков по производителям.
МодельКоличество зафиксированных отказов
IBM(IC35L040AVER07-0) 41.0 Gb119
Fujitsu(MPG3204AT) 20.4 Gb83
Fujitsu(MPG3409AT) 40.9 Gb57
Fujitsu(MPG3102AT) 10.2 Gb54
Fujitsu(MPG3204AH) 20.4 Gb48
IBM(DTLA 307030) 30.7 Gb37
Fujitsu(MPG3409AH) 40.9 Gb32
IBM(IC35L020AVER07-0) 20.5 Gb31
Fujitsu(MPE3204AT) 20.4 Gb29
Seagate(340016A) 40.0 Gb28

Таблица 2. Статистика отказов жестких дисков по моделям. Как видно, самым наилучшим производителем оказался Samsung (хотя, лично у меня против него стойкое предубеждение и вовсе не факт, что малое количество отказов не вызвано низкой популярностью таких дисков).
Тем не менее, у всех производителей встречаются неудачные модели, к тому же, как уже говорилось, источник отказов зачастую располагается вне диска. Поэтому вопрос о надежности правильнее ставить так: "какой диск имеет наибольшие шансы на успешное восстановление?".
За этим я обратился к ведущему инженеру фирмы ACE Lab Сергею Яценко, через руки которого прошли тысячи дисков: "Ответ на вопрос "какие же диски лучше" в ключе - какие из них проще восстанавливать, более удачны в восстановлении (проще подобрать блок головок в случае проблем с ним, практически нет самоповреждения записи, сравнительно низкое количество экстремально сложных узлов): Seagate, Samsung, Hitachi-IBM(HGST), Fujitsu(2.5"), ну и может быть Toshiba(2.5"), хотя у последней есть очень мерзкая проблема с протеканием подшипника шпиндельного двигателя из-за того, что крышка его не приварена, как у других, а приклеена... Хотя у Maxtor'а она тоже приклеена, но из-за значительно большей толщины и габаритов проблемы с ней не возникают. Название компаний я упорядочил по мере увеличения проблематичности их дисков... Далее идут диски, которые доставляют массу неприятностей при восстановлении, хотя, может, и отказывают не чаще представителей первого списка (этот список также упорядочен по нарастанию глючности):
  • Maxtor (очень "порадовали" глючной записью и нестабильностью головок);
  • WDC (крайне сложно подобрать исправные головки и восстановить функциональность служебной зоны в некоторых случаях, плюс у них статический транслятор, что приводит к невозможности прочитать данные пользователя в случае разрушения модулей транслятора и таблицы дефектов в служебной зоне);
  • Quantum (хотя компании уже нет, но диски продолжают дохнуть и при этом практически невосстановимы). Самый действенный способ восстановления, но не самый продуктивный - это заморозка. В некоторых случаях отмороженный при -10 гр. Цельсия диск в течении где-то получаса начинает отдавать данные... Но этот трюк проходит нечасто. Замена головок у них крайне затруднена и в случае 3- и более голового диска практически нереальна (вернее реальна, но при впечатляющих трудозатратах);
Если у кого-то стоят Quantum AS, советую скорее от них избавится. Maxtor и WDC со своими трудностями справляются с явной неохотой...
Естественно, объективную оценку дать сложно, но ситуация, по тому, что мы наблюдаем, обстоит так."

Заключение
Мы рассматривали исключительно общие вопросы ремонта жестких дисков и в пошаговую методику диагностики не вдавались.
Ремонт жестких дисков в домашних условиях все-таки возможен!