Apt
update-initramfs:/boot/initrd.img-4.15.0-112-generic 失敗,為 1
說明:
當我執行 dist-upgrade 時,我遇到了以下詳細資訊的問題
1 not fully installed or removed. After this operation, 0 B of additional disk space will be used. perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = "en_US:", LC_ALL = (unset), LC_CTYPE = "UTF-8", LC_TERMINAL = "iTerm2", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to a fallback locale ("en_US.UTF-8"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory 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-4.15.0-112-generic W: Possible missing firmware /lib/firmware/ast_dp501_fw.bin for module ast Error 24 : Write error : cannot write compressed block E: mkinitramfs failure lz4 -9 -l 24 update-initramfs: failed for /boot/initrd.img-4.15.0-112-generic 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)
任何人都可以解決這個問題嗎?
隱藏在所有輸出中的真正錯誤消息是
Write error : cannot write compressed block
,以壓倒性優勢被發現是可用空間不足的結果,可用於創建新的 initramfs 映像。請記住,您需要為/boot
文件夾中的未壓縮圖像提供足夠的空間,然後將其替換為壓縮版本,但由於您使用的是 lz4 壓縮算法,因此可能不會有很大的大小差異(我猜 < 20%,我)。我看到了幾種不同的方法來改善你的問題,除了用細齒梳瀏覽 /boot 目錄並尋找你可以安全地重新定位/刪除的垃圾之外,這應該是你的第一種方法。
- 如果沒有足夠的額外可用空間來允許生成新的 initrd 文件,那麼應該查看您的系統上是否攜帶任何可以清除的舊核心包,並將它們的 initrd 文件與他們。啟動終端仿真器並
dpkg --list | grep '^linux-'
檢查uname -r
. 如果您有一些滿足該標準並且願意為了成功完成包更新而放棄它們,只需在sudo dpkg --purge
.- 如果您只為您正在執行的核心版本安裝了軟體包,您可能需要將目前的 initrd 文件重新定位到 /boot 目錄之外,然後查看是否可以完成軟體包更新,這當然會為您提供使用閃亮的新 initramfs,然後您可以安全地刪除您重新定位的舊的。這看起來像這樣,假設正在使用的 shell 實例的工作目錄與 /boot 位於不同的文件系統上(簡單的英語:確保首先
cd
到不同分區上的某個文件夾,或者如果這不可能並且你的 / tmp 文件夾是一個掛載的 tmpfs 分區,然後cd /tmp
),然後執行:# This'll provide a useful report of the files that get moved incase the package # update fails and you need to put them back where you found them sudo mv -iv /boot/*initrd "$(pwd)" # Now time to do a little housekeeping on the package manager and see if # the update will complete successfully sudo apt autoremove sudo apt autoclean sudo apt --fix-broken install sudo dpkg --configure -a
如果您仍然遇到相同的錯誤並且您確定可用空間問題已得到解決,那麼結論一定是 initramfs-tools 軟體包確實出現了問題,因為它目前存在於您的系統上,因此請嘗試返回它使用以下命令序列恢復到原始狀態:
sudo apt remove initramfs-tools sudo apt clean sudo apt -y install initramfs-tools