/boot 满是内核——要删除什么?

use*_*026 8 ubuntu linux-kernel

我们有一些 Ubuntu 16.04 服务器。unattended-upgrades自 16.04 起自动启用并且 /boot是一个单独的分区。由于自动安全更新,新内核的引导分区空间不足。

我们无法重新启动系统(出于可用性原因),因此机器仍在使用倒数第二个内核。

我应该删除哪些内核?除了当前的,最旧的和最新的之外的所有东西?

大家有什么建议吗?

我还注意到最新内核的状态为“半配置”。这个内核可能不起作用,所以我应该删除这个内核并使用旧内核吗?

的输出dpkg -l | grep linux-image

ii  linux-image-4.4.0-21-generic --> old kernel
ii  linux-image-4.4.0-34-generic --> current kernel
ii  linux-image-4.4.0-36-generic --> new kernel
ii  linux-image-4.4.0-38-generic --> new kernel
ii  linux-image-4.4.0-42-generic --> new kernel
ii  linux-image-4.4.0-45-generic --> new kernel
ii  linux-image-4.4.0-47-generic --> new kernel
ii  linux-image-4.4.0-51-generic --> new kernel
ii  linux-image-4.4.0-53-generic --> new kernel
iF  linux-image-4.4.0-57-generic --> new kernel
Run Code Online (Sandbox Code Playgroud)

GAD*_*D3R 7

要清除旧内核,您可以使用purge-old-kernels命令行工具。

该程序将从系统中删除旧的内核和头文件包,释放磁盘空间。它永远不会删除当前运行的内核。默认情况下,它至少会保留最新的 2 个内核,但用户可以使用 --keep 参数覆盖该值。任何额外的参数将直接传递给apt-get

要安装purge-old-kernels,请运行:

sudo apt install byobu
Run Code Online (Sandbox Code Playgroud)

或者

sudo apt install bikeshed
Run Code Online (Sandbox Code Playgroud)

要保持最新的n内核运行:

sudo purge-old-kernels --keep n
Run Code Online (Sandbox Code Playgroud)

例如:n=2

sudo purge-old-kernels --keep 2
Run Code Online (Sandbox Code Playgroud)

更新grub

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

  • `byobu` 可能是你想要的 16.04 Xenuial 的包:`purge-old-kernels` 在 Trusty 和 Xenial 之间的某个时间从 `bikeshed` 移到了 `byobu`,尽管 `bikeshed` 现在推荐使用 `byobu` 所以你仍然会除非您没有安装推荐,否则请获取该程序。 (2认同)

sch*_*iba 3

apt-get autoremove,定期运行,应该能够帮助你完成你想要的事情。正在运行的内核、以前的内核和两个最新的内核应该足够了。