Apt

update-initramfs:/boot/initrd.img-4.15.0-112-generic 失敗,為 1

  • September 13, 2021

說明:

當我執行 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 目錄並尋找你可以安全地重新定位/刪除的垃圾之外,這應該是你的第一種方法。

  1. 如果沒有足夠的額外可用空間來允許生成新的 initrd 文件,那麼應該查看您的系統上是否攜帶任何可以清除的舊核心包,並將它們的 initrd 文件與他們。啟動終端仿真器並dpkg --list | grep '^linux-'檢查uname -r. 如果您有一些滿足該標準並且願意為了成功完成包更新而放棄它們,只需在sudo dpkg --purge.
  2. 如果您只為您正在執行的核心版本安裝了軟體包,您可能需要將目前的 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

引用自:https://unix.stackexchange.com/questions/667990