update-initramfs: Генерация /boot/initrd.img-5.4.0-28-generic зависает

Вопрос или проблема

Я обновился с 18.04 LTS до 20.04 LTS, и система работала нормально, пока не появился новый обновление ядра. Теперь она зависает на создании образа initrd.

Некоторые детали:

Вызов хука btrfs
Добавление бинарного файла /bin/btrfs
Добавление библиотеки-ссылки /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0
Добавление библиотеки /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0
Добавление библиотеки-ссылки /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0
Добавление библиотеки /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0
Добавление библиотеки-ссылки /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
Добавление библиотеки /usr/lib/x86_64-linux-gnu/libz.so.1.2.11
Добавление библиотеки-ссылки /usr/lib/x86_64-linux-gnu/liblzo2.so.2.0.0
Добавление библиотеки /usr/lib/x86_64-linux-gnu/liblzo2.so.2.0.0
Добавление библиотеки-ссылки /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.4
Добавление библиотеки /usr/lib/x86_64-linux-gnu/libzstd.so.1.4.4
Вызов хука cloud-initramfs-dyn-netconf
Вызов хука compcache
Вызов хука cryptroot

Обновление зависает

Когда я пытаюсь удалить предыдущее ядро 5.4.0-29-generic с помощью команды apt-get autoremove, я получаю следующее, хотя ядро 5.4.0-29 успешно удалено.

Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение состояния информации... Готово
Следующие пакеты будут УДАЛЕНЫ:
  amd64-microcode intel-microcode iucode-tool libdbus-glib-1-2 linux-headers-generic thermald
0 обновлено, 0 новых установлено, 6 для удаления и 0 не обновлено.
После этой операции будет освобождено 4,066 кБ места на диске.
(Чтение базы данных ... 116627 файлов и директорий в настоящее время установлено.)
Удаление amd64-microcode (3.20191218.1ubuntu1) ...
update-initramfs: откладывает обновление (триггер активирован)
Удаление intel-microcode (3.20191115.1ubuntu3) ...
update-initramfs: откладывает обновление (триггер активирован)
Удаление iucode-tool (2.3.1-1) ...
Удаление thermald (1.9.1-1build1) ...
Удаление libdbus-glib-1-2:amd64 (0.110-5fakssync1) ...
Удаление linux-headers-generic (5.4.0.29.34) ...
Обработка триггеров для libc-bin (2.31-0ubuntu9) ...
Обработка триггеров для man-db (2.9.1-1) ...
Обработка триггеров для dbus (1.12.16-2ubuntu2) ...
Обработка триггеров для initramfs-tools (0.136ubuntu6) ...
update-initramfs: Генерация /boot/initrd.img-5.4.0-28-generic

Прогресс: [ 92%] [####################################################################################################################..........]

update-initramfs: Генерация /boot/initrd.img-5.4.0-28-generic создала файл длиной 0 байт
ll /boot
всего 175412
drwxr-xr-x  4 root root     4096 Май  5 09:33 ./
drwxr-xr-x 20 root root     4096 Апр 29 15:34 ../
-rw-r--r--  1 root root   237718 Апр 22 10:08 config-5.4.0-28-generic
drwxr-xr-x  5 root root     4096 Май  5 09:25 grub/
lrwxrwxrwx  1 root root       27 Май  5 09:24 initrd.img -> initrd.img-5.4.0-28-generic
-rw-r--r--  2 root root 81192806 Апр 29 15:35 initrd.img-5.4.0-28-generic
-rw-r--r--  2 root root 81192806 Апр 29 15:35 initrd.img-5.4.0-28-generic.dpkg-bak
-rw-r--r--  1 root root        0 Май  5 09:29 initrd.img-5.4.0-28-generic.new
lrwxrwxrwx  1 root root       27 Апр 29 15:34 initrd.img.old -> initrd.img-5.4.0-28-generic
drwx------  2 root root    16384 Сен  3  2018 lost+found/
-rw-r--r--  1 root root   182704 Янв 28  2016 memtest86+.bin
-rw-r--r--  1 root root   184380 Янв 28  2016 memtest86+.elf
-rw-r--r--  1 root root   184840 Янв 28  2016 memtest86+_multiboot.bin
-rw-------  1 root root  4736015 Апр 22 10:08 System.map-5.4.0-28-generic
lrwxrwxrwx  1 root root       24 Май  5 09:24 vmlinuz -> vmlinuz-5.4.0-28-generic
-rw-------  1 root root 11657976 Апр 22 10:43 vmlinuz-5.4.0-28-generic
lrwxrwxrwx  1 root root       24 Апр 29 15:34 vmlinuz.old -> vmlinuz-5.4.0-28-generic

Кто-нибудь еще сталкивался с такой ошибкой?

Я отформатировал систему и переустановил с DVD 20.4 LTS. Затем я восстановил пользовательские файлы из резервной копии.
Система затем повторно подписалась на canonical-liveupdate. Сервер теперь работает на 5.4.0-29.

Ответ или решение

Устранение проблемы с зависанием команды update-initramfs при генерации /boot/initrd.img-5.4.0-28-generic

Введение

После обновления системы с Ubuntu 18.04 LTS до 20.04 LTS вы столкнулись с проблемой зависания команды update-initramfs, когда она пытается создать образ initrd для ядра 5.4.0-28-generic. Это может стать серьезным препятствием для нормальной работы вашей системы, так как инициализация среды запуска зависит от корректного создания данного образа. Давайте разберем возможные причины этого поведения и рассмотрим шаги по его устранению.

Анализ проблемы

Судя по предоставленной информации, команда зависает на этапе, когда обрабатываются хуки (hooks) – специальные сценарии, которые выполняются на различных этапах процесса создания initramfs. Вы указали, что процесс зависает после вызова хуков, связанных с файловой системой Btrfs и другими модулями.

Одной из основных проблем может быть конфигурация файловой системы. Например, если ваша файловая система Btrfs встретила ошибки или была неправильно отформатирована, это может вызвать зависание. Кроме того, проблемы с зависимыми пакетами, такими как microcode, также могут вызвать подобное поведение.

Шаги по устранению проблемы

  1. Перезагрузка системы: Однако это может показаться элементарным советом, перезагрузка часто решает временные конфликты или зависания процессов.

  2. Проверка и исправление ошибок файловой системы:

    • Загрузитесь с Live CD или USB.
    • Откройте терминал и выполните команду btrfs check для проверки файловой системы на наличие ошибок. Следуйте рекомендациям по исправлению ошибок.
  3. Очищение зависших процессов: Возможно, в фоновом режиме работает еще один процесс, который блокирует создание образа initrd. Используйте команду ps aux | grep update-initramfs, чтобы найти зависшие процессы и остановите их.

  4. Удаление старых ядер:

    • Если предыдущий kernel (например, 5.4.0-29) успешно удален, но команда autoremove зависает на update-initramfs, попробуйте вручную удалить пакеты с помощью dpkg.
    • sudo dpkg --remove --force-remove-reinstreq PACKAGE_NAME — замените PACKAGE_NAME на название пакета, который вы хотите удалить.
  5. Обновление системы:

    • Обновите и перезагрузите вашу систему:
      sudo apt update
      sudo apt dist-upgrade
      sudo apt autoremove
    • Обратите внимание на наличие недостающих зависимостей.
  6. Переустановка пакета initramfs-tools:

    • Это важный пакет для работы с initramfs. Попробуйте переустановить его:
      sudo apt install --reinstall initramfs-tools

Заключение

Если вами были выполнены все приведенные рекомендации, но проблема осталась, возможно, лучшим решением будет полная переустановка системы, как вы указали в своем сообщении. Восстановление из резервной копии вместе с новой установкой может помочь избежать подобных проблем в будущем. Обязательно следите за обновлениями системы и регулярно проверяйте состояние файловой системы для снижения риска возникновения подобных проблем.

Если у вас возникнут дополнительные вопросы или потребуется помочь с конкретными шагами, не стесняйтесь обращаться за поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...