笔记:
我有高于平均水平的 Linux 经验,但不是精英。
我有一张 Nvidia GTX 1650 笔记本电脑卡。
我使用 Linux XanMod CacULE 内核。
我使用最新的 Mesa 和 Nvidia 驱动程序
我两个月前安装了 Elementary OS,从那时起就没有遇到任何问题。
systemctl --failed
journalctl -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.conf
和COMPRESS
选项。我有以下评论:
# COMPRESS: [ gzip | bzip2 | lz4 | lzma | lzop | xz ]
使用gzip
。 Grub 只有模块 gz、lzop、xz 和我的grub.cfg
加载gzip
(除了 xen 平台,其中还加载了 lzop 和 xz)。
另外,只需查看您的/boot
目录:如果没有 initrd 文件,则不需要initramfs-tools