Выключение SATA-дисков в Linux
Обновлено 8 ноября 2026
Как ядро останавливает диски при выключении, что значит старое предупреждение про shutdown utility и как по SMART проверить, что диск выключается штатно.
Зачем правильно выключать диск
При штатном выключении диск записывает данные из кэша на носитель, а жёсткий диск уводит головки на парковку. Если питание пропадает раньше, головки паркуются аварийно за счёт инерции шпинделя. Такая парковка сильнее изнашивает механику, а данные из кэша записи могут потеряться.
Жёсткий диск считает аварийные парковки в атрибуте SMART 192 (Power-Off_Retract_Count). У многих SSD есть похожий счётчик небезопасных выключений, название зависит от производителя.
Как ядро выключает диски сейчас
При выключении системы драйвер дисков отправляет каждому диску команду сброса кэша, а затем команду остановки. Для дисков SATA это включено по умолчанию. Проверить можно в sysfs:
grep . /sys/class/scsi_disk/*/manage_*
В старых ядрах есть один параметр manage_start_stop. В новых (6.6 и новее) он разделён на manage_system_start_stop, manage_runtime_start_stop и manage_shutdown. Значение 1 означает, что ядро само останавливает диск.
Откуда взялась эта страница
В ядре 2.6.22 libata начал сам останавливать диски при выключении. Старые версии утилит halt и shutdown тоже отправляли дискам команду остановки, и диск мог раскрутиться повторно, а потом выключиться аварийно. В таких случаях ядро писало в журнал предупреждение:
DISK MIGHT NOT BE SPUN DOWN PROPERLY. UPDATE SHUTDOWN UTILITY
Решение было в обновлении пакета с утилитами выключения. В современных дистрибутивах с systemd этой проблемы нет.
Как проверить, что выключение штатное
- Запишите текущее значение атрибута 192:
sudo smartctl -A /dev/sda | grep -i retract. - Выключите компьютер обычным способом и включите снова.
- Сравните значение. Если оно растёт после каждого штатного выключения, питание пропадает раньше, чем диск остановился.
Частые причины: старый контроллер USB-SATA во внешнем боксе, корзина с собственным питанием, скрипты выключения, которые обесточивают диски раньше ядра. Подробнее об атрибутах в статье про SMART.
Внешние и съёмные диски
Перед отключением USB-диска отмонтируйте его и выключите питание командой:
udisksctl power-off -b /dev/sdb
Для внутреннего SATA-диска, который вы снимаете на ходу, порядок описан в статье о горячей замене.
Ручная остановка
sudo hdparm -y /dev/sdb # перевести в standby (шпиндель остановлен)
sudo hdparm -Y /dev/sdb # режим sleep, выход только через сброс
Таймер автоматической остановки и APM разобраны в статье об энергосбережении SATA.