我最近从 Ubuntu 18.04 更新到 19.10。在我看来,更新安装的内核 (5.3.0-29) 比我在 18.04 (5.0.0-36) 下运行的内核更旧。从那以后,我在所有 apt 更新上都有错误,显示 initramfs 失败:
Setting up initramfs-tools (0.133ubuntu10) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.133ubuntu10) ...
update-initramfs: Generating /boot/initrd.img-5.3.0-29-generic
Error 24 : Write error : cannot write compressed block
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.3.0-29-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)
Run Code Online (Sandbox Code Playgroud)
我的 uname -r 输出是
5.3.0-29-generic
Run Code Online (Sandbox Code Playgroud)
和
alex@acer:~$ dpkg --list | grep linux-image
ii linux-image-5.0.0-36-generic 5.0.0-36.39 amd64 Signed kernel image generic
ii linux-image-5.3.0-29-generic 5.3.0-29.31 amd64 Signed kernel image generic
ii linux-image-generic 5.3.0.29.33 amd64 Generic Linux kernel image
Run Code Online (Sandbox Code Playgroud)
关于如何解决的任何想法?我什至不确定问题是什么,但已经经历了很多其他解决方案。
ale*_*345 18
好的,我想我可能刚刚解决了这个问题。一开始我没有注意到我实际上使用的是新内核而不是旧内核。在我更新后的前几次启动中,使用的是较旧的内核 (5.0.-),而不是较新的内核 (5.3.-)。所以sudo apt purge linux-image-5.0.0-36-generic
它看起来像在 /boot 上释放了一些空间,瞧计算机说
Setting up initramfs-tools (0.133ubuntu10) ...
update-initramfs: deferring update (trigger activated)
(Reading database ... 328490 files and directories currently installed.)
Purging configuration files for linux-image-5.0.0-36-generic (5.0.0-36.39) ...
rmdir: failed to remove '/lib/modules/5.0.0-36-generic': Directory not empty
Processing triggers for initramfs-tools (0.133ubuntu10) ...
update-initramfs: Generating /boot/initrd.img-5.3.0-29-generic
Run Code Online (Sandbox Code Playgroud)
我遇到了这个问题,因为我的 /boot 分区已满。
我小心地删除了一些我确定不再需要的大型 initrd.img 文件。
确保你写下你的最后一个工作内核。不要立即删除所有其他人,因为您不希望它们全部重新生成。
我跑了sudo apt autoremove --purge
又做了另一个sudo apt dist-upgrade -V
来生成missind initrd 图像文件。
一旦您在最后一个内核上重新启动。一切都很好。然后我邀请你清理所有的旧东西。
您不应该接触的当前包裹
dpkg -l | egrep "linux-(signed|modules|image|headers)" | grep $(uname -r)
您可以清除的旧包
dpkg -l | egrep "linux-(signed|modules|image|headers)" | grep -v $(uname -r | cut -d - -f 1)
我用
dpkg -l | egrep "linux-(signed|modules|image|headers)" | grep -v $(uname -r | cut -d - -f 1) | awk {'print $2'} | xargs sudo apt purge -y
我在运行 5.8.0-45 的 Ubuntu 20.10 上仍然有 4.10 和 4.13 软件包
作为解决方法,您可以尝试使用更多临时暂存空间:
cd /
sudo rsync -av /boot/ /boot2/
sudo mount --bind /boot2 /boot
sudo update-initramfs -u
sudo umount /boot
sudo rsync -av /boot2/ /boot/ --exclude "*.new" --exclude "*.dpkg-bak" --delete --inplace
Run Code Online (Sandbox Code Playgroud)
5.3 是比 5.0 更新/更高的内核
只有前两个数字来自上游,对于比较内核很重要。
其他尾随的次要数字是仅适用于该内核的内部 Ubuntu 代码,即。不要将 5.3 系列内核的次要编号与 5.0 系列内核进行比较。次要编号(即 5.0/5.3 之后的编号,只能用于在同一内核内进行比较)
https://wiki.ubuntu.com/Kernel/MainlineBuilds
注意:我所说的两个数字是指 number.number; 因此,粘贴链接中的 4.19 示例符合我使用该术语的前两个数字。
归档时间: |
|
查看次数: |
14215 次 |
最近记录: |