A start job is running for dev-disk-by-uuid — Зависание дисков при старте
Архитектура ошибки и симптомы сбоя
Сообщение «A start job is running for dev-disk-by\x2duuid-XXXXXX.device (X s / 1min 30s)» блокирует процесс загрузки Linux. Ошибка указывает на то, что systemd ожидает появления устройства в дереве udev (/dev/disk/by-uuid/XXXX). Чаще всего это происходит из-за изменения UUID раздела подкачки (Swap) после переустановки/форматирования, отсутствия внешнего диска, прописанного в /etc/fstab, или неверно указанного параметра гибернации resume=UUID=... в параметрах загрузчика GRUB.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| dev-disk-by\x2duuid.device | udev Device Unit | Служебный юнит ожидания физического диска или раздела по его UUID. |
| Default Timeout | 90 seconds | Время, в течение которого systemd блокирует старт зависимых таргетов. |
| Common Culprit | Swap UUID / resume kernel param | Ядро ищет несуществующий раздел для восстановления из гибернации (Suspend-to-Disk). |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Проверка актуального UUID раздела Swap
# Просмотр реального UUID существующего раздела Swap:
blkid | grep -i swap
# Сверка с файлом конфигурации /etc/fstab:
cat /etc/fstab | grep swapЕсли UUID в /etc/fstab отличается, замените его на актуальный из вывода blkid.
Сценарий 2: Очистка или исправление параметра resume= в GRUB
Если ядро пытается восстановить сессию из несуществующего swap-раздела:
# Проверьте /etc/default/grub на наличие старого UUID в resume=:
cat /etc/default/grub | grep resume
# Удалите параметр resume=UUID=... или обновите его на правильный UUID.
# Обновите конфигурацию загрузчика:
sudo update-grub || sudo grub2-mkconfig -o /boot/grub2/grub.cfgСценарий 3: Обновление конфигурации initramfs / initrd
Образ начального виртуального диска может содержать кэш старых UUID:
# Для Ubuntu/Debian:
sudo update-initramfs -u
# Для RHEL/CentOS/Rocky Linux:
sudo dracut -f --regenerate-allСценарий 4: Ограничение времени ожидания диска через udev/fstab
# Добавьте параметр x-systemd.device-timeout в /etc/fstab для проблемного устройства:
UUID=XXXX-YYYY /mnt/backup ext4 defaults,nofail,x-systemd.device-timeout=5s 0 2ITSTM оптимизирует структуру fstab, исключит устаревшие параметры initramfs и ускорит загрузку операционной системы.
Частые вопросы (FAQ)
Почему имя юнита содержит странные символы \x2d?
В systemd символы дефиса '-' в путях устройств экранируются шестнадцатеричным кодом '\x2d', поэтому путь /dev/disk/by-uuid превращается в dev-disk-by\x2duuid.
Что произойдет по истечении 1 минуты 30 секунд?
Юнит устройства перейдет в состояние failed. Если устройство было помечено как обязательное (без флага nofail), система свалится в Emergency Mode. Если стоял флаг nofail, система продолжит загрузку без этого диска.
Как полностью отключить ожидание раздела подкачки Swap?
Закомментируйте строку со swap в /etc/fstab и выполните sudo swapoff -a.
Как ускорить загрузку облачных ВМ без swap?
Удалите любые упоминания resume= в GRUB и удалите пакет cloud-initramfs-growpart, если он задерживает генерацию разделов.