Загрузка всё дольше висит на «running /scripts/local-block»: initramfs ждёт раздел подкачки с UUID, которого больше нет

Что было. При каждой загрузке на экране повторяется строка running /scripts/local-block ..., число повторов растёт от загрузки к загрузке, система в итоге стартует, но ожидание доходит до минуты.

Причина. Файл /etc/initramfs-tools/conf.d/resume указывал на раздел подкачки по UUID, а сам раздел был пересоздан или удалён, и в /etc/fstab значился другой UUID. initramfs на этапе local-block циклически ждёт появления устройства для возобновления из гибернации и сдаётся только по таймауту. Автор привёл UUID в трёх местах к одному значению, выполнил update-initramfs -u и update-grub; загрузка стала чистой. Подтверждено.

Три файла, которые должны совпадать (если подкачка вообще используется для гибернации):

  1. /etc/fstab: строка swap с актуальным UUID (blkid покажет реальный).
  2. /etc/initramfs-tools/conf.d/resume: RESUME=UUID=<тот же> либо RESUME=none, если гибернация не нужна (для серверов и виртуальных машин это правильный вариант).
  3. /etc/default/grub: параметр resume=UUID=… в GRUB_CMDLINE_LINUX, если он там есть; иначе убрать.
    После правок: update-initramfs -u -k all && update-grub.

Тот же класс проблем на серверах и виртуальных машинах.

  • «Gave up waiting for root device» и падение в (initramfs): неверный UUID корня в fstab/grub после клонирования диска, замены хранилища или переразметки. Из initramfs: blkid, затем загрузка с параметром root=UUID=<верный> в GRUB (клавиша e) и исправление файлов после входа.
  • Долгая пауза «A start job is running for dev-disk-by\x2duuid-…» уже в systemd: запись в fstab для диска, которого нет. Добавить nofail и x-systemd.device-timeout=10s к внешним и временным дискам либо убрать строку.
  • Файл подкачки вместо раздела: resume должен быть none, иначе то же ожидание.

Как проверить быстро.

blkid                                   # реальные UUID
grep -v '^#' /etc/fstab
cat /etc/initramfs-tools/conf.d/resume
grep -E 'resume|root=' /etc/default/grub /boot/grub/grub.cfg | head
journalctl -b -p warning | grep -iE 'swap|resume|timed out'

На виртуальных машинах после смены типа диска или контроллера имена /dev/sdX меняются, UUID нет; поэтому в fstab только UUID или метки, никаких /dev/sda1.

Инструменты initramfs описаны в документации Ubuntu.