Timed out waiting for device by-uuid — Зависание дисков в systemd
Архитектура ошибки и симптомы сбоя
Критический сбой инициализации «systemd: Timed out waiting for device /dev/disk/by-uuid/...» (сопровождающийся «Dependency failed for /mountpoint» и вылетом в Emergency Mode) возникает на этапе загрузки Linux. Ошибка означает, что systemd-генератор точек монтирования (systemd-fstab-generator) создал device-юнит для накопителя, но ядро и udev не обнаружили блочное устройство с указанным UUID за 90 секунд (смена диска, изменение UUID после форматирования, сбой RAID/LVM/LUKS или отвал внешнего iSCSI/USB диска).
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| /dev/disk/by-uuid/ | Symlink Identifier | Символическая ссылка udev на блочное устройство по UUID файловой системы. |
| fstab-generator | Mount Unit Generator | Внутренний компонент systemd, транслирующий /etc/fstab в нативные mount-юниты. |
| Emergency Shell | Maintenance Mode | Аварийная консоль восстановления: systemd останавливает загрузку из-за сбоя критического диска. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Сверка фактических UUID блочных устройств в Emergency Mode
В аварийной консоли (Emergency Shell) определите реальные UUID подключенных разделов:
# Просмотр фактических UUID всех дисков и разделов:
lsblk -f
# Либо через blkid:
sudo blkidСценарий 2: Исправление неверных UUID в /etc/fstab
Сравните вывод blkid с записями в файле /etc/fstab:
# Перемонтируйте корневой раздел в режим записи (если он в Read-Only):
mount -o remount,rw /
# Откройте /etc/fstab для редактирования:
nano /etc/fstab
# Замените старый UUID на фактический из blkid для проблемного раздела.Сценарий 3: Добавление опций nofail и x-systemd.device-timeout для некритичных дисков
Для внешних накопителей, вторых дисков, iSCSI и сетевых шар всегда добавляйте опции безопасного монтирования:
# Пример надежной строки в /etc/fstab (система не зависнет при отсутствии диска):
UUID=1234-ABCD-5678 /data ext4 defaults,nofail,x-systemd.device-timeout=10s 0 2Сценарий 4: Активация LVM и LUKS томов вручную
Если диск не появляется из-за заблокированного шифрования или неактивной Volume Group:
# Для зашифрованных разделов LUKS:
sudo cryptsetup luksOpen /dev/sda2 crypt_root
# Для LVM томов:
sudo vgscan && sudo vgchange -ayITSTM выполнит экстренное восстановление загрузчиков GRUB/systemd-boot, исправление fstab и дешифрацию LUKS томов.
Частые вопросы (FAQ)
Почему systemd падает в Emergency Mode из-за отсутствия даже некритичного диска?
По умолчанию все записи в /etc/fstab считаются жесткими зависимостями (Requires=) для local-fs.target. Если раздел не удается смонтировать, systemd считает целостность ОС нарушенной и прекращает загрузку. Опция nofail переводит зависимость в Wants= (мягкая зависимость).
Что делает опция x-systemd.device-timeout=5s?
Она сокращает стандартный таймаут ожидания диска с 90 секунд до 5 секунд. Если диск отключен, загрузка сервера задержится всего на 5 секунд вместо полутора минут.
Как выйти из Emergency Mode без перезагрузки после правки fstab?
Выполните команду: systemctl daemon-reload && systemctl default. Если fstab исправлен, система продолжит стандартную загрузку.
Как сгенерировать новый UUID для ext4 раздела?
Выполните команду: sudo tune2fs -U random /dev/sdX1 (раздел должен быть размонтирован).