Вопрос или проблема
Я обновился с 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, также могут вызвать подобное поведение.
Шаги по устранению проблемы
-
Перезагрузка системы: Однако это может показаться элементарным советом, перезагрузка часто решает временные конфликты или зависания процессов.
-
Проверка и исправление ошибок файловой системы:
- Загрузитесь с Live CD или USB.
- Откройте терминал и выполните команду
btrfs check
для проверки файловой системы на наличие ошибок. Следуйте рекомендациям по исправлению ошибок.
-
Очищение зависших процессов: Возможно, в фоновом режиме работает еще один процесс, который блокирует создание образа initrd. Используйте команду
ps aux | grep update-initramfs
, чтобы найти зависшие процессы и остановите их. -
Удаление старых ядер:
- Если предыдущий kernel (например, 5.4.0-29) успешно удален, но команда
autoremove
зависает наupdate-initramfs
, попробуйте вручную удалить пакеты с помощьюdpkg
. sudo dpkg --remove --force-remove-reinstreq PACKAGE_NAME
— замените PACKAGE_NAME на название пакета, который вы хотите удалить.
- Если предыдущий kernel (например, 5.4.0-29) успешно удален, но команда
-
Обновление системы:
- Обновите и перезагрузите вашу систему:
sudo apt update sudo apt dist-upgrade sudo apt autoremove
- Обратите внимание на наличие недостающих зависимостей.
- Обновите и перезагрузите вашу систему:
-
Переустановка пакета
initramfs-tools
:- Это важный пакет для работы с initramfs. Попробуйте переустановить его:
sudo apt install --reinstall initramfs-tools
- Это важный пакет для работы с initramfs. Попробуйте переустановить его:
Заключение
Если вами были выполнены все приведенные рекомендации, но проблема осталась, возможно, лучшим решением будет полная переустановка системы, как вы указали в своем сообщении. Восстановление из резервной копии вместе с новой установкой может помочь избежать подобных проблем в будущем. Обязательно следите за обновлениями системы и регулярно проверяйте состояние файловой системы для снижения риска возникновения подобных проблем.
Если у вас возникнут дополнительные вопросы или потребуется помочь с конкретными шагами, не стесняйтесь обращаться за поддержкой.