定期更新破壞了 Elementary OS 6 上的 initramfs

定期更新破壞了 Elementary OS 6 上的 initramfs

筆記:

我兩個月前安裝了 Elementary OS,從那時起就沒有遇到任何問題。

systemctl --failedjournalctl -p 3 -b我定期檢查它們,一切都很好。自安裝以來所有更新都很順利。


我使用一個簡單的 apt-fast 腳本來更新我的系統。它位於/usr/bin/

這裡是

#!/usr/bin/fish
sudo apt-fast clean
sudo dpkg --configure -a
sudo apt-fast autoclean
sudo apt-fast update
echo
echo
echo "Packages that will be updated:"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
sudo apt list --upgradable -a
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo
echo
sudo apt-fast upgrade -y
sudo apt-fast full-upgrade -y
sudo apt-fast autoremove --purge --auto-remove -y
sudo apt-fast clean
sudo flatpak update

這是更新期間發生的事情: https://pastebin.com/xh4EZXT5

我發現出了問題。

所以我跑了

sudo dpkg --configure -a

錯誤仍然存在。我用谷歌搜尋了錯誤並嘗試重新安裝initramfs-tools

我使用以下方法刪除了它:

sudo apt remove initramfs-tools
sudo apt autoremove

然後我跑了sudo apt install initramfs-tools,但仍然收到錯誤。

現在我得到了這個

~ ❯❯❯ sudo apt-get install -f initramfs-tools

Reading package lists... Done
Building dependency tree       
Reading state information... Done
initramfs-tools is already the newest version (0.136ubuntu6.6).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up initramfs-tools (0.136ubuntu6.6) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.136ubuntu6.6) ...
update-initramfs: Generating /boot/initrd.img-5.14.15-xanmod1-cacule
I: The initramfs will attempt to resume from /dev/dm-2
I: (/dev/mapper/data-swap)
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block 
E: mkinitramfs failure lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.14.15-xanmod1-cacule with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
~ ❯❯❯ sudo dpkg --configure -a
Setting up initramfs-tools (0.136ubuntu6.6) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.136ubuntu6.6) ...
update-initramfs: Generating /boot/initrd.img-5.14.15-xanmod1-cacule
I: The initramfs will attempt to resume from /dev/dm-2
I: (/dev/mapper/data-swap)
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block 
E: mkinitramfs failure lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.14.15-xanmod1-cacule with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
~ ❯❯❯ sudo journalctl -p 3 -b
-- Logs begin at Fri 2021-10-22 13:47:38 IST, end at Sat 2021-10-30 16:55:55 IST. --
Oct 30 11:15:51 Strix kernel: x86/cpu: SGX disabled by BIOS.
Oct 30 11:15:51 Strix kernel: ACPI BIOS Error (bug): Failure creating named object [\_GPE._E4A], AE_ALREADY_EXISTS (20210604/dswload2-326)
Oct 30 11:15:51 Strix kernel: ACPI Error: AE_ALREADY_EXISTS, During name lookup/catalog (20210604/psobject-220)
Oct 30 11:15:51 Strix kernel: 
Oct 30 11:15:55 Strix lightdm[2302]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
Oct 30 11:15:55 Strix lightdm[2302]: PAM adding faulty module: pam_kwallet.so
Oct 30 11:15:55 Strix lightdm[2302]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
Oct 30 11:15:55 Strix lightdm[2302]: PAM adding faulty module: pam_kwallet5.so
Oct 30 11:15:56 Strix systemd[2306]: Failed to start Portal service (GTK+/GNOME implementation).
Oct 30 11:15:56 Strix lightdm[2496]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
Oct 30 11:15:56 Strix lightdm[2496]: PAM adding faulty module: pam_kwallet.so
Oct 30 11:15:56 Strix lightdm[2496]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
Oct 30 11:15:56 Strix lightdm[2496]: PAM adding faulty module: pam_kwallet5.so
Oct 30 11:15:56 Strix lightdm[2521]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
Oct 30 11:15:56 Strix lightdm[2521]: PAM adding faulty module: pam_kwallet.so
Oct 30 11:15:56 Strix lightdm[2521]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
Oct 30 11:15:56 Strix lightdm[2521]: PAM adding faulty module: pam_kwallet5.so
Oct 30 11:16:06 Strix lightdm[2521]: gkr-pam: unable to locate daemon control file
Oct 30 16:17:56 Strix systemd[1]: Failed to start Ubuntu Advantage APT and MOTD Messages.
Oct 30 16:17:56 Strix kernel: [drm:drm_new_set_master [drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to grab modeset ownership
Oct 30 16:17:56 Strix kernel: [drm:drm_new_set_master [drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to grab modeset ownership
Oct 30 16:18:00 Strix lightdm[36108]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
Oct 30 16:18:00 Strix lightdm[36108]: PAM adding faulty module: pam_kwallet.so
Oct 30 16:18:00 Strix lightdm[36108]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
Oct 30 16:18:00 Strix lightdm[36108]: PAM adding faulty module: pam_kwallet5.so
Oct 30 16:18:00 Strix bluetoothd[851]: RFCOMM server failed for Headset Voice gateway: rfcomm_bind: Address already in use (98)
Oct 30 16:18:00 Strix bluetoothd[851]: RFCOMM server failed for :1.120/Profile/HSPHSProfile/00001108-0000-1000-8000-00805f9b34fb: rfcomm_bind: Address already in use (98)
Oct 30 16:18:01 Strix systemd[36112]: Failed to start Portal service (GTK+/GNOME implementation).
Oct 30 16:18:01 Strix lightdm[36277]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
Oct 30 16:18:01 Strix lightdm[36277]: PAM adding faulty module: pam_kwallet.so
Oct 30 16:18:01 Strix lightdm[36277]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
Oct 30 16:18:01 Strix lightdm[36277]: PAM adding faulty module: pam_kwallet5.so
Oct 30 16:18:01 Strix lightdm[36318]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
Oct 30 16:18:01 Strix lightdm[36318]: PAM adding faulty module: pam_kwallet.so
Oct 30 16:18:01 Strix lightdm[36318]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
Oct 30 16:18:01 Strix lightdm[36318]: PAM adding faulty module: pam_kwallet5.so
Oct 30 16:18:09 Strix lightdm[36318]: gkr-pam: unable to locate daemon control file
Oct 30 16:18:10 Strix kernel: [drm:drm_new_set_master [drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to grab modeset ownership
Oct 30 16:18:10 Strix kernel: [drm:drm_new_set_master [drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to grab modeset ownership
Oct 30 16:18:10 Strix kernel: [drm:drm_new_set_master [drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to grab modeset ownership
Oct 30 16:18:10 Strix kernel: [drm:drm_new_set_master [drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000100] Failed to grab modeset ownership
Oct 30 16:54:37 Strix systemd[1]: Failed to start Ubuntu Advantage APT and MOTD Messages.
Oct 30 16:54:52 Strix systemd[1]: Failed to start Ubuntu Advantage APT and MOTD Messages.
Oct 30 16:55:00 Strix systemd[1]: Failed to start Ubuntu Advantage APT and MOTD Messages.
~ ❯❯❯ systemctl --failed
  UNIT                 LOAD   ACTIVE SUB    DESCRIPTION                           
● ua-messaging.service loaded failed failed Ubuntu Advantage APT and MOTD Messages

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

1 loaded units listed.
~ ❯❯❯ sudo systemctl restart ua-messaging.service
Job for ua-messaging.service failed because the control process exited with error code.
See "systemctl status ua-messaging.service" and "journalctl -xe" for details.
~ ❯❯❯ sudo systemctl start ua-messaging.service
Job for ua-messaging.service failed because the control process exited with error code.
See "systemctl status ua-messaging.service" and "journalctl -xe" for details.

我更好的解決方案是刪除導致問題的安裝後腳本。否則我不會願意刪除 Mesa 和 Nvidia 的 PPA。

我的電腦仍然可以重新啟動,但無法使用 APT 套件管理器。我需要安裝initramfs-tools根據類似問題的解決方案刪除的內容。

答案1

這真的很容易解決

解決方案及解釋:

cd /var/cache/apt/archives/
ls -al
#list packages installed

sudo rm -rf initramfs-tools*
#removes the problem files

sudo apt update 
#updates software cache 

sudo apt --fix-broken install
#looks for other problems and solve it 

sudo apt install initramfs-tools*
#recovers problems packages .

正確的腳本將是:

#! /bin/bash
sudo apt-get clean
sudo dpkg --configure -a
sudo apt-get autoclean
sudo apt-get update
echo
echo
echo "Packages that will be updated:"
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
sudo apt list --upgradable -a
echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
echo
echo
sudo apt-get upgrade -y
sudo apt-get full-upgrade -y
sudo apt-get autoremove  -y
sudo apt-get clean

使用 apt-get 或 aptitude -f 代替 apt-fast

apt-get
#stable

apt-fast
#unstable but fast

aptitude -f
#best and safe and fix all the problems .

--purge 
#without specification can sometimes delete important files

如果這不起作用,那麼發布我告訴你的每個命令的輸出,特別是apt --fix-broken install

答案2

sudo dpkg --configure -a無法使用lz4。我想你應該安裝它(apt install lz4)。

但更好的想法似乎是檢查/etc/initramfs-tools/initramfs.confCOMPRESS選項。我有以下評論:

# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz ]

使用gzip。 Grub 只有模組 gz、lzop、xz 和我的grub.cfg加載gzip(除了 xen 平台,其中還加載了 lzop 和 xz)。

另外,只需查看您的/boot目錄:如果沒有 initrd 文件,則不需要initramfs-tools

相關內容