Авторское право и отказ от гарантий
Вы можете распространять MHDD без ограничений. Вы можете дизассемблировать и исследовать код MHDD в образовательных целях без ограничений. Вы не можете продавать MHDD.
Отказ от гарантий: Используйте это программное обеспечение «как есть». MHDD — это очень мощная, и, в то же время, очень опасная программа. Никто не может нести ответственность за любой вред, причинённый программой MHDD.
О проекте MHDD
MHDD — это небольшая, но мощная бесплатная программа, которая предназначена для работы с накопителями на самом низком уровне (насколько это возможно). Первая версия была выпущена в 2000 году мной, Дмитрием Постриганём. Она была способна произвести сканирование поверхности накопителя с интерфейсом IDE в режиме CHS. Моя главная цель — разработать диагностическое ПО для накопителей, которому бы доверяли.
Сейчас MHDD — это значительно больше, чем диагностика. Вы можете делать всё что угодно при помощи MHDD: диагностировать накопители, выполнять чтение/запись произвольных секторов, управлять системой SMART, парольной системой, системой управления шумовыми характеристиками, а также изменять размер накопителя.
Если у вас есть возможность материально помочь проекту — вот номера кошельков автора MHDD в системе Webmoney: Z681153514525; R131877337643.
Где взять MHDD
Когда вам нужна свежая копия MHDD, пожалуйста, всегда используйте сайт http://www.ihdd.ru/. Вы можете скачать MHDD в виде образа CD, как самораспаковывающийся образ флоппи-диска, или в виде архива.
Документация постоянно обновляется, поэтому доступна только по текущему адресу.
Что находится внутри MHDD
Код: Выделить всё
mhdd.exe Исполняемая программа
mhdd.hlp Этот файл используется системой справки по SMART командам
cfg/mhdd.cfg В этом файле MHDD хранит конфигурацию
Как это работает
Давайте представим, как работает операционная система MSDOS, когда ей нужно прочитать какой-либо сектор с накопителя. MSDOS просто «попросит» BIOS сделать это. Затем, BIOS ищет в своих таблицах адреса портов нужного накопителя, выполняет необходимые проверки, и затем начинает обмен данными с накопителем. После того, как всё закончено, BIOS возвращает результат операционной системе.
Давайте посмотрим на диаграмму. Здесь показано, как обычная DOS-программа работает с накопителем:
Код: Выделить всё
Программа <---> MSDOS <---> BIOS <---> Контроллер IDE/SATA <---> Накопитель
А теперь давайте обратим внимание на то, как работает MHDD:
Код: Выделить всё
MHDD <---> Контроллер IDE/SATA <---> Накопитель
Главное отличие: MHDD не использует функции BIOS и прерывания. Таким образом, у вас даже нет надобности определять накопитель в BIOS Setup. Вы можете даже включать накопитель уже после того, как загрузится MSDOS и MHDD, так как MHDD работает напрямую с регистрами накопителя и не обращает внимания на такие «мелочи» как, например, разделы, файловые системы и ограничения BIOS.
Внимание: Никогда не запускайте MHDD с накопителя, который находится на том же физическом IDE канале (кабеле), к которому (к кабелю, к каналу) подключается тестируемый накопитель. Вы будете иметь значительные повреждения данных на обоих накопителях! В связи с этим, по умолчанию, MHDD не работает с каналом PRIMARY, так как у большинства пользователей именно там находится MHDD. Для того, чтобы разблокировать канал Primary, запустите MHDD, затем выйдите, затем отредактируйте файл MHDD.CFG. Или же используйте ключ командной строки /ENABLEPRIMARY.
Для доступа к SCSI-устройствам MHDD использует DOS ASPI драйвер. Если вы не планируете работать с накопителями SCSI — значит, вам не нужны никакие драйверы.
Аппаратные требования и поддерживаемое аппаратное обеспечение
Платформа:
Процессор Intel Pentium или лучше
4 мегабайта оперативной памяти
DR-DOS, MSDOS версии 6.22 и выше
Любое загрузочное устройство (USB, CDROM, FDD, HDD)
Клавиатура
IDE/SATA контроллеры:
Любой интегрированный в северный мост (адреса портов: 0x1Fx для канала primary, 0x17x для канала secondary)
Контроллеры PCI UDMA (определяются автоматически): HPT, Silicon Image, Promise (не все), ITE, ATI, возможно, другие. Даже некоторые RAID контроллеры поддерживаются (в этом случае MHDD работает с каждым физическим накопителем отдельно)
Контроллеры UDMA/RAID, интегрированные в материнскую плату в виде отдельной микросхемы
Накопители:
Любой IDE или Serial ATA объёмом не меньше 600 мегабайт. Режим LBA поддерживается полностью, однако, я убрал CHS-код из MHDD в версиях 3.x
Любой IDE или Serial-ATA объёмом не больше 8388607 терабайт. Режим LBA48 поддерживается полностью
Любой SCSI накопитель с размером сектора от 512 до 528 байт
Диагностируемый накопитель IDE должен быть переключен в режим MASTER. Все устройства SLAVE должны быть отключены.
Другие устройства
Любое устройство типа SCSI removable media, например, CDROM, лента. Максимальный поддерживаемый размер сектора составляет 4096 байт
Скачивание установочного пакета MHDD
Вам необходимо решить, какой пакет вам необходим: образ CD, образ дискеты или просто архив. Посетите сайт http://www.ihdd.ru/ для скачивания соответствующего пакета.
Вы можете записать образ CD при помощи любого ПО, поддерживающего запись ISO-образов. Ваш CD будет загрузочным.
Первый запуск. Важная информация
Некоторые люди считают, что MHDD — очень сложная программа. Они предполагали, что MHDD должна быть очень простой, но когда они, не прочитав документацию, запускали её в первый раз — приходило разочарование. MHDD — это очень сложная и опасная программа. Намного легче осваивают MHDD те, кто знаком с внутренним устройством накопителей. Если вы хотите получить соответствующие знания, вы можете начать знакомство с этого сайта: http://t13.org/.
Очень важно понимать, что вам придётся потратить несколько часов, а возможно и дней, прежде чем вы получите осмысленные результаты от MHDD. Я настоятельно рекомендую попробовать протестировать несколько накопителей без дефектов перед тем, как вы начнёте работать с неисправными.
При первом запуске программа создаст новый файл ./cfg/mhdd.cfg. Канал IDE Primary отключен по умолчанию. Если вы действительно хотите «включить» его — пожалуйста, прочтите это.
Вы увидите меню выбора накопителей. Выберите любое устройство, которое захотите. Вы можете вызвать это меню в любое время нажатием SHIFT+F3.
Теперь вы можете нажать F1 и использовать любые команды MHDD. Пожалуйста, будьте предельно внимательны, когда работаете с MHDD первые несколько раз.
Я бы посоветовал начать знакомство с команд EID, SCAN, STOP, CX и TOF. Некоторым из них назначены комбинации клавиш, например F4 для команды SCAN.
Взгляните на регистры. Любое IDE или Serial ATA устройство должно сообщать DRIVE READY и DRIVE SEEK COMPLETE, таким образом, вы должны видеть флаги DRDY и DRSC. Флаг BUSY сигнализирует о том, что накопитель выполняет какую-либо операцию (например, чтение или запись). Некоторые флаги, такие как WRITE FAULT и TRACK 0 NOT FOUND являются устаревшими, вы никогда их не должны видеть. Флаг INDEX также является устаревшим, однако, иногда он может мигать. Флаг DATA REQUEST (DREQ) означает, что диск запрашивает передачу данных.
Если вы заметили флаг ERROR (ERR), посмотрите на регистр ошибок. Вы сможете определить тип возникшей ошибки. Смотрите ATA/ATAPI standard для получения дальнейшей информации о командах и регистрах.
Использование команд MHDD
Сканирование поверхности
Сканирование любого устройства возможно только если оно может быть определено командами ID или EID (или по нажатию F2). Для того, чтобы выполнить сканирование, наберите SCAN и нажмите ENTER, или используйте F4. Вы увидите меню, где сможете изменить некоторые настройки. По умолчанию, начальный сектор равен нулю (стартовый сектор). Конечный сектор равен максимально возможному (конец диска). Все деструктивные по отношению к пользовательским данным функции (Remap, Erase Delays) по умолчанию выключены.
Нажмите F4 снова для запуска сканирования. MHDD сканирует накопители блоками. Для накопителей IDE/SATA один блок равен 255 секторам (130560 байт).
Как работает сканирование
Код: Выделить всё
1. MHDD посылает команду VERIFY SECTORS с номером LBA (номер сектора)
и номером секторов в качестве параметров
2. Накопитель поднимает флаг BUSY
3. MHDD запускает таймер
4. После того, как накопитель выполнил команду, он опускает флаг BUSY
5. MHDD вычисляет затраченное накопителем время и выводит соответствующий
блок на экран. Если встретилась ошибка (bad block), программа выводит
соответствующую букву, которая описывает ошибку.
Если сканирование выявило ошибки, первое, что необходимо сделать — это скопировать все данные с накопителя. Затем необходимо выполнить полное стирание поверхности при помощи команды ERASE, которая стирает каждый сектор на вашем накопителе. Накопитель пересчитает поля ECC для каждого сектора. Это помогает избавиться от так называемых «soft-bad» блоков. Если стирание не помогло, запускайте сканирование с включенной опцией REMAP.
Если вы видите, что каждый блок содержит ошибку, не пытайтесь стирать накопитель либо производить сканирование с включенной опцией REMAP. Скорее всего, у накопителя повреждена служебная область, и это не может быть исправлено стандартными командами MHDD.
Просмотр атрибутов SMART
Вы можете набрать SMART ATT или нажать F8 для просмотра атрибутов. Что они означают?
Пожалуй, самый главный атрибут для современного накопителя — это «Reallocated Sectors Count» (значение Raw). Это значение сообщает, сколько на диске переназначенных секторов. Нормальный накопитель имеет raw-значение, равное нулю. Если вы видите значение более 50 — у накопителя проблемы. Это может означать брак блока питания, вибрация, перегрев, или же просто бракованный накопитель.
Взгляните на атрибут 194 — температура. Хорошие значения лежат в промежутке между 20 и 40 градусами. Некоторые накопители не сообщают температуру.
Атрибут UDMA CRC error rate означает количество ошибок, которые возникают при передаче данных по IDE/SATA кабелю. Нормальное raw-значение этого атрибута равняется нулю. Если вы видите другое значение, вам нужно срочно заменить кабель. Также, разгон очень влияет на количество ошибок такого типа.
Другие атрибуты, обычно, не так важны. Смотрите ATA/ATAPI standard для получения дополнительной информации о атрибутах и тестах SMART.
Команды идентификации накопителя
Попробуйте команды ID и EID для того чтобы просмотреть информацию о вашем накопителе.
Смотрите ATA/ATAPI standard для получения дополнительной информации.
Стирание групп секторов или целого диска
Вы можете использовать команду ERASE. Если ваш накопитель был опознан в BIOS Setup (или же при тесте POST), MHDD попытается использовать функции BIOS для стирания накопителя в режиме UDMA. Если вы не хотите, чтобы MHDD пыталась использовать BIOS, используйте параметр /DISABLEBIOS.
Уменьшение объёма накопителя
Используйте команду HPA для ограничения объёма накопителя. Программа спросит новое количество доступных секторов. Для того, чтобы снять установленные ограничения, используйте команду NHPA. Производите цикл «выключение-включение» накопителя перед использованием команды NHPA. В соответствии с ATA/ATAPI standard, вы можете изменять объём накопителя только один раз за один цикл работы накопителя.
Управление парольной защитой
Используйте команду PWD для блокировки накопителя при помощи пользовательского (USER) пароля. В соответствии с ATA/ATAPI standard, вам необходимо произвести выключение и включение накопителя для того, чтобы изменения вступили в силу.
В MHDD есть две команды для разблокировки накопителей: UNLOCK и DISPWD. UNLOCK производит разблокировку накопителя до первого выключения. Для того, чтобы отключить парольную систему, вам необходимо использовать сначала команду UNLOCK, а замем команду DISPWD (пароль должен быть известен).
Мастер-пароль устанавливается производителем и может быть использован для разблокировки. Более подробная информация доступна в этой статье: Парольная система современных накопителей.
Чтение секторов в файл
Вы можете считать всего несколько секторов или целый диск в файл или в набор файлов. Попробуйте команду TOF. Программа пропускает дефектные сектора. Если вы планируете создавать образ размером более 1 гигабайт, лучше использовать команду ATOF, так как она умеет автоматически «нарезать» образы.
Запись секторов из файла на диск
Используйте команду FF для записи секторов на диск. Вас попросят ввести номер первого сектора для записи и количество записываемых подряд секторов.
Управление шумовыми характеристиками накопителя
Почти все современные накопители поддерживают Acoustic Management. Вы можете уменьшить уровень шума, издаваемого при перемещении головок, путём уменьшения скорости их перемещения. Используйте команду AAM для настройки.
Конфигурация накопителя
При помощи команды CONFIG вы можете просматривать и изменять конфигурацию накопителя, например, максимальный режим UDMA, поддержка систем Security, SMART, AAM, HPA, поддержка режима LBA48. Также возможно изменение размера диска. Некоторые производители уменьшают размер диска при помощи изменения конфигурации, у вас есть возможность восстановить оригинальный объём.
Пакетный запуск команд
Вы можете написать очень простой пакетный файл (смотрите пример в каталоге BATCH), где вы опишете всё, что вы хотите выполнить. Нажмите F5, когда захотите запустить такой файл на исполнение.
Другие команды
Нажмите F1. Вы увидите краткую справку по всем командам MHDD. Для получения более детальной информации, пожалуйста, пользуйтесь командой MAN.
Параметры командной строки
Код: Выделить всё
/NOPINGPONG Отключить некоторые звуки
/DISABLEBIOS Отключить стирание (ERASE) через BIOS
/DISABLESCSI Отключить модуль SCSI
/ENABLEPRIMARY Подключить канал Primary IDE/SATA
/RO Этот ключ служит для запуска MHDD на
защищённых от записи носителях. Он отключает
попытки создать временные файлы, а так же
отключает протоколирование.
Список часто задаваемых вопросов и ответы на них вы можете найти здесь