当计算机启动时,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)
从中删除那些额外的“Ubuntu 10.10,内核”行是否安全/etc/grub/menu.lst
?目前,我已将第三行注释掉,直到 memtest86(不包括)。但我想知道是否出于某种原因需要它们?
答案1
安全但毫无意义。下次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 <package-name>
。只要确保你不要删除当前或最新的内核(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
笔记:这仍然会破坏棘手的情况。它会删除诸如linux-image-generic
是否安装了 HWE 堆栈之类的东西。这对你来说可能是也可能不是个大问题。那些包(虽然它们看起来很重要)惯于级联删除整个桌面。您将只剩下当前版本(因为它有效)和最高版本的内核。如果您最近重新启动过,那么它们可能是同一个。
答案2
是的。但我建议保留前一个,以防默认版本出现任何奇怪的问题。如果你碰巧至少有整整一周的测试没有问题,你可以删除旧版本并更新 grub 的配置。或者,如果你只是不想看到其他版本,那么只需编辑 grub.cfg 文件并删除那里的菜单选项,而无需删除实际的旧内核。这样你就可以以防万一。此外,内核并不大,不用担心,呵呵。
答案3
是的,这是安全的。但只有当您确定最新内核工作正常时才这样做。同时保留旧内核,以便在出现问题时可以手动启动它们。
答案4
从包管理器中删除它们,它们将自动消失
例如:
apt-get remove linux-image-2.6.35-22-generic