Как проверить диск на ошибки и bad sectors в Linux: SMART, dmesg и badblocks
Если Linux сообщает об ошибках ввода-вывода, система зависает при работе с диском или SMART показывает ухудшение состояния накопителя, не начинайте с длительного теста записи. Сначала сохраните важные данные и соберите диагностику, которая не изменяет содержимое диска.
Определите нужный накопитель
lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTSОсобенно внимательно проверяйте имя устройства перед командами вида /dev/sda, /dev/nvme0n1 и похожими. Ошибка в имени диска при разрушающем тесте может уничтожить данные другого накопителя.
Посмотрите ошибки ядра
dmesg -T | grep -Ei 'error|fail|ata|nvme|i/o'Повторяющиеся I/O error, reset, timeout и ошибки интерфейса могут указывать как на сам накопитель, так и на кабель, питание или контроллер.
Проверьте SMART
sudo smartctl -a /dev/sdXДля HDD обращайте внимание на переназначенные и ожидающие переназначения сектора, а также необрабатываемые ошибки. Для SSD и NVMe набор показателей другой, поэтому оценивайте отчёт целиком и учитывайте документацию производителя.
Неразрушающая проверка badblocks
sudo badblocks -sv /dev/sdXРежим только чтения не должен использоваться как единственный критерий исправности, но может помочь выявить нечитаемые блоки на HDD. Проверка большого диска занимает много времени.
Почему опасен badblocks -w
Не запускайте badblocks -w на диске с нужными данными. Режим записи записывает тестовые шаблоны в каждый блок и уничтожает существующее содержимое. Его применяют только к диску, данные на котором можно полностью потерять.
Если ошибки уже появились
При важных данных приоритет — резервная копия или создание образа, а не многократные стресс-тесты. Если SMART ухудшается, появляются новые нечитаемые сектора или диск периодически исчезает из системы, накопитель разумнее заменить. Для SSD/NVMe классический поиск bad sectors обычно менее полезен, чем SMART/health-данные и диагностика производителя.