Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
LINUX-DISK-SMARTCTL-BADBLOCKS Linux / DevOps

Гайд: Траблшутинг ошибок дискового I/O: диагностика SMART с помощью smartctl и badblocks

Обновлено: 21.08.2026  ·  Официальная база знаний

Природа аппаратных и логических ошибок накопителей в Linux

Ошибки дискового ввода-вывода (I/O Errors) возникают из-за деградации магнитных пластин HDD, износа ячеек памяти NAND Flash (SSD/NVMe), сбоев контроллера или дефектов кабелей SATA/SAS. В системном журнале ядра dmesg такие сбои проявляются критическими сообщениями:

  • blk_update_request: I/O error, dev sda, sector ...
  • Buffer I/O error on dev sda1, logical block ...
  • ata1.00: status: { DRDY ERR } / error: { UNC } (Uncorrectable error)
  • nvme0n1: Read(0x2) I/O Cmd SubOp(0x0) failed on slba ... status: 0x281

Бизнес-риски

Безвозвратная потеря пользовательских данных, разрушение файловых систем, аварийный переход корневой файловой системы в режим Read-Only.

Ключевые критические SMART-атрибуты (HDD/SATA SSD)

IDИмя атрибутаКритичностьЧто означает ненулевое значение RAW
5Reallocated_Sector_CtКритическийКоличество переназначенных поврежденных секторов в резервную область.
187Reported_UncorrectКритическийКоличество ошибок чтения, которые не удалось исправить встроенным аппаратным ECC.
197Current_Pending_SectorКритическийНестабильные секторы («бэды»), ожидающие переназначения при следующей записи.
199UDMA_CRC_Error_CountСреднийОшибки передачи данных по шине (обычно поврежден или плохо вставлен SATA-кабель).

Регламент комплексной диагностики накопителей

Сценарий 1: Проверка состояния SMART через smartctl

Установите пакет утилит управления SMART:

sudo apt install -y smartmontools   # Для Debian / Ubuntu
sudo dnf install -y smartmontools   # Для RHEL / Rocky Linux

# 1. Проверка базового статуса здоровья накопителя (PASSED / FAILED):
sudo smartctl -H /dev/sda

# 2. Вывод полной таблицы атрибутов SMART для SATA/SAS диска:
sudo smartctl -A /dev/sda

# 3. Вывод расширенного журнала здоровья для NVMe диска:
sudo smartctl -a /dev/nvme0n1
# Обратите внимание на строки: 'Critical Warning', 'Available Spare' и 'Percentage Used'

Сценарий 2: Запуск аппаратных тестов SMART (Self-Test)

# 1. Запуск быстрого фонового теста (1–2 минуты):
sudo smartctl -t short /dev/sda

# 2. Запуск полного глубокого сканирования поверхности диска (может занять несколько часов):
sudo smartctl -t long /dev/sda

# 3. Просмотр результатов прохождения тестов:
sudo smartctl -l selftest /dev/sda

Сценарий 3: Поиск сбойных блоков утилитой badblocks

Внимание: для работающих дисков с данными используйте ТОЛЬКО безопасный режим чтения (Read-Only)! Режим записи (-w) уничтожит все данные!

# 1. Безопасное неразрушающее сканирование накопителя на чтение:
sudo badblocks -sv -b 4096 /dev/sda

# 2. Сохранение списка битых секторов в файл для последующей изоляции файловой системой:
sudo badblocks -v /dev/sda > /tmp/badsectors.txt

Сценарий 4: Диагностика дисков за аппаратными RAID-контроллерами (MegaRAID / HP Smart Array)

Если накопители скрыты за контроллером и не видны как прямые блочные устройства /dev/sdX:

# Опрос диска 0 за контроллером LSI / Broadcom MegaRAID:
sudo smartctl -d megaraid,0 -a /dev/sda

sudo smartctl -d megaraid,1 -a /dev/sda

# Опрос диска за контроллером HP Smart Array (cciss):
sudo smartctl -d cciss,0 -a /dev/sda

Типовые ошибки администраторов

  • Эксплуатация диска с растущим параметром Pending Sectors: Если атрибуты 5 или 197 увеличиваются с каждым днем — диск находится в процессе необратимой физической деградации и подлежит немедленной замене.
  • Запуск badblocks -w на рабочем разделе: Параметр -w выполняет destructive write-тест с перезаписью паттернов 0xaa/0x55, полностью стирая разметку разделов и файлы.
В массиве зафиксированы битые секторы или SMART Health FAILED?
Специалисты ITSTM снимут посекторный образ диска через ddrescue, произведут замену неисправных накопителей и восстановят целостность RAID.
Практический опыт инженера: При получении первых сообщений 'I/O error' немедленно снимите дамп с помощью GNU ddrescue (ddrescue -d -r 3 /dev/sda /mnt/backup/sda.img /mnt/backup/recovery.log). Утилита сначала копирует все здоровые блоки и лишь в конце пытается вычитать сбойные секторы, снижая риск окончательного разрушения диска.

Частые вопросы (FAQ)

Что делать, если smartctl показывает Available Spare меньше 10% на NVMe?

Available Spare указывает на остаток резервных ячеек памяти. Падение ниже порогового значения означает скорый переход NVMe накопителя в аварийный режим Read-Only. Требуется срочная замена.

Можно ли исправить Pending Sectors программно?

Если сектор поврежден логически, принудительная запись нулей (например, dd if=/dev/zero of=/dev/sdX ...) заставит диск пересчитать контрольную сумму либо переназначить сбойный сектор в резерв (Reallocated Sector).

Как включить постоянный автоматический мониторинг SMART-демоном?

Включите службу smartd: sudo systemctl enable --now smartd. Демон будет слать email-оповещения при появлении любых ошибок.

В чем разница между UNC и CRC ошибками в логах?

UNC (Uncorrectable) — физическая нечитаемость ячейки/сектора на пластине диска. CRC — ошибка контрольной суммы при передаче сигнала по кабелю от материнской платы к диску.