在 Ubuntu 上清理 /boot

在 Ubuntu 上清理 /boot

当我启动 Ubuntu 服务器时,出现以下警告消息:

 => /boot is using 100.0% of 235MB

当我查看 /boot 时,我发现有很多依赖于内核版本的文件。

ls -al /boot/
abi-3.13.0-*-generic
config-3.13.0-*-generic
initrd.img-3.13.0-*-generic
System.map-3.13.0-*-generic
vmlinuz-3.13.0-*-generic

其中 * 对应 24,35,36,37,39,40,41,43,44

我怎样才能安全地清理它?

谢谢

答案1

卸载不再使用的旧内核版本。我通常会保留安装的最后两三个版本,并删除较旧的版本。例如,您可以运行

apt-get purge linux-image-3.13.0-{24,35,36,37,39,40}-generic

当您执行此操作时,上面列出的旧文件将从 /boot 中删除。

答案2

我使用这段只写的脚本来完成这项工作。我想我在 StackExchange 上对类似问题的先前回答中找到了它,但现在找不到它了。无论如何 - 此脚本保留了内核和相关文件的运行版本,但删除了所有其他版本:

dpkg -l 'linux-' | sed '/^ii/!d;/'"$(uname -r | sed "s/(.)-([^0-9]+)/\1/")"'/d;s/^[^ ]* [^ ]* ([^ ])./\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

我花了相当多的时间研究它,并且设法向自己解释它是如何工作的......

答案3

我编写了一个可以自动完成这项工作的工具,希望它能帮助到其他人:https://github.com/erichs/bootnukem

相关内容