如果我使用“低延迟”内核,可以删除“通用”内核吗?

我目前无法更新我的版本,因为启动盘上没有足够的空间。我只有一个内核版本,但似乎同时存在通用和低延迟版本。uname -r 只显示
3.8.0-32-lowlatency
ls -lah /boot 显示
-rw-r--r--  1 root root 899K Oct  2 00:00 abi-3.8.0-32-generic
-rw-r--r--  1 root root 899K Oct  7 09:27 abi-3.8.0-32-lowlatency
-rw-r--r--  1 root root 152K Oct  2 00:00 config-3.8.0-32-generic
-rw-r--r--  1 root root 152K Oct  7 09:27 config-3.8.0-32-lowlatency
drwxr-xr-x  3 root root 2.0K Jan  1  1970 efi
drwxr-xr-x  5 root root 1.0K Oct 22 10:05 grub
-rw-r--r--  1 root root  32M Oct 22 09:51 initrd.img-3.8.0-32-generic
-rw-r--r--  1 root root  32M Oct 22 10:05 initrd.img-3.8.0-32-lowlatency
drwxr-xr-x  2 root root  12K Feb 25  2013 lost+found
-rw-r--r--  1 root root 173K Dec  5  2012 memtest86+.bin
-rw-r--r--  1 root root 175K Dec  5  2012 memtest86+_multiboot.bin
-rw-------  1 root root 3.0M Oct  2 00:00 System.map-3.8.0-32-generic
-rw-------  1 root root 3.0M Oct  7 09:27 System.map-3.8.0-32-lowlatency
-rw-------  1 root root 5.2M Oct  2 00:00 vmlinuz-3.8.0-32-generic
-rw-------  1 root root 5.2M Oct  7 09:27 vmlinuz-3.8.0-32-lowlatency

所以我该怎么做才能让我更新呢?显然,我需要174m的启动空间,但还差40m。

可能是重复的问题:如何在/boot目录中释放更多空间? - Joren
很遗憾,不是的。那篇帖子的回答并不适用于这个问题。 - Webalistic
1你真的需要-lowlatency内核吗?如果不需要,你可以删除它以释放空间:sudo apt-get remove --purge linux-image-3.8.0-32-lowlatency linux-headers-3.8.0-32-lowlatency - ergysdo
这其实就是整个问题的关键。系统信息显示正在使用低延迟内核,uname -r也显示如此。在hd根目录下,initrd.img.old链接到通用内核。所以,是否可以安全地删除通用内核,或者会导致我的机器出现问题? - Webalistic
1个回答

是的,如果您只使用低延迟内核,并且它正常工作并安装了相关软件包,那么您可以删除提供通用内核的软件包。您可能不愿意这样做,但如果您需要在/boot目录中释放空间,并且仅删除旧内核不足以满足需求,那么这是合理的。除非您决定要运行通用内核,否则不太可能发生任何问题,但在这种情况下,您需要先安装它。
您已经通过检查uname -r命令的输出,确认您确实正在运行低延迟内核,并且版本号与您已安装的内核软件包相匹配。因此,可以安全地删除-generic软件包。请注意避免误删其他软件包。

您还需要确保您能够接收到低延迟内核的更新。linux-lowlatency 包是一个元包, 它声明了依赖于最新的针对您的Ubuntu版本的低延迟内核包;我建议您安装该包,除非您知道自己不需要它(以及原因)。如果您只想要内核而不需要相关的头文件,则可以安装 linux-image-lowlatency 元包而不安装 linux-lowlatency

如果您正在使用低延迟内核的 LTS Enablement Stack,那么和您的版本一致的指令中会有对应的元包,只需将其中的 generic 替换为 lowlatency

最后,注意大多数用户都会更喜欢通用内核,因此你可以考虑切换回通用内核,除非你有特定原因需要牺牲其他性能特征以获取低延迟。如果你决定切换回通用内核,我建议你确保已安装必要的通用软件包,并重新启动以测试你所安装的至少一个通用内核是否实际工作(应该是的!但为了保险起见,请尝试一下),然后再卸载低延迟内核。参见为什么选择低延迟内核而不是通用或实时内核?