我确实安装了unattended-upgrades
(2.8),并且进程正在运行。
然而,当我试图安装升级时,经常会遇到这个错误:
Processing triggers for initramfs-tools (0.140) ...
update-initramfs: Generating /boot/initrd.img-5.10.0-18-amd64
pigz: abort: write error on <stdout> (No space left on device)
E: mkinitramfs failure pigz 28
update-initramfs: failed for /boot/initrd.img-5.10.0-18-amd64 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
这可以通过使用命令这里手动删除旧内核映像来解决。
删除内核映像不起作用的一些背景和解决方案(这种情况曾经发生过一次)是这里,到目前为止,完全过时的基于电子邮件的Debian bug跟踪器中的不活动bug报告是这里。
我用Debian 11和KDE。这种情况已经发生了很长一段时间,现在已经发生了很多次。为什么(或如何发现)?
如果没有自动删除,我认为至少应该删除旧的内核映像,也许可以使用上面的命令,当升级由于缺乏引导分区磁盘空间而失败时。
发布于 2022-10-01 00:04:08
正如一些评论所指出的,Debian的工作不是决定您需要或不需要哪个内核映像。Debian正在执行正确的操作,在安装新版本时保留内核映像,这允许您在更新版本出现问题时启动到以前的版本。正如frostschutz在他的评论中所指出的,Arch Linux有相反的问题,在安装新内核时删除旧的内核映像,在我的经验中,这是非常不受欢迎的行为,尽管它通常运行良好,但并不总是这样,特别是在新内核中存在回归时。
根据系统的配置方式、使用apt的方式以及安装新内核的方法,这种行为可能会有所不同,但我始终选择将以前的内核保持在安装之前,直到我确定新内核运行良好后才显式地删除它们,作为维护系统的一部分。
但是,我相信您可能在稳定的Debian上使用内核元包,这略有不同,我相信每次grub引导列表安装升级内核时都会添加一个新项(比如initrd.img-4.15.0-191到initrd.img-4.15.0-192)。所以内核是仍然安装的包,直到您卸载它们为止。我想说,可以肯定地说,Debian希望系统管理员知道一些简单的事情,比如确保分区足够大,以便在更长时间内完成它们的工作,如果分区大小是一个问题,则可以执行计划中的清理。
但是,从某种意义上说,这完全不重要,每个新映像一旦安装,可能占用大约150个MiB的空间,所以这里的实际问题只是您的/只是太小。或者,如果您使用的是单独的/boot分区,那就太小了。取决于您的设置,您没有给出相关的细节,但这是主要问题。
您通常可以使用apt autoremove
删除不再使用的旧包,因此这可能是您最简单的解决方案,只需编写脚本以便每天或每周运行或任何有意义的内容。
检查我的/boot、initrd.img、System.map和vmlinux- -每组文件大约有22个MiB,一个远程服务器对每组3个文件大约是55 MiB,这不是很大,这表明您的/boot太小了,但这取决于您/或/boot的样子,以及它是否是一个单独的分区。
如果您无法控制您的环境,或者您无法调整分区的大小以便更长期地使用,那么在自动升级运行之后,每晚运行apt autoremove
可能是您的最佳选择。如果Debian更老,也可以使用apt-get autoremove
。
通过查看一些远程服务器,我注意到当前内核和之前的两个内核的倾向,但是我不知道这个清理操作是什么,如果它是您可以使用apt进行的设置或配置,或者它是一个每晚运行的脚本解决方案。这绝对不是手动完成的。
我也同意frostschutz的观点,他指出,如果单独的分区显示微小的大小,而当您通常有so的存储空间时,就没有列出系统的任何规格,所以这只是猜测而已。一般来说,当你发布一个问题时,你想把相关的信息发布到你的问题上,因为否则人们不得不猜测。
如果您计划长期运行系统,那么您需要至少2倍于/中使用的容量,3到4倍更好,因为/内容总是随着时间的推移而变大。如果是单独的/boot,那么只需计算每个内核将占用多少,假设每一次迭代都会得到大约10%的时间,那么您想要保持活动的内核有多少,这就决定了如果分离的话,/boot应该有多大。为了安全起见,增加了开销。
另外,您希望在每次更新之后运行apt--当然,否则/var/cache/apt会被旧包填满。
https://unix.stackexchange.com/questions/719329
复制相似问题