smartd: устройства не найдены, наблюдение за дисками не работает
Служба наблюдения за состоянием дисков может успешно запуститься и при этом ничего не наблюдать. Так бывает на виртуальных машинах и за аппаратными контроллерами. Об отказе дисков в такой системе никто не предупредит, хотя служба выглядит работающей.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Диски скрыты за аппаратным контроллером
Контроллер отдаёт системе логический том, а физические диски не видны обычными средствами.
-
Виртуальные диски не поддерживают опрос состояния
В виртуальной машине диск не имеет внутренних счётчиков. Наблюдение за ним бессмысленно и служба это сообщает.
-
Оповещения о находках никуда не идут
Даже при найденных устройствах предупреждения отправляются письмом. Без почтовой службы они теряются.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Какие устройства вообще доступны для опроса.
sudo smartctl --scanЧто служба нашла при запуске.
journalctl -u smartd -b --no-pager | head -20Диски и тип подключения: сразу видно виртуальные.
lsblk -d -o NAME,MODEL,TRANРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Контроллер отдаёт системе логический том, а физические диски не видны обычными средствами.
- Как проверить
-
Посмотрите, какие устройства нашла служба.
sudo smartctl --scan 2>/dev/null journalctl -u smartd -n 20 --no-pager | grep -iE "unable|no devices|scan"
- Как исправить
- Указывайте устройства явно с типом контроллера в настройках службы. Для многих контроллеров нужен отдельный параметр типа устройства.
- Почему происходит
- В виртуальной машине диск не имеет внутренних счётчиков. Наблюдение за ним бессмысленно и служба это сообщает.
- Как проверить
-
Определите окружение и тип дисков.
systemd-detect-virt; lsblk -d -o NAME,MODEL,TRAN
- Как исправить
- В виртуальной машине наблюдайте за дисками на стороне хоста, а службу на гостевой машине отключите: работающая служба без устройств создаёт ложное чувство контроля.
- Почему происходит
- Даже при найденных устройствах предупреждения отправляются письмом. Без почтовой службы они теряются.
- Как проверить
-
Посмотрите настройку оповещений и почтовую службу.
grep -hE "^DEVICESCAN|-m " /etc/smartd.conf 2>/dev/null systemctl is-active postfix 2>/dev/null || command -v sendmail
- Как исправить
- Настройте доставку оповещений и проверьте её тестовым сообщением. Оповещение, которое не проверяли, не работает.
Пример вывода
Служба запущена, устройств не нашла. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
systemd[1]: Started smartd.service - Self Monitoring and Reporting Technology (SMART) Daemon.
smartd[5600]: Device: /dev/vda, IE (SMART) not enabled, skip device
smartd[5600]: Unable to monitor any SMART enabled devices. Try debug (-d) option.
smartd[5600]: smartd is exiting (exit status 17)
Связанные ошибки
- Массив в состоянии degraded: выпал диск Программный массив работает без одного диска: служба работает, запас надёжности исчерпан.
- I/O error, dev sda, sector N: ошибка носителя Ядро сообщает об ошибке чтения или записи на устройстве. Что делать со службой и данными.
- Почта не отправляется: письма остаются в очереди Уведомления от служб не доходят: очередь почты растёт, соединение с сервером не устанавливается.
- File corrupted or uncleanly shut down, renaming and replacing Журнал повреждён после жёсткой перезагрузки: что означает сообщение и когда нужно вмешательство.
- Mount process exited, code=exited, status=32: не найдено устройство Монтирование не проходит: устройство или UUID не найдены, неверная файловая система, недоступен сетевой ресурс. Код 32 от команды mount.
- Prometheus не собирает метрики: цель недоступна Цель в состоянии down: служба не слушает нужный адрес, закрыт порт или обрывается по таймауту сбора.
- You are in emergency mode: система не загрузилась Загрузка остановилась в аварийном режиме. Что проверять: fstab, файловые системы, цель по умолчанию. Как войти и починить.
- fsck failed: проверка файловой системы остановила загрузку Проверка файловой системы при загрузке завершилась неудачей. Как прочитать причину, запустить проверку вручную и что делать с корневым разделом.
Источники
-
smartd(8)
Поиск устройств и явное указание типа контроллера. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено на виртуальной машине с диском без счётчиков состояния.