Nvidia
定期更新破壞了 Elementary OS 6 上的 initramfs
筆記:
我有高於平均水平的 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
錯誤仍然存在。我用Google搜尋了錯誤並嘗試重新安裝
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
我在類似問題的解決方案後刪除的。
真的很容易解決
有解釋的解決方案:
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