Как узнать протокол жесткого диска

Обновлено: 29.11.2022

В статье рассматривается, как осуществить доступ к IDE-диску на программном уровне при помощи файла устройства и через порты ATA контроллера.

1. Файлы устройств

Файл - основа любой операционной системы, поскольку именно с ним производится наибольшее число действий. В UNIX- и POSIX-системах существуют файлы следующих типов:

  • - обычный файл;
  • - каталог;
  • - FIFO-файл;
  • - байт-ориентированный файл устройства;
  • - блок-ориентированный файл устройства;

Блок-ориентированный файл устройства служит для представления физического устройства, которое передает данные блоками. Примером блок-ориентированного устройства является жесткий диск. Байт-ориентированный файл устройства служит для представления физического устройства, которое передает данные побайтово (например, модем).

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

Файл устройства создается командой mknod, одним из аргументов которой является старший номер устройства (major device number). По сути старший номер - это индекс в таблице ядра, которая содержит адреса всех драйверов, известных системе. В ОС Linux создаются две таблицы - таблица блочных устройств (block device switch) и таблица символьных устройств (character device switch). Обе таблицы являются массивом структур и проиндексированы при помощи значения старшего номера устройства. Таблица блочных устройств определена в файле fs/block_dev.c следующим образом:

Этот массив заполняется во время регистрации блочного устройства в системе. Для регистрации устройства соответствующий драйвер вызывает функцию register_blkdev (см. файл fs/block_dev.c):

Аргумент major - старший номер устройства, name - имя файла устройства, структура struct block_device_operations содержит функции, выполняемые драйвером устройства. Однако функции read и write в этой структуре отсутствуют. Дело в том, что пользовательский процесс не выполняет напрямую операции чтения/записи в блочное устройства. Для этой цели драйвер предоставляет системе механизм request, и все операции ввода/вывода выполняются через буферный кеш системы, но это тема для отдельной статьи.

При снятии регистрации соответствующий элемент массива blkdevs обнуляется:

Таблица символьных устройств определена в файле fs/devices.c и также является массивом структур, который заполняется при регистрации устройства в системе:

Структура struct file_operations определена в файле linux/fs.h и содержит функции, выполняемые драйвером символьного устройства.

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

Кроме операций чтения/записи, драйвер также предоставляет возможность управления устройством. Операция управления осуществляется при помощи функции ioctl. Эта функция вызывается пользовательским процессом и имеет следующий прототип:

Аргументы функции:
int fd - файловый дескриптор устройства;
int cmd - команда, посылаемая устройству.

Третий параметр является специфичным для каждого устройства, поэтому в прототипе функции не указан.

2. Доступ к жесткому диску через файл устройства

Предположим, что в системе присутствует один накопитель на жестком магнитном диске, который подключен как Primary Master. Согласно обозначениям блочных устройств, принятым в ОС Linux, ему соответствует файл устройства /dev/hda. Разработаем программный модуль, выполняющий чтение первого сектора (MBR) и получающий информацию об устройстве, такую как модель жесткого диска, его серийный номер, геометрию (число цилиндров/головок/секторов) и число логических блоков.

Нам понадобятся следующие заголовочные файлы:

Для доступа к устройству достаточно стандартным способом открыть соответствующий файл устройства:

Для получения информации идентификации устройству посылаем команду HDIO_GET_IDENTITY. Команда идентификации позволяет считать из контроллера блок из 256 слов, характеризующих устройство. Результат будет сохранен в структуре struct hd_driveid ide, адрес которой задается в качестве третьего аргумента функции

Отобразим информацию идентификации устройства:

Считываем первый сектор и сохраняем его в отдельном файле:

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

3. Интерфейс АТА

Ниже приведены краткие сведения об интерфейсе АТА-2. Для получения детальной информации обратитесь к спецификации.

3.1. Регистры АТА контроллера

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

Блок командных регистров служит для посылки команд устройству и передачи информации о его состоянии. Состав блока командных регистров:

1. Регистр состояния/команд - в режиме чтения отражает текущее состояние устройства в процессе выполнения команды. Чтение регистра состояния разрешает дальнейшее изменение его бит и сбрасывает запрос аппаратного прерывания. В режиме записи принимает коды команд для выполнения.

Назначение бит регистра состояния:

Бит 7 - BSY (Busy) указывает на занятость устройства. При единичном значении устройство игнорирует попытки записи в блок командных регистров. При нулевом значении этого бита регистры командного блока доступны. Бит устанавливается под действием аппаратного или программного сброса, а также при получении команды.

Бит 6 - DRDY (Device Ready) указывает на готовность устройства к восприятию любых кодов команд.

Бит 5 - DF (Device Fault) - индикатор отказа устройства.

Бит 4 - DSC (Device Seek Complite) - индикатор завершения поиска трека.

Бит 3 - DRQ (Data Request) - индикатор готовности к обмену словом или байтом данных.

Бит 2 - CORR (Correct Data) - индикатор исправленной ошибки данных.

Бит 1 - IDX (Index) - индекс, трактуется специфично для каждого производителя.

Бит 0 - ERR (Error) - индикатор ошибки выполнения предыдущей операции. Дополнительная информация содержится в регистре ошибок.

2. Регистр номера цилиндра (старшего и младшего байта) и номера сектора имеют двоякое назначение в зависимости от выбранной системы адресации (CHS или LBA). Они инициализируются хост-адаптером, а в случае возникновения ошибки при операции устройство поместит в них адрес, по которому встретилась ошибка.

3. Регистр номера устройства и головки кроме хранения части адресной информации служит для выбора ведущего или ведомого устройства (Device-0 и Device-1 согласно спецификации ATA) и метода адресации.

Биты 7 и 5 - зарезервированы.

Бит 6 - единичным значением указывает на применение режима адресации LBA. При нулевом значении бита используется режим CHS.

Бит 4 - DEV (Device) - выбор устройства. При DEV=0 выбрано устройство-0 (Master), при DEV=1 - устройство-1 (Slave).

Биты 3-0 имеют двоякое назначение в зависимости от выбранной системы адресации. В режиме CHS они содержат номер головки, в режиме LBA - старшие биты логического адреса.

5. Регистр ошибок хранит состояние выполнения последней операции или диагностический код.

6. Регистр свойств (Features Register) - используется в зависимости от команды.

7. Регистр счетчика секторов содержит число секторов, участвующих в обмене. Нулевое значение соответствует 256 секторам.

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

В состав блока входят альтернативный регистр состояния и регистр управления устройством.

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

В регистре управления устройством биты 7-3 зарезервированы, бит 0 всегда нулевой, используются только два бита:

Бит 2 - SRST (Software Reset) - программный сброс, действует все время, пока бит не будет сброшен. Оба устройства шины воспринимают программный сброс одновременно.

3.2. Протокол взаимодействия

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

1. Хост читает регистр состояния устройства, дожидаясь нулевого значения бита BSY.

2. Дождавшись освобождения устройства, хост записывает в регистр номера устройства и головки байт, у которого бит DEV указывает на адресуемое устройство.

3. Хост читает основной регистр состояния адресованного устройства, дожидаясь признака его готовности (DRDY = 1).

4. Хост заносит требуемые параметры в блок командных регистров.

5. Хост записывает код команды в регистр команд.

6. Устройство устанавливает бит BSY и переходит к исполнению команды.

Для команд, не требующих передачи данных (ND):

7. Завершив исполнение команды, устройство сбрасывает бит BSY и устанавливает запрос прерывания. К этому моменту в регистрах состояния и ошибок уже имеется информация о результате выполнения.

Для команд, требующих чтения данных в режиме PIO:

7. Подготовившись к передаче первого блока данных по шине АТА, устройство устанавливает бит DRQ. Если была ошибка, она фиксируется в регистрах состояния и ошибок. Далее устройство сбрасывает бит BSY и устанавливает запрос прерывания.

8. Зафиксировав обнуление бита BSY (или по прерыванию), хост считывает регистр состояния, что приводит к сбросу прерывания от устройства.

9. Если хост обнаружил единичное значение бита DRQ, он производит чтение первого блока данных в режиме PIO (адресуясь к регистру данных). Если обнаружена ошибка, считанные данные могут быть недостоверными.

После передачи блока данных возможно одно из следующих действий:

- если на шаге 8 ошибка не обнаружена, а требуется передача следующего блока, устройство устанавливает бит BSY, и данная последовательность повторяется с шага 7.

- если есть ошибка или передан последний блок данных, устройство сбрасывает бит DRQ и выполнение команды завершается.

Операцию записи на жесткий диск рассматривать не будем.

4. Доступ к жесткому диску через порты АТА контроллера

Задача прежняя - получить информацию идентификации устройства и считать MBR.

Рассмотрим программный код.

Для работы с портами ввода/вывода определим несколько макросов:

Макрос OUT_P_B осуществляет запись байта в порт, макросы IN_P_B и IN_P_W - чтения байта/слова из порта.

Для работы с устройством определим несколько функций.

Функция проверки статуса устройства (занято/свободно):

Проверка статуса устройства осуществляется проверкой значения бита 7 (BSY) регистра состояния. Если бит сброшен, устройство свободно и регистры контроллера доступны.

Функция проверки готовности устройства к восприятию команд:

Устройство готово, если бит 6 (DRDY) регистра состояния установлен.

Функция проверки готовности устройства к обмену данными:

Если бит 3 (DRQ) регистра состояния установлен, данные находятся в регистре данных и готовы для считывания.

Следующая функция проверяет, не произошла ли ошибка при работе устройства:

Установленный бит 0 (ERR) регистра состояния означает, то при выполнении последней операции произошла ошибка. Дополнительная информация содержится в регистре ошибок.

А теперь рассмотрим функцию получения информации идентификации устройства.

В соответствии с протоколом взаимодействия проверяем статус устройства. Оно должно быть свободно:

Как только устройство освободилось, в регистр номера устройства и головки заносим значение 0xA0 (10100000 в двоичном виде). Бит 4 (DEV) равен 0, следовательно, нами выбрано ведущее устройство. Режим адресации в данном случае роли не играет, бит 6 оставим нулевым:

Ожидаем готовность устройства к восприятию команд:

Итак, устройство готово. В регистр команд (HD_STATUS) записываем код команды идентификации устройства - 0xEC. Данная команда выполняется в режиме PIO. Полный перечень команд смотрите в спецификации:

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

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

Копируем полученную информацию из буфера buff1 в структуру struct hdreg hd:

Очищаем буфер и выходим:

Следующая функция осуществляет чтение сектора в режиме адресации CHS.

Ожидаем освобождения устройства:

В регистр номера устройства и головки заносим соответствующие данные. Бит 6 сброшен, что указывает на режим адресации CHS:

Ждем готовность устройства к приему команд:

В блок командных регистров заносим требуемые параметры:

В регистр команд записываем код команды чтения секторов с повторами - 0x20. Данная команда выполняется в режиме PIO:

Считываем блок данных в буфер buff:

Считываем последние 4 байта и выходим из функции:

Функция чтения сектора в режиме адресации LBA.

Ожидаем освобождения устройства:

В регистре номера устройства и головки бит 6 устанавливаем в 1, а биты 3-0 будут содержать старшие биты логического адреса (27-24):

Ожидаем готовность устройства к приему команд:

В блок командных регистров заносим требуемые параметры:

В регистр номера сектора заносим биты 7-0 логического адреса:

В регистр младшего байта номера цилиндра - биты 15-8 логического адреса:

В регистр старшего байта номера цилиндра - биты 23-16 логического адреса:

В регистр команд - команду чтения секторов с повторами:

Считываем последние 4 байта и выходим:

Рассмотрим главную функцию:

Определим необходимые структуры и переменные:

Чтобы не схлопотать Segmentation fault, запросим у системы разрешения доступа к портам в диапазоне 0x1f0 - 0x1f7:

Вызовем функцию получения информации идентификации. Результат будет помещен в структуру struct hd_driveid hd:

А теперь прочитаем первый сектор устройства (MBR) в режиме CHS:

Запишем в файл результат:

Тоже самое - в режиме LBA:

Весь вышеприведенный код сохраним в файле disk.c. Исполняемый модуль получим, введя команду:

Работоспособность кода была проверена для ОС Linux, версия ядра 2.4.20.

1. Теренс Чан. Системное программирование на С++ для UNIX: Пер. с англ. - К.: Издательская группа BHV, 1999. - 592 с.
2. Гук М. Интерфейсы ПК: справочник - СПб: Питер Ком, 1999 - 416 с.

И если в жизни предугадать некоторые события практически нереально, то вот в случае с жестким диском (да и твердотельным накопителем) — часть проблем всё же, предугадать и предвидеть можно!

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

Информация крайне полезная, к тому же подобные утилиты могут вести мониторинг вашего диска в режиме онлайн, и как только появятся первые признаки нестабильной работы — тут же вас оповестить. Соответственно, вы вовремя успеете сделать бэкап и принять меры (хотя бэкап нужно делать всегда, даже когда все хорошо 😊).

И так, рассмотрю в статье несколько способов (и несколько утилит) анализа состояния HDD и SSD.

* Примечание:
S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology) — специальная технология оценки состояния жёсткого диска системой интегрированной аппаратной самодиагностики/самонаблюдения. Основная задача — определить вероятность выхода устройства из строя, предотвратив потерю данных.

ускорение ПК

Оценка состояния жесткого диска: сколько лет он еще прослужит

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

Поэтому, в первой части статьи я решил показать пару утилит, которые могут получить все показания с диска и проанализировать их самостоятельно, а вам дать лишь готовый результат (во второй части статьи, приведу утилиты для просмотра показаний SMART для самостоятельного анализа).

Способ №1: с помощью Hard Disk Sentinel

Hard Disk Sentinel

Одна из лучших утилит для мониторинга состояния дисков компьютера (как жестких дисков (HDD), так и "новомодных" SSD). Что больше всего подкупает в программе — она все данные, полученные о состоянии диска, самостоятельно проанализирует и покажет Вам уже готовый результат (очень удобно для начинающих пользователей).

Чтобы не быть голословным, покажу сразу же главное окно программы, которое появляется после первого запуска (анализ диска будет сделан сразу автоматически 👇).

Здоровье и производительность диска оцениваются как 100% (в идеале, так и должно быть), время, которое диск еще проработает в нормальном режиме оценивается программой примерно в 1000 дней (~3 лет).

Что с диском по версии Hard Disk Sentinel

Кроме этого, программа позволяет следить за температурой: как за текущей, так и за средней и максимальной в течении дня, недели, месяца. В случае выхода температуры за пределы "нормальности" — программа предупредит Вас об этом (что тоже очень удобно 👌).

Также Hard Disk Sentinel позволяет просмотреть показания SMART (правда, чтобы оценить их, нужно неплохо разбираться в дисках), получить полную информацию о жестком диске (модель, серийной номер, производитель и пр.), посмотреть, чем жесткий диск загружен (т.е. получить сведения о производительности).

В общем и целом, на мой скромный взгляд, Hard Disk Sentinel — это одна из лучших утилит за контролем состояния дисков в системе. Стоит добавить, что есть несколько версий программ: профессиональная и стандартная (для профессиональной версии с расширенным функционалом — есть портативная версия программы, не нуждающаяся в установке (например, ее можно даже запускать с флешке)).

Hard Disk Sentinel работает во всех популярных Windows (7, 8, 10 - 32/64 bits), поддерживает русский язык в полном объеме.

Способ №2: с помощью HDDlife

HDDlife

Эта программа аналогична первой, также наглядно показывает текущее состояние диска: его здоровье и производительность (в процентном выражении), его температуру, количество отработанного времени (в месяцах). В верхней части окна, на основе всех этих данных, HDDlife показывает итоговое резюме по вашему диску, например, в моем случае "ALL RIGHT" (что значит, что с диском все в порядке).

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

Состояние HDD диска

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

С диском SSD не все в порядке.

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

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

Дополнение : HDDlife работает как на ПК, так и на ноутбуках. Поддерживает HDD и SSD диски. Есть в наличие портативные версии программы, не нуждающиеся в установке. Можно настроить так, чтобы программа запускалась вместе с вашей Windows. HDDlife работает в Windows: XP, 7, 8, 10 (32/64 bits).

Как посмотреть показания SMART

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

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

Способ №1: с помощью СrystalDiskInfo

СrystalDiskInfo

Отличная бесплатная утилита для просмотра состояния и показаний SMART жесткого диска (поддерживаются в том числе и SSD-диски). Чем подкупает утилита — она предоставляет вам полную информацию о температуре, техническому состоянию диска, его характеристиках и пр., причем, часть данных идут с пометками (т.е. утилита актуальна, как для опытных пользователей, которые сами знают "что-есть-что", так и для начинающих, которым нужна подсказка).

Например, если с температурой что-то не так — то вы увидите на ней красный индикатор, т.е. СrystalDiskInfo сам вам об этом сообщит.

Главное окно программы CrystalDiskInfo

Главное окно программы условно можно разбить на 4 зоны (см. скриншот выше):

  1. "1" - здесь указаны все ваши физические диски, установленные в компьютере (ноутбуке). Рядом с каждым показана его температура, тех-состояние, и кол-во разделов на нем (например, "C: D: E: F:");
  2. "2" - здесь показана текущая температура диска и его тех-состояние (программа делает анализ на основе всех полученных данных с диска);
  3. "3" - данные о диске: серийный номер, производитель, интерфейс, скорость вращения и пр.;
  4. "4" - показания SMART. Кстати, чем подкупает программа - вам необязательно знать, что означает тот или иной параметр - если что-то не так с каким-либо пунктом, программа его пометит желтым или красным цветом и известит вас об этом.

В качестве примера к вышесказанному, приведу скриншот, на котором отображены два диска: слева — с которым все нормально, справа — у которого есть проблемы с переназначенными секторами (тех-состояние — тревога!).

В качестве справки (о переназначенных секторах):

Чем больше значение переназначенных секторов — тем хуже состояние поверхности дисков. Поле "raw value" содержит общее количество переназначенных секторов.

Кстати, для многих производителей дисков, даже один переназначенный сектор — это уже гарантийный случай!

Рекомендую сохранить все важные данные с такого диска и, по возможности, заменить его на другой (если есть гарантия - замените по ней).

Чтобы утилита CrystalDiskInfo следила в режиме онлайн за состоянием вашего жесткого диска - в меню "Сервис" поставьте две галочки: " Запуск агента" и "Автозапуск" (см. скрин ниже).

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

Способ №2: с помощью Victoria

Victoria — одна из самых знаменитых программ для работы с жесткими дисками. Основное предназначение программы оценить техническое состояние накопителя, и заменить поврежденные сектора на резервные рабочие.

Утилита бесплатна и позволяет работать как из-под Windows, так и из-под DOS (что во многих случаях показывает гораздо более точные данные о состоянии диска).

Из минусов : работать с Викторией достаточно сложно, по крайней мере, наугад нажимать в ней кнопки я крайне не рекомендую (можно легко уничтожить все данные на диске).

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

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

Причины и признаки неисправности жестких дисков

HDD (жесткий диск) – один из самых уязвимых узлов компьютера. Причинами его отказа могут стать удары, вибрация, тряска, длительная работа при высоких температурах, броски напряжения, внезапное отключение электропитания. Примерно в 10-20% случаев HDD выходят из строя без видимых причин из-за скрытого брака, низкого качества или износа.

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

Признаки, которые указывают на то, что жесткий диск не в порядке:

bsod

Сделайте это в первую очередь

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

  1. Оцените S.M.A.R.T жесткого диска при помощи любой утилиты, имеющий такую функцию (об этом дальше). Чтобы не создавать дополнительную нагрузку на неисправное устройство, утилиту желательно запускать с USB-флешки.
  2. Если S.M.A.R.T показывает проблему, безотлагательно скопируйте информацию с диска на другой физический накопитель или в облако.
  3. Только когда на сбойном винчестере не останется ничего, что вам жалко потерять, переходите к другим методам диагностики – осмотру на целостность, поиску дефектов поверхности и т. д.

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

Что такое S.M.A.R.T запоминающих устройств и как его читать

S.M.A.R.T – это технология самопроверки здоровья накопителей, включающая алгоритм прогнозирования их жизнеспособности и времени отказа.

S.M.A.R.T отслеживает состояние диска по нескольким десяткам параметров и отображает результаты в таблице атрибутов. Некоторые атрибуты входят в набор анализа любого HDD, некоторые – опционально.

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

Так S.M.A.R.T HDD выглядит в программе Hard Disk Sentinel:

SMART в программе Hard Disk Sentinel

К критическим относятся такие атрибуты, как (список неполный):

    Reallocated Sectors Count. Он отображает число переназначенных нечитаемых секторов. Если значение атрибута больше нуля, диск требует повышенного внимания, а при нарастании показателя очень вероятен его скорый отказ.

SMART в программе Victoria

Ниже – три бесплатные переносимые утилиты с функцией анализа SMART. Их можно запускать с флешки под Windows:

Проверка жесткого диска средствами Windows

Инструмент проверки и исправления ошибок файловой системы, которые часто бывают причиной синих экранов и медленной работы компьютера, входит в стандартный набор приложений Windows. Это консольная (запускаемая через командную строку) утилита CHKDSK (check disk). Она умеет находить и восстанавливать сектора жесткого диска, поврежденные программными (soft bad sectors) и аппаратными (hard bad sectors) сбоями.

Чтобы начать проверку и восстановление HDD с помощью CHKDSK, сохраните открытые документы и вызовите командную строку. В Windows 10 это удобно делать через меню правой клавиши мыши на кнопке Пуск, в Windows 7 – из меню Пуск – Стандартные.

запуск командной строки

Впишите в консоль команду chkdsk /f /r и нажмите Ввод.

запуск команды chkdsk

Утилита CHKDSK имеет и другие параметры запуска, подробно описанные на официальном сайте, которые также могут вам пригодиться.

В приведенном примере не указан том (буква) диска. Это значит, что текущий накопитель будет проверен полностью.

Для проверки системного тома CHKDSK требует завершения работы всех программ и операционной системы, поэтому вам придется перезагрузить компьютер. Тестирование продолжится от 15 минут до нескольких часов в зависимости от размера и состояния HDD. Ход проверки будет отображен в виде текста на черном экране.

После окончания сканирования CHKDSK проинформирует вас о результатах числовым кодом от 0 до 3, где:

Возможности сторонних программ для диагностики накопителей

Victoria

проверка жесткого диска программой victoria

Упомянутая выше утилита Victoria – это универсальное многофункциональное средство диагностики и программного ремонта запоминающих устройств, ориентированное на подготовленных пользователей.

Помимо мониторинга S.M.A.R.T, она позволяет:

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

Victoria работает без установки на ПК, выпускается в версиях для Windows и DOS, поддерживает жесткие диски всех типов, переведена на русский, английский и украинский языки.

Стоит вспомнить и другую не менее достойную профессиональную утилиту, схожую по функционалу и часто упоминаемую вместе с Victoria, — MHDD. Однако крайнее обновление этой программы вышло в 2005 году. MHDD не поддерживает накопители последних поколений, но может применяться для обслуживания старых винчестеров без интерфейса AHCI.

Hard Disk Sentinel

тест поверхности в Hard Disk Sentinel

Hard Disk Sentinel – еще одно универсальное кроссплатформенное средство мониторинга дисковых и твердотельных носителей с функциями проверки их работоспособности и исправности.

Утилита выпускается в версиях для Windows, Linux и DOS. Установленная на компьютер и работающая в фоновом режиме, она отслеживает состояние дисков в реальном времени, фиксирует и анализирует сбои, строит графики изменений и составляет отчеты.

В состав Hard Disk Sentinel входят следующие инструменты:

  • Контроль температурного режима дисков.
  • Отображение их технических характеристик и данных о разделах.
  • Оценка S.M.A.R.T.
  • Логирование ошибок.
  • Оценка производительности.
  • Управление акустикой и питанием.
  • Онлайн проверка гарантии на сайте производителя девайса.
  • Тест подвода головки для проверки скорости, уровня шума и роста температуры при обычной нагрузке на устройство и при стрессе.
  • Тесты поверхности методом чтения или записи блоков в последовательном и произвольном порядке.
  • Тесты самодиагностики – быстрый и полный.

Профессиональная программа для проверки работы жесткого диска должна гибко конфигурироваться под потребности пользователя. Hard Disk Sentinel имеет массу настроек – от установки значений показателей для вывода предупреждений на экран до способа доставки отчетов. Она переведена на множество языков, включая русский, и дополнена всплывающими подсказками по всем основным элементам. А главное – в ней есть встроенная справка на русском языке, где описан весь функционал, а также инструкции по проведению тестов и интерпретации результатов.

Hard Disk Sentinel выпускается в трех версиях – стандартной, профессиональной и корпоративной. Все три – платные (от $19.50), но некоторые выпуски профессиональной версии иногда можно получить по акции бесплатно.

HD Tune и HD Tune Pro

контроль состояния HDD в HD Tune

HD Tune – легкая, бесплатная англоязычная Windows-утилита для контроля состояния HDD и SSD, в которой собрано лишь самое необходимое:

  • Информация о диске и его разделах (вкладка Info).
  • Таблица S.M.A.R.T. (вкладка Health).
  • Сканер поверхности (вкладка Error Scan).
  • Низкоуровневый тест производительности методом чтения (вкладка Benchmark).

HD Tune Pro – платная версия утилиты ($34.95) с расширенным функционалом. В дополнение к перечисленному, здесь есть:

  • Поддержка внешних накопителей различных типов (USB-HDD, флешки, карты памяти).
  • Логирование показателей S.M.A.R.T.
  • Ведение журнала ошибок.
  • Безопасное удаление файлов (шредер).
  • Монитор диска в реальном времени.
  • Низкоуровневый тест производительности методом записи.
  • Дополнительные тесты поверхности методом чтения и записи блоков различного размера и в разной последовательности.
  • Тест скорости при случайном доступе.
  • Automatic Acoustic Management (AAM) для управления балансом скорости движения головок чтения/записи и шума дисковых накопителей.

Показатели HD Tune сохраняются в виде текста и скриншотов.

HDDScan

проверка диска на ошибки в HDDScan

HDDScan – последняя в обзоре небольшая бесплатная программка для тестирования и настройки некоторых функций запоминающих устройств. Утилита работает только в Windows, не требует установки на компьютер и поддерживает накопители различных типов (HDD, SSD, RAID-массивы, USB-флешки, USB-HDD и т. д.). Язык интерфейса – английский.

В числе возможностей HDDScan:

  • Получение и анализ S.M.A.R.T.
  • Информация о характеристиках накопителя.
  • Тест линейной верификации, предназначенный для быстрого определения, есть ли на жестком диске исправимые ошибки и нуждается ли он в восстановлении.
  • Тесты на ошибки методами линейного чтения, линейной записи, линейного стирания.
  • Тест случайного чтения методом Butterfly.
  • Тесты самодиагностики – короткий и расширенный.
  • Мониторинг температуры диска.
  • Настройка AAM, APM (параметров энергопотребления), запуска и остановки шпинделя и т. д.

Некоторые функции доступны только для работы с девайсами определенных типов.

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

Основные виды тестов жестких дисков: что они показывают

Самодиагностика

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

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

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

При расширенной самодиагностике дополнительно сканируется поверхность диска.

Тест поверхности

Сканирование поверхности дисковых устройств проводится разными методами:

  • чтения;
  • записи;
  • записи и последующего чтения;
  • чтения – записи – чтения и т. д.

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

Тестирование методом чтения проверяет доступность секторов жесткого диска и полностью безопасно для информации на нем. Однако оно не слишком точно – может пропустить имеющиеся дефекты.

Если тест записи выявил дефектные сектора, его рекомендуется повторить.

Тест записи с последующим чтением усиливает эффективность предыдущего метода.

Методика чтение – запись – чтение предназначена для контроля исправления ошибок. В ходе тестирования программа считывает данные из сектора, потом записывает их обратно и сравнивает обе версии. Если они идентичны, ошибка считается исправленной корректно.

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

Интерпретация итогов сканирования поверхности HDD обычно не вызывает трудностей, так как наглядна и очевидна.

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

битые сектора на винчестере

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

несколько нечитаемых блоков на жестком диске

Тест привода головки

Эта методика предназначена для исследования акустических свойств и уровня нагрева HDD при высокой нагрузке.

Тест подвода головки обычно проводят для оценки громкости шума после изменения настроек AAM, а также как стрессовую нагрузку при проверке стабильности устройства. Результаты оценивают субъективно и по показателям температуры. Если они неудовлетворительны, придется пожертвовать быстродействием, несколько уменьшив скорость головок. Это повысит ваш акустический комфорт и сохранит здоровье диска на длительный срок.

Вы статье вы найдете руководство по использованию chkdsk, ссылки на программы, позволяющее всесторонне протестировать жесткий диск, а также инструкции к ним. Кроме того, в статье рассказывается, как выполнить проверку разделов жесткого диска с помощью встроенных средств Windows.

На этой странице

Утилита проверки диска Windows (chkdsk)

В ОС Windows имеется собственная утилита проверки дисков. Ее можно запускать из графического интерфейса или из командной строки.

Запуск проверки диска из графического интерфейса

Откройте окно Мой компьютер, щелкните правой кнопкой мыши по диску или разделу, который вы хотите проверить, и выберите из контекстного меню пункт Свойства. В окне свойств диска перейдите на вкладку Сервис и нажмите кнопку Выполнить проверку.

*

В следующем окне нажмите кнопку Запуск.

*

*

Запуск проверки диска из командной строки

Ниже приводится пример запуска проверки раздела C из командной строки.

Примечание. Командную строку необходимо запускать с правами администратора.

*

Введите Y и перезагрузите компьютер, чтобы начать проверку.

Дополнительную информацию о параметрах командной строки утилиты chkdsk вы можете получить, запустив ее с ключом /?, либо на этой странице.

Запуск проверки диска, если система не загружается

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

Windows 7, 8.1, 10

  1. Загрузитесь в среду восстановления и откройте командную строку (инструкции для Windows 8 и новее, Windows 7)
  2. В командной строке введите команду

Windows XP

Если проблема возникла в Windows XP, используйте консоль восстановления. Загрузившись с установочного диска в консоль, выполните команду

Дополнительную информацию о консоли восстановления вы найдете в статьях базы знаний Microsoft:

Просмотр результатов проверки диска

Диагностика жесткого диска сторонними программами

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

Вниманиe! Перед тестированием жесткого диска с помощью сторонних программ необходимо сделать резервное копирование всех данных.

Утилиты производителей жестких дисков

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

  • Western Digital: Data Lifeguard Tools (необходимо выбрать модель диска).
  • Seagate: SeaTools.
  • Hitachi: Drive Fitness Test.
  • Samsung: Hutil.

Диагностические средства других производителей можно найти на их сайтах.

Victoria

*

Дополнительную информацию вы найдете по следующим ссылкам:

*

Дополнительную информацию вы найдете по следующим ссылкам:

Диск в полном порядке — что дальше?

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

Вадим - владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.

Вас также может заинтересовать:

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментариев 28

Интересует Ваше мнение по повод этих программ:

Ваша оценка: 0

aass, не пользовался. Но замечу, что Victoria и MHDD являются проверенными инструментами серьезной диагностики.

А информацию SMART умеет отслеживать Windows 7. Она вас предупредит, если что.

Ваша оценка: 0

Vadim Sterkin, Спасибо за ответ и за тему!
С оценкой программ Victoria и MHDD согласен, сам пользуюсь Victoria для серьёзной диагностики, но стараюсь тестировать и другие программы, всё познаётся в сравнении. )

Ваша оценка: -1

при проверке жесткого диска стандартной програмой на windows 7 написано что обнаружены плохие кластеры в null.sys…что это за драйвер?

Ваша оценка: +2

Дмитрий, это один из системных драйверов Windows.

Ваша оценка: -1

Vadim Sterkin,

спасибо…из-за него система может тормозить?

Ваша оценка: 0

Ваша оценка: +1

В инете и на форуме, как вы сами наверняка знаете, ответа не получил.

Ваша оценка: 0

Да, кстати, а вторую (нижняя) галку имеет смысл ставить, если система на SSD? Ведь насколько хватает моих познаний, SSD-контроллер сам периодически (при простое) сканирует память на неисправные ячейки.
И эта вторая галка, по определению предназначена для проверки битых ячеек на поверхности HDD.

Ваша оценка: 0

Санек, что значит намудрили? Вы не мудрите сами, нажимая всякие непонятные кнопки, и все будет хорошо :)

chkdsk проверяет ошибки файловой системы. К типу накопителя это не имеет отношения.

Ваша оценка: 0

Санёк,

Вы включаете свой телевизор пультом ДУ и выставляете таймер на пробуждение. На следующее утро вы просыпаетесь под музыка своего любимого музыкального канала. И жизнь течёт гладко и размеренно. Но в один прекрасный момент вас осеняет — ведь завтра же воскресенье. Не беда — говорите вы себе. Лёгким движением руки и отвёртки, не отключая телевизор от сети, вы снимаете заднюю крышку, быстренько заменяете пару сопротивлений на плате и — готово. Завтра можете спать спокойно до обеда.
Чувствуете к чему я?

По поводу нижней галки:

Про файловую систему ничего не говорится. Скорее о физических недостатках. Кто-то из нас не прав. Или я что-то не понял.
И далее по тексту:

Для проверки и файловых, и физических ошибок выберите оба параметра: Автоматически исправлять системные ошибки и Проверять и восстанавливать поврежденные сектора.

Ваша оценка: +1

Про файловую систему ничего не говорится. Скорее о физических недостатках. Кто-то из нас не прав. Или я что-то не понял.
И далее по тексту:

Для проверки и файловых, и физических ошибок выберите оба параметра: Автоматически исправлять системные ошибки и Проверять и восстанавливать поврежденные сектора.

Прокомментируйте пожалуйста. Хочется ясности в вопросе.

Думаю, вам нужно прочесть о том, как в SSD реализована связь между логическими и физическими секторами.
Работает ли TRIM в вашем SSD?
Главные задачи контроллера

Ваша оценка: +2

Ваша оценка: 0

Ваша оценка: 0

Vadim Sterkin,

Ваша оценка: 0

Ваша оценка: +1

Vadim Sterkin,

Ваша оценка: 0

Вячеслав, нужно грамотно планировать разделы сразу (исключение — ноутбуки, где за вас решил ОЕМ). Тогда вообще не надо будет ничего переразбивать.

А так, я же сразу сказал, что позволяет сделать оснастка. Если она не позволяет вам осуществить желаемое, значит, это потенциально опасная операция — делайте бэкап и переразбивайте с форматированием в оснастке или diskpart. Хотите сэкономить время сторонним ПО? Ваш выбор, но не надо тогда приходить и воздевать руки к небу по поводу проблем — ведь вы сами их создали.

На этом я точно заканчиваю повторяться.

Ваша оценка: +1

Vadim Sterkin,

Да, спасибо за совет. Я 4 года назад, когда производил разбивку системного диска (750 Гб) после сборки своего компьютера, выделил 201 Гб под системный раздел, а остальное оставил под другой раздел для разного рода загрузок. Каюсь, плохо распланировал. Надо впредь стратегически мыслить. Ставя тогда XP, т.к. Vista и 7 мне тогда не очень понравились, я не предполагал, что пройдет 3-4 года и появятся Windows 8, 8.1, облачные хранилища файлов, раздающие по 2, 5, 10, 12, 15, 200, 1000 Гб бесплатно, и придется для системного раздела выделять больше, чем есть сейчас, от другого раздела.. Переехав на Windows 7 (удалял системный раздел и создавал 2 как рекомендовала Microsoft) впоследствии, обзавелся привычными инструментами для работы, в т.ч. и с жестким диском — Acronis. Более новые версии мне никогда проблем не создавали. Но после переезда на Windows 8 привычный инструмент стал вести себя неадекватно. И старый добрый Live CD от Acronis снова выручил. Отсюда вывод — нововведения Windows 8 как-то не так работают, как ожидается. И я не воздеваю руки к небу по поводу проблем. Во втором комментарии я пишу, что проблему решил. Целью публикации первого комментария с моей стороны было поделиться с заинтересованными людьми на профильном блоге о нелепых косяках, которых, по логике, быть не должно, и услышать мнения по этому поводу. Ведь новое ПО должно быть лучше старого и, не внося новых проблем, решать старые. Но на практике это не всегда так. Я, конечно, понимаю, что format C:\ спасет мир, но все же я пытался найти более гуманное решение. Я его нашел и, таким образом, поделился с сообществом своим опытом, чтобы кто-то не наступил на те же грабли, что и я. Приношу свои извинения, если что не так.

Ваша оценка: 0

Забыла сказать после этого проверила викторией и сообщило, что даже ошибок нет.

Ваша оценка: 0

Ваша оценка: 0

У меня не тот случай. Речь идет не о системном диске. А о внешнем дисководе. Уже выяснила — система все свободное место пометила, как бед блоки. Сейчас пробую выяснить это сбой или таки винт приказал долго жить.

Ваша оценка: 0

Ваша оценка: 0

Ваша оценка: +1

Ну как же…
Я же написал — chkdsk всякий раз при запуске проверки хочет перезагрузки для устранения ошибок файловой системы. Значит, ошибки им обнаруживаются! Но в результате пишет, что ошибок не найдено! И так постоянно. В Windows XP я запускал chkdsk, и он сразу выводил, что всё в порядке, без перезагрузки.

Ваша оценка: 0

Сергей, он хочет перезагрузки, потому что том заблокирован работающей на нем ОС. Об этом написано в статье.

Ваша оценка: +1


far_town2 Кулясов

Есть какие-либо методы проверить достаточность мощности блока питания? И может ли из-за его недостаточной мощности в играх происходить зависания/ошибки?

Читайте также: