Главная | Контакты



Главная > Программы > mhdd

Быстрее и безопаснее (cтатья о возможностях современных HDD)

Жесткий диск - устройство в любом системном блоке самое неприметное. Купили его, воткнули-ну как там? Все нормально? Не сильно греется? А шум спать любимым родственникам не мешает? Ну вот и славненько. Ну и пусть себе работает. А ведь девайс этот один из самых сложных и навороченных во всем компьютере! И о полном букете его способностей большинство пользователей никогда и не узнает. Точнее, не узнало бы, если бы не существовало такой программы, как MHDD 2.81. Прошлый ее вариант - 2.7.43, уже кратко описан в статье "Нечисть на харде - от BADы подальше" во второй части, где она признается лучшей для скрытия бэд-блоков на винчестерах. Но лечение дисков- далеко не единственная цель, для которой предназначена программа.

1. Как все начиналось

Интерфейс ATA (AT Attachment, он же - IDE) начал разрабатываться в конце 80-х годов как средство подключения дисковых накопителей к шине ISA (http://www.neva.ru/mgook/art/mg-ata.htm).

Со временем накопители совершенствовались, обрастая новыми возможностями. Казалось, пройдет совсем немного времени - и этот стандарт уйдет в прошлое, как когда-то произошло с жесткими дисками MFM. Но волей судьбы это так и не случилось - ATA оказался настолько удобным, что его продолжали подстраивать под стремительно убегающие вперед технологии. Taк один за другим появились модификации ATA-2, 3, 4, затем ATA/ATAPI-5, и, наконец, 7 (www.t13.ogr). И шина ISA давно уже умерла, но остались стандарты для работы с портами 1x0-1x7, которые используются и по сей день для управления самым многочисленным семейством жестких дисков - с интерфейсом IDE. И древний винт начала 90-х, и суперсовременная Barracuda-V, используя одинаковые наборы регистров для обмена данными, полностью совместимы по управлению. Правда, у современных винтов добавлена куча новых команд, таких, как самодиагностика (S.M.A.R.T.), возможность отрезать часть диска с конца (HPA), прямой доступ к памяти для ускорения обмена данными (DMA), возможность понижать уровень шума (AAM), возможность установки пароля на винт (Security Set) и многие другие - все они входят в стандарт ATA и нередко используются в фирменных утилитах для различных хардов.

Но вот беда - в погоне за быстрой прибылью, далеко не все фирмы удосужились выпустить утилиты, в состав которых входит реализация всех возможностей, на которые способен их жесткий диск. Так жестоко, например, поступили фирмы Samsung, Fujitsu и Western Digital- Только фирма IBM включила все ATA-функции в пакет Features Tool. Вот и приходится рядовому пользователю извращаться, пытаясь активизировать ту или инную фичу своего винта с помощью "чужой" утилиты. А из-за того, что такой софт часто пишется "из-под палки", в нем бывает куча неудобств, а иногда и совершенно бессмысленные ограничения - некоторые модели хардов просто отвергаются из-за маркетинговых соображений. "Не купили хард нашей фирмы - нечего нашими программами пользоваться" - считают их разработчики.

Но теперь этот кошмар можно забыть как страшный сон - программа MHDD специально создана для универсального использования ATA-команд на любых хардах, независимо от их производителя. Так как эта программа работает с винтом непосредственно через порты, в ней отсутствуют разные дебильные ограничения, типа работы "только с дискеты" или "только под чистым ДОС". Прога способна работать и в DOS, и под Windows 9x, и с дискеты. Ее можно запускать в любой момент, и в любой момент завершать. И вам больше не нужно скачивать из Сети мегатонны всякой сомнительной хренотени - все, что нужно вашему харду, лежит в одном месте: http://mhdd.net. В комплект входит документация на русском языке и много других полезных рекомендаций. А весит прога всего - 80 кб!

2. Тестирование винтов

Тестирование хардов является основной идеологией программы, и занимает большую часть ее возможностей. Прежде всего зададим себе вопрос: а что такое тестирование жесткого диска вообще? Что полезно знать о нем в первую очередь? Наверняка для многих это прежде всего - скорость чтения/записи, состояние поверхности, SMART-атрибуты, наличие встроенных функций, а если диск уже "заболел" - то и диагностика его неисправностей. И все это умеет MHDD! Выбрав нужный накопитель в меню программы, и нажав клавишу F2 мы получим исчерпывающую информацию о накопителе, а именно:

- полное название модели;
- количество логических цилиндров/головок/секторов на дорожке;
- серийный номер;
- версию микропрограммы;
- количество адресов LBA;
- список всех поддерживаемых ATA-функций и предельного режима DMA;
- состояние SMART: включен или нет;
- наличие аппаратного пароля на винте;
- размер харда в мегабайтах;
- информацию о прохождении важнейших тестов - сброса и рекалибровки (рис. 1)

Инициализация винчестера по команде
Рис. 1. Инициализация винчестера по команде F2.

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

BUSY - накопитель занят и на команды не реагирует;
WRFT - ошибка записи;
DREQ - накопитель жаждет обменяться данными с внешним миром;
ERR - в результате какой-либо операции возникла ошибка. Когда загорается этот бит, обратите внимание на правую верхнюю часть экрана. Там будет отображен тип последней ошибки: (действительно только при зажженной лампочке "ERR"):
AMNF - Adress Mark Not Found - Контроллер не смог обратиться к заданному сектору. Обычно бывает из-за бэд-блоков.
T0NF - Track 0 Not Found - невозможно "найти" 0-й трек;
ABRT - Abort, команда отвергнута;
IDNF - Sector ID Not found;
UNCR - Uncorrectable Error - винт не смог прочитать данные в секторе из-за ошибки, которую он не смог скорректировать ECC-кодом. Обычно возникает из-за софт-бэдов (см.первую часть статьи про бэд-блоки ).

Коды ошибок - это отдельные биты в специальном регистре, содержимое которого сообщает сам винт в ответ на ATA-команды, а программа лишь интерпретирует их в удобную для восприятия форму. Пока винт бездействует, состояние индикаторов почти ни о чем не говорит, но стоит дать винту задание (например запустить скан поверхности клавишей F4), как индикаторы оживут и начнут сообщать о состоянии накопителя в реальном времени. Мы не будем рассматривать сканирование поверхности подробно, ибо об этом уже было описано во второй части статьи про бэд-блоки. Обратим внимание лишь на индикатор скорости в правом верхнем углу: он показывает максимальную скорость считывания данных, на которую способен винт в данный момент. В большинстве случаев этот результат совпадает со значением, выдаваемым другими программами для тестирования HDD, например SiSoft Sandra или HdTach для Windows. А в правом нижнем углу отображается время, оставшееся до конца тестирования - в MHDD 2.81 это новинка, которой не было ни в одной из предыдущих версий.

С помощью MHDD можно оценить и надежность системы позиционирования накопителя. Для этого имеется консольная команда "CX". Она названа так в память о печально известных винчестерах Quantum серии CX - эти винты массово умирали из-за бракованой партии микросхем Philips TDA5247HT, которая управляла движением головок. Чтобы оценить, является ли данный экземпляр винта бракованным, и была придумана эта команда - при ее использовании винт совершает циклические перемещения головок с первого на последний трэк, что приводит к разогреву микросхем и банки. А чтобы винт от этого не сдох, в программу был введен своеобразный предохранитель - при любой ошибке прога останавливает двигатель, переводя винт в ждущий режим (что равносильно выключению питания). Этой командой удобно тестировать б/у накопители, особенно Quantum-ы lct-серий, в которых применяется аналогичная микросхема. Достаточно оставить винт на пару часов в режиме "CX" чтобы выявить все их глюки - в случае неудачного прохождения этого теста будет выдано сообщение "ERROR: Seek Test FAILED!".

Но и это еще не все! В новой версии MHDD были добавлены совершенно уникальные функции - просмотр заводских дефект-листов на хардах IBM и FUJITSU. Это позволяет оценить состояние харда после покупки - чем меньше заводских дефектов, тем он, естественно, лучше. Для этого предназначены команды "IBME" и "FUJLST" - они выводят список дефектов в файлы.

И наконец - в MHDD есть возможность запустить автономные внутренние SMART-тесты, которые протестируют накопитель. Это можно сделать командой SMART TEST (помощь по SMART интегрирована в программу). Подробнее о технологии SMART и SMART-тестах можно почитать здесь: http://pcjs.chat.ru/smartdoc.html.

SMART-тесты
Рис. 2. SMART-тесты.

3. Управление уровнем шума

В последнее время производители всерьез занялись проблемой снижения уровня шума, издаваемого накопителями. Некоторые добились при этом потрясающих результатов - например фирме Seagate удалось снизить шум шпинделя четвертой "барракуды" настолько, что он перестал восприниматься слухом. Но вращающиеся блины - не единственный источник шума в механике жесткого диска. Привод головок тоже шумит - его резкие движения рассекают воздух внутри банки, порождая "хрюкающий" звук позиционирования. Конечно, его можно замедлить, изменив форму тока в катушке на более плавную, но это неизбежно вызовет ухудшение такого важного параметра харда, как время доступа - именно оно определяет быстродействие дисковой подсистемы в многозадачных средах, и при операциях с множеством мелких файлов. В тоже время, бывают задачи, в которых быстрое позиционирование совсем не нужно, а нужна тишина - например при работе в офисных приложениях, при проигрывании музыки и фильмов- Как тут быть? Именно эта проблема была решена разработчиками хардов совсем недавно - в спецификации ATA появилась функция "Automatic Acoustic Management" (AAM) - оперативная регулировка уровня шума, издаваемого накопителем в результате движения головок за счёт уменьшения скорости их перемещения. Управлять AAM могут фирменные утилиты некоторых хардов, например IBM и Maxtor. Но они делают это крайне неудобно - пользователь не имеет возможности быстро оценить текущий уровень шума. В MHDD все это реализовано намного удобней: достаточно ввести "AAM" в консоль, и винт сам начнет трещать головками, демонстрируя свой уровень шума. A изменить его можно клавишами (минимальный уровень шума), "L" (средний) и "P" (максимальный). Клавиша "D" выключает AAM совсем, при этом винт становится максимально быстрым, но в тоже время и максимально громким. Переключать винт можно прямо из Windows 9x в любое время, в отличие от других "фирменных" утилит (см. рис.3)

Automatic Acoustic Management
Рис. 3. Automatic Acoustic Management.

4. Опции безопасности

Вам никогда ни хотелось защитить свою информацию от посторонних? Безусловно, такое желание иногда возникает, особенно если за компьютером работает несколько человек. Личная переписка, документы, а то и просто хорошо отлаженная операционная система - вот далеко не полный список того, что хочется беречь и защищать от чужого вторжения. Наиболее распространенный способ ограничения доступа к конфиденциальной информации - создание шифрованных разделов на винте, архивирование с паролем, запароливание всей файловой системы на логическом уровне (специальными программами в boot-секторе HDD), а иногда и физическая смена жесткого диска целиком (например - использование мобил-рэка). Но у такой защиты есть множество недостатков. Информация все равно остается на носителе, и хотя она в явном виде не доступна (программы защиты часто ограничиваются шифровкой лишь загрузочной записи, оставляя неизменной даже FAT), ее можно легко извлечь с такого диска, натравив на него дисковый редактор, или, (что проще ;) - одну из программ для спасения информации, например всем известную Easy Recovery. Шифровка файлов "на лету" более устойчива к взлому, но для ее работы требуется постоянно находящийся в памяти резидент, перехватывающий часть API системы и создающий немалую нагрузку на центральный процессор. И никто не застрахован от сглючивания или зависания такой программы в самый неподходящий момент. Да и в случае повреждения шифрованного раздела (например, вирусами), извлечь с него информацию будет крайне сложно. В идеале система безопасности должна соответствовать 3-м основным требованиям: 1) быть независимой от ОС, файловой системы, компьютера и их глюков. 2) Быть надежной и трудноломаемой. 3) Не отнимать ресурсы системы. И так и осталось бы это мечтой, если бы никто не догадался поручить это- контроллеру жесткого диска!

Это было предложено разработчиками стандарта ATA/ATAPI-3 (www.t13.org) еще в 1996 году, однако винты, реально поддерживающие security-функции, появились сравнительно недавно. Называется эта фишка "Security Set", а в просторечии - ATA-пароль. Она позволяет защитить все содержимое винта не только от чтения, но и от записи, и даже от низкоуровневого форматирования! Этого удалось добиться, встроив программу защиты непосредственно в винт. С внешним миром она общается через обычный IDE-интерфейс - нужна только утилита, способная это правильно делать. BIOS-ы некоторых материнских плат умеют ставить пароль на современные винты, а на многих ноутбуках (например фирмы DELL), это уже давно стало нормой.

Но теперь нам не надо быть обладателем супер-крутой платы или ноутбука, чтобы защитить свою инфу - это можно делать на любом компьютере с помощью MHDD! Причем, не только из BIOS, но и из DOS и Windows 9x в любое удобное время. Попробуем разобраться, как это работает.

Запускаем MHDD, и нажав комбинацию клавиш "SHIFT+F3", выбираем винт, доступ к которому мы хотим закрыть. Нажимаем F2. Обратите внимание на строку "Security: High, Off" - она означает, что пароль на винт не установлен (рис. 4).

Установка пароля на жесткий диск
Рис. 4. Установка пароля на жесткий диск

Теперь набираем в консоли "PWD". Программа попросит ввести пароль "Type password max 32sym-". Внимательно введите пароль из любых печатных символов, допустимо вводить цифры, пробелы и знаки препинания. Как и при любом низкоуровневом доступе, символы кириллицы вводить нежелательно. Количество знаков не должно превышать 32. Постарайтесь ничего не перепутать, иначе, забыв пароль, вы рискуете потерять накопитель! После ввода нажмите ENTER. Пароль через интерфейс уйдет в винт. Нажав F2, вы увидите, что сообщение сменилась на "Security: High, ON", а наверху, огненными буквами высветилось страшное слово: "PWD". Однако, пароль вступит в силу не сразу, а только после выключения питания. При последующем включении компа произойдет перезапуск внутренней микропрограммы винта, и он заблокируется. Такой накопитель будет корректно опознаваться BIOS, но при попытке загрузиться с него, записать или прочитать информацию, возникнет очень крутой облом: винт будет отвергать любые действия, связанные с доступом к его информационной зоне. И не поможет здесь ни дисковый редактор, ни низкоуровневое форматирование, ни подключение к другому компьютеру, ни даже перестановка контроллера от другого винта! Пароль хранится на блинах, в области инженерных цилиндров, доступных только в технологическом режиме. И где конкретно он находится, знают только производители и ремонтники хардов - обычному пользователю снять пароль скорей всего, не удастся. Винт с паролем можно оставлять в компьютере подключенным, при загрузке система его не увидит (но он будет присутствовать в списке устройств:). Это очень удобно, если на компе имеется несколько винчестеров. А если винт один, то MHDD можно загружать с дискеты - таким образом вы превратите ее в электронный ключ к жесткому диску.

С установкой разобрались, а как теперь его снять? Для этого в MHDD есть две команды: "UNLOCK" и "DISPWD". Первая команда пароль не снимает, а лишь подготавливает винт к его снятию. Вторая - снимает. В обоих случаях должен быть введен правильный пароль. Рассмотрим пример (рис. 5)

Снятие пароля с жесткого диска
Рис 5. Снятие пароля с жесткого диска

Выбрав нужный нам винт через "SHIFT+F3" и нажав F2, вводим в консоль "UNLOCK". На просьбу ввести пароль - вводим его. Программа ответит "Done", даже если пароль был введен неверно. Затем набираем "DISPWD" и снова вводим пароль на запрос. Нажимаем ENTER. Если в обоих случаях пароль был введен правильно, винт будет немедленно разблокирован, в чем можно убедиться, нажав F2 - огненная надпись "PWD" должна исчезнуть. Если пароль был неверным, появится надпись "Fail". После пяти неправильных попыток винт перестает реагировать на команды, выдавая "Fail" в любом случае - нужно выключить и включить питание, чтобы возобновить работу. Поэтому будьте очень внимательны при выборе пароля - он является аппаратным, и при его утере вы потеряете хард как физическое устройство!

Насколько надежна такая защита? От простого пользователя - 100%. Пароль нельзя обойти без специальных технологических программ, которые, естественно, не распространяются. Его нельзя "сбросить", как это часто делают с забытым паролем в BIOS материнских плат. Но от профессионала ATA-пароль не спасет - его могут удалить те, кто имеет доступ к служебной зоне харда, например ремонтники, или владельцы аппаратно-программного комплекса PC3000 последней версии (www.acelab.ru/products/pc/pc3000.html).

Существуют и другие программы для работы с ATA-функциями жестких дисков, например ATA Security Tool (www.upsystems.com.ua/support/alexmina), которая обладает большими возможностями. В комплекте есть отличная документация на русском языке, которую очень полезно почитать всем, кто заинтересовался работой с ATA-паролями HDD.

6. Опции ремонта

Так как про скрытие бэд-блоков уже написана статья "Нечисть на харде - от BADы подальше" , то мы не будем повторяться. В той статье была описана работа с версией 2743. Но из-за того, что автор программы постоянно разрабатывает новые методы решения проблем с HDD для рядовых пользователей, новые версии MHDD появляются со скоростью пулемета. И в каждой - новые возможности, зачастую не имеющие аналогов в других программах. Так вышло и в этот раз - в менюшке сканирования поверхности, вызываемой через F4, появилась новая опция "ERASE WAITs". Она предназначена для быстрого удаления софт-бэдов без потери информации. Как мы уже писали, софт бэды - это неправильно записанные секторы, у которых не совпадает контрольная сумма поля данных с реальным его содержимым. Особенно часто такое бывает на винтах IBM DTLA. Когда контроллер винта натыкается на такое "чудо", он замечает несовпадение, и думая, что бэд-блок физический, пытается скорректировать ошибку. Для этого винт читает сектор многократно, ожидая совпадения, но это ему не удается, и он выдает ошибку "UNCR" на интерфейс. Для ОС это выглядит как бэд-блок, хотя на самом деле его там нет - достаточно переписать сектор чем угодно, чтобы винт пересчитал контрольную сумму и тем самым "вылечил" его. Долгое время для этого использовали полную очистку поверхности от информации путем "низкоуровневого" форматирования носителя - принудительной записи нулей во все секторы. Но во первых, это приводило к полному уничтожению информации, а во-вторых - занимало очень много времени. А что делать, если софт-бэды образовались на каком-нибудь важном текстовом файле? Из-за одного-единственного дефектного сектора, скопировать этот файл становилось невозможным - ОС не позволяла.

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

Опции сканирования поверхности и ремонта
Рис. 6. Опции сканирования поверхности и ремонта

Заключение

Вот и все пока. Читайте внимательно документацию к этой замечательной программе, пишите ее автору, и будем надеется, что у вашего жесткого диска никогда не будет неразрешимых проблем. А если вы захотите помочь создателю MHDD в его нелегком деле, программу можно зарегистрировать (подробности на www.maysoft.com.ua/mhdd.shtml ), и даже получить доступ в закрытую конференцию. Удачи!


Программа MHDD умеет работать с пакетными файлами, которые позволяют тестировать накопитель в автоматическом режиме, выявляя возможные неполадки. Запустить пакетный файл можно клавишей F5.

Внимание! Этот тест стирает информацию, так как выполняет запись на диск.

Вот пример теста для винчестеров Fujitsu MPG, слабое место винчестеров Quantum lct серий - микросхема управления движением головок. Поэтому тест для этих винчестеров будет другим:

V1.0  
HALT_On
DRV_SELECT V1.0
DRV_RESET HALT_On
DRV_SEEK 30 DRV_SELECT
DRV_RESET DRV_SEEK 30
DRV_STOP DRV_RESET
pause 6 DRV_STOP
DRV_SEEK 30 pause 6
DRV_RESET DRV_SEEK 30
DRV_SCAN MIN 100000 0 DRV_RESET
DRV_ERASE min 50000 DRV_SEEK 300
DRV_SEEK 30 DRV_SCAN MIN MAX 0
DRV_ERASE min 50000 DRV_STOP
DRV_SEEK 30
DRV_SCAN MIN 100000 0
ENDSND_ON
DRV_ERASE min max
DRV_SCAN MIN MAX 2
DRV_ERASE min max
DRV_SCAN MIN MAX 0
DRV_STOP

Интересные факты:

Программа MHDD позволяет стирать содержимое диска командой "ERASE". Но как выяснилось, кроме своего прямого назначения, этот режим хорошо подходит для выявления глюков винчестеров Fujitsu MPG. При намечающихся неполадках в контроллере эти винты не выдерживают записи, и тест заканчивается с ошибкой через 30-60 минут.

- Начиная с версии 2.8, программа работает с дополнительными UDMA-контроллерами.
- MHDD не работает с CDROM-а, т.к. на защищенном от записи диске не может создать файлы, необходимые для работы.
- В версии 2.81 введена возможность просмотра SMART-атрибутов. Для этого достаточно набрать команду - . Помощь по команде SMART интегрирована в MHDD (можно просто набрать ).
- Нормальное количество заводских дефектов для дисков IBM DTLA - несколько тысяч. Для винтов Fujitsu - от 0 до нескольких сотен.
- Eсли вам нужно разбить винт на один раздел (на всю емкость), необязательно использовать программу fdisk от Microsoft. Это может сделать MHDD намного быстрей. Для этого нужно ввести команду fdisk и ответить (Yes) на запрос. При этом определять винт в BIOS необязательно. Только будьте внимательны при выборе накопителя - вся операция происходит мгновенно!

Автор: Сергей Казанский

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

Опубликовано в журнале UPGRADE #52 (90) http://www.computery.ru/upgrade/

Материал взят с сайта: http://onehalf.pisem.net/stat/mhdd.html

Главная > Программы > mhdd