清理 /boot 分区最安全的方法是什么?

清理 /boot 分区最安全的方法是什么?

我为分区分配了 200 MB /boot。每当我尝试更新内核时,我都会收到一条错误消息,基本上说/boot已满。

我该怎么做才能清理/boot并删除/备份旧内核?

答案1

命令行方法:

首先检查您的内核版本,这样您就不会删除正在使用的内核映像,运行:

uname -r

现在运行此命令获取已安装内核的列表:

dpkg --list 'linux-image*' | grep ^ii

并通过运行以下命令删除您不再想要/需要的内核:

sudo apt-get remove linux-image-VERSION

将 VERSION 替换为您要删除的内核版本。

删除完旧内核后,您可以运行以下命令删除不再需要的软件包:

sudo apt-get autoremove

最后,您可以运行此命令来更新 grub 内核列表:

sudo update-grub

答案2

注意:这仅适用于由于 /boot 已满 100% 而无法使用 apt 进行清理的情况

如果由于 /boot 已满 100% 导致 apt-get 无法运行,则需要先清理 /boot。这很可能是在部分安装中捕获了内核升级,这意味着 apt 几乎完全冻结,并且会不断提示您运行,apt-get -f install即使该命令不断失败。

获取内核映像列表并确定哪些是可以不用的。此命令将显示除当前正在运行的内核之外的已安装内核sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`。请注意列表中的两个最新版本。您无需担心正在运行的内核,因为它未在此处列出。您可以使用 进行检查uname -r

编写一个命令,删除 /boot 中所有与您无关的内核文件,并使用括号扩展来确保您的理智。请记住排除当前和两个最新的内核映像。示例:sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-*。您还可以使用语法 {80..84} 的范围。

sudo apt-get -f install清除导致 apt 对部分安装不满意的原因。

如果您遇到包含类似“内部错误:找不到图像(/boot/vmlinuz-3.2.0-56-generic)”的错误,请运行该命令sudo apt-get purge linux-image-3.2.0-56-generic(使用适当的版本)。

最后,sudo apt-get autoremove清除手动启动清理所遗留下来的旧内核映像包。

建议,运行sudo apt-get updatesudo apt-get upgrade处理在等待您发现完整的 /boot 分区时可能已备份的任何升级。

建议2,评论https://help.ubuntu.com/community/AutomaticSecurityUpdates并考虑在 /etc/apt/apt.conf.d/50unattended-upgrades 中将 Unattended-Upgrade::Remove-Unused-Dependencies 设置为 true。这相当于在每次安全更新后运行 autoremove,以确保您清除未使用的内核,但也会删除它认为未使用的其他内容,从而避免将来出现此问题。

答案3

有关于此的文档https://help.ubuntu.com/community/RemoveOldKernels

总结:使用

sudo apt-get autoremove --purge
# and/or:
sudo purge-old-kernels

purge-old-kernels工具可以通过 安装sudo apt install byobu。以下是其手册页中的描述:

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

如果您想要复制粘贴解决方案,ReSearchIT Eng 建议如下:

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge

答案4

我发现放弃小分区并移至根分区要容易得多/boot。这还可以防止将来出现任何空间不足的问题。

首先将数据从启动分区移至根分区(以 身份运行sudo -s):

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

删除(或注释掉)/boot中的条目/etc/fstab

vim /etc/fstab

更新 grub 并确保一切正确:

update-grub

apt现在应该可以顺利升级了。

这样会留下一个未使用的 200mb 分区(如果您认为值得麻烦的话,您可以将其用于其他用途)。

相关内容