为什么/boot文件夹这么小?

最近我收到了一个警告,说我的/boot空间不足,然后我找到了this solution。在重新启动并确认我没有搞砸系统之后,我开始思考为什么会出现这种情况?

好吧,显然安装了很多内核。这不是我手动做的(我甚至不知道什么是内核!),所以我猜测有一个自动更新过程可以保持我的系统良好运行。我对此感到满意。

通过查看Disks实用程序,我发现/boot分区只有255MB,而我的128GB SSD还有很多空间。再次强调,这不是我配置的 - 这必须是Ubuntu安装程序的默认设置。

为什么默认情况下/boot分区不更大?创建一个小于驱动器大小2%的分区似乎很愚蠢。我知道增加分区只是暂时解决问题,所以也许我应该真正问的是:为什么Ubuntu不能自动解决这个问题?它只需要跟踪哪些内核长时间没有使用,并自动删除它们即可。

谁安装了Ubuntu?你的家目录分区加密了吗? - Pilot6
@Pilot6 我自己安装了Ubuntu,使用了友好的非极客安装程序,并没有选择加密。操作系统使用了128GB的固态硬盘,/home目录使用了3TB的机械硬盘。 - Torben Gundtofte-Bruun
1个回答

好的,什么是内核?
在计算机领域,内核是一种计算机程序,用于管理来自软件的输入/输出请求,并将其转化为中央处理器和计算机的其他电子组件的数据处理指令。内核是现代计算机操作系统的基本组成部分。

来源,维基百科

这个更新是什么时候发布的?

我认为它与Ubuntu基础更新一起发布:

基本软件包是(a)ubuntu-desktop如果已安装,否则是安装的任何元软件包中按字母顺序排列的第一个,例如kubuntu-desktoplubuntu-desktop
它似乎也包含了内核 - 但当然并不总是有内核更新。
通常在更新时需要重启的是内核(尽管从4.0+开始不再需要)。 来源,Ubuntu Wiki 现在回答你的主要问题。
目前我安装了6个内核:
linux-image-3.13.0-32-generic
linux-image-3.13.0-46-generic
linux-image-3.13.0-48-generic
linux-image-3.13.0-49-generic
linux-image-3.13.0-51-generic
linux-image-3.13.0-53-generic

您可以使用以下命令来查找:
dpkg --list | grep linux-image

为什么Ubuntu不直接删除它们?
嗯,有时候我使用不同的内核。例如,在我当前的内核中,linux-image-3.13.0-53-generic,当我破坏了我的xorg.conf文件时,出现了一个奇怪的错误 - 我无法轻松地访问tty。linux-image-3.13.0-51-generic为我解决了这个问题,所以我可以撤销我的干扰。
对于很多人来说也是一样的 - Ubuntu并不打算删除你可能需要的软件包(即使你已经好几年没用过,你可能还是会需要它)。我可以采取不同的做法,询问是否需要删除,但实际上并没有这样做。
/boot为什么这么小?
为什么它需要很大呢?我的当前内核只有5.6MB大小:
-rw-------  1 root root 5.6M May 20 12:11 vmlinuz-3.13.0-53-generic

总的来说,对于版本为“-53”的总“东西”大小为37.1 MB。你可以在那里放入4个内核,通常足够了。
另外,请注意{{link1:现在/boot的推荐大小是500-600 MB}}。

我需要它吗?

你不需要 - 我没有它。这不是强制性的,但有一些优点:

  • 作为一个救援分区
  • rootfs位于LVM、RAID上,被加密,或者GRUB不支持
  • 也许可以节省几秒钟的启动时间

{{link2:来源,Server Fault}}


ubuntu-desktop和kernel之间有什么关系? - Pilot6
@Pilot6,Ubuntu Base里没有内核更新吗? - Tim
你是什么意思?Ubuntu Base 是什么?内核与桌面环境没有任何关系。 - Pilot6
@Pilot6,你所看到的更新称为Ubuntu Base,它们不包含内核更新吗? - Tim
我从未听说过“Ubuntu Base”这个术语。内核更新来自“main”存储库中的<release_name>-updates。我的观点是ubuntu-desktop和任何内核包之间没有依赖关系。 - Pilot6
所以内核在任何情况下都不会“基于”桌面环境。 - Pilot6
我看到了你的截图,但这并没有改变任何事情。"Ubuntu Base"更新组与ubuntu-desktop元包之间没有关系。看起来更新以某种方式分组。 - Pilot6
@Pilot6 是的,我知道它们是分组的。我认为内核更新是与过去的更新一起放在那个类别中的。你觉得它们是独立的吗? - Tim
我不关心更新程序中的类别。它们几乎毫无意义。只是为了不让人混淆而已。所以我建议从很好的答案中删除“ubuntu-desktop”,以免显得愚蠢。 - Pilot6
@Pilot6 我觉得是有关联的,我从维基百科上获取了这个信息。 - Tim
非常感谢你提供的教育背景,这对我很有帮助!看起来我在安装系统时选择了使用LVM,但我不确定,也记不清了(而且我现在不在机器旁边,无法查看)。是否有必要备份所有数据并从头重新安装呢? - Torben Gundtofte-Bruun
@TorbenGundtofte-Bruun 不是真的,我只会不管它。只要确保你经常清理掉核心就可以了。 - Tim
非常好奇。推荐的是500Mb, 默认是250Mb,我刚安装的Ubuntu 16.04在两个月内/boot空间就用完了。真不太好。正在考虑重新安装。 - Phil Lord
@PhilLord sudo apt-get autoremove - Tim
@Tim 我知道如何删除内核,但是每两个月一次?如果我回去重新分区,用Gb的话,可以持续几年。我无法理解为什么默认设置如此缓慢,真希望我早点注意到这个问题。 - Phil Lord
@PhilLord 因为更多的是浪费空间 - 你可以稍微频繁地运行一个命令。我每次都在执行 sudo apt-get upgrade 的时候运行它。 - Tim
@Tim 原来这个问题已经被报告为一个bug并且得到修复了。可惜的是,对于我们已经在这里的人来说,意味着/boot目录需要调整大小。真是遗憾。https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1465050 - Phil Lord