В очень похожем случае это был один из скриптов update-motd.
Следующее помогло:
sudo rm /etc/update-motd.d/90-updates-available
Вот небольшой помощник, который измеряет время каждого скрипта:
$ for f in /etc/update-motd.d/*;do echo $f;time $f;done
/etc/update-motd.d/00-header 0m0.007s
/etc/update-motd.d/10-help-text 0m0.005s
/etc/update-motd.d/90-updates-available 0m49.163s
/etc/update-motd.d/91-release-upgrade 0m0.152s
/etc/update-motd.d/98-fsck-at-reboot 0m0.015s
/etc/update-motd.d/98-reboot-required 0m0.003s
(output reduced to the relevant parts)
Прямая причина в каком-то пакете. (Думаю, это пакет ядра, не связанный с systemd )У него есть скрипт установки. Это разумно, потому что ваши initramfs могут содержать какой-то хук/бинарный модуль/модуль ядра/что-то еще из этого пакета, поэтому его нужно пересобрать, иначе вы собираетесь использовать старую версию. (Обратите внимание, что большинство initramfs содержат необязательный модуль ядра для root, старая версия которого не может работать с новым ядром )при следующей загрузке.
Initramfs не содержит (хотя может содержать любой файл, но бессмысленное )ядро, ядро уже загружено в оперативную память загрузчиком, initramfs используется только как самая первая смонтированная файловая система.
В типичной системе работа initramfs заключается в предоставлении программы инициализации (, возможно, включающей другие библиотеки зависимостей или интерпретатор сценариев )для запуска самого первого процесса PID=1, который монтирует «настоящую корневую файловую систему» (обычная корневая файловая система, которую вы используете на жестком -разделе диска )", затем поверните _корень к ней, выполните init в реальной корневой файловой системе.
Systemd, как программа, предназначенная для запуска с PID=1, обеспечивает как функциональность запуска как init в initramfs, так и init в реальной корневой файловой системе.
Ядро помещается в оперативную память и распаковывает отдельные initramfs в свою rootfs (=ramfs ), первую файловую систему для ядра.
Initramfs можно использовать как мини-систему Linux, например. для встроенных приложений.
Если используется systemd -init, файлы systemd будут находиться в initramfs.
HOOKS
в mkinitcpio.conf
содержит скрипты ловушек , которые помещают файлы в initramfs (модули ядра, программы, сценарии загрузки,... ), но не скрипты ловушек самих себя. Есть крючки systemd-init
в качестве альтернативы крючкам busybox
.
pacman -Syu linux
обновляет новейшее ядро в /boot
, но также запускает воссоздание initramfs.
pacman -Syu systemd
можно также заставить повторно -создать initramfs (последнюю ссылку ), но это не делается автоматически, как при установке ядра. Это потому, что systemd-init
является альтернативой busybox
. Archlinux использует файлы busybox
и соответствующие хуки по умолчанию.
Ссылки: