从menu.lst中删除旧内核是否安全?

当计算机启动时,除了通常的内容之外,GRUB还会显示一长串先前的内核,例如

Ubuntu 10.10, kernel 2.6.35-23-generic Ubuntu 10.10, kernel 2.6.35-23-generic (recovery mode) Ubuntu 10.10, kernel 2.6.35-22-generic Ubuntu 10.10, kernel 2.6.35-22-generic (recovery mode) [6 more similar] Ubuntu 10.10, memtest86+ Other operating systems: Dell Utility Partition Windows Vista (loader) 

/etc/grub/menu.lst删除那些额外的“Ubuntu 10.10,内核”行是否安全? 目前我已经从第三个注释到(不包括)memtest86。 但我想知道是否因特殊原因需要它们?

安全但毫无意义。 下次update-grub运行时,它们可能会重新启动。

内核作为包安装,因此可以像其他包一样删除。 只需点击grub就可以获得数百兆的磁盘空间。

它们曾经作为非自动安装,但现在可以安全地删除:

 sudo apt-get autoremove 

如果您手动安装了内核和各种辅助包,则可以看到使用此命令安装的内核版本:

 dpkg -l | awk '$2~/linux-(im|he|to).+[0-9]/ {print $2}' 

那会告诉你这样的事情:

 linux-headers-3.13.0-24 linux-headers-3.13.0-24-generic linux-image-3.13.0-24-generic linux-image-extra-3.13.0-24-generic 

从那里你可以使用sudo apt-get purge 删除东西。 只要确保你没有删除当前或最新的内核uname -a以查看你所使用的版本)并且我同意其他人所说的内容,请保留下一个最新的内核以防万一。

这是我尽最大努力安全地检测和执行此操作:

 current=$(uname -r) kernels=( /lib/firmware/[0-9].* ) dpkg -l | awk '$2~/linux-(im|he|to).+[0-9]/ {print $2}' \ | grep -Ev "$current|${kernels[-1]##*/}" \ | xargs sudo apt-get purge 

注意 :这仍然会克服棘手的情况。 如果安装了HWE堆栈,它将删除像linux-image-generic这样的东西。 这对您来说可能是也可能不是一个大问题。 这些包(尽管它们看起来很重要) 不会级联删除整个桌面。 你会留下当前的(因为它工作)和最高版本的内核。 如果您最近重新启动,那可能是同一个。

是。 但我建议将前一个留在那里,以防万一你的默认问题给出了任何奇怪的问题。 如果您碰巧至少有一整周的测试没有问题,您可以删除旧的并更新grub的配置。 或者,如果您只是想查看其他版本,则只需编辑grub.cfg文件并删除其中的菜单选项,而无需删除实际的旧内核。 那样你就拥有它们以防万一。 除了内核并没有那么大的担心嘿嘿。

是的,这是安全的。 但只有在你确定最新的内核工作正常时才这样做。 还要保留旧内核,以便在出现问题时手动启动它们。

那么memtest以及当前内核和当前内核恢复模式应该留在那里,但只要新内核工作正常,那么删除旧内核就没有问题。

从包管理器中删除它们,它们将自动消失

例如:

 apt-get remove linux-image-2.6.35-22-generic