如何在使用旧内核启动时删除较新的内核?

我系统上安装了两个内核。3.16...和3.19.3...我正在运行Ubuntu 14.10,它自带了3.16...内核。我决定尝试最新的可能内核(3.19.3...),但有时会出现错误,系统感觉不稳定。我看不出保留这个新内核的理由。如果我选择启动到旧内核,然后使用Synaptic卸载新内核,是否会遇到任何问题?一旦重新启动,我会遇到问题吗,还是Ubuntu会自动无忧地启动到旧内核?
对于正确的操作步骤和实现我的目标的最佳方法,我希望能得到一些建议。谢谢。
3个回答

你可以像移除其他软件包一样移除内核,只要你没有在那个内核中启动。
要获取已安装的内核列表,请使用以下命令:dpkg -l 并配合 grep 使用。
dpkg -l | grep linux

在那里,你会看到安装的软件包列表。
然后使用apt-get的remove命令。
sudo apt-get remove linux-...<name as shown by dpkg -l>

标题不需要被移除,linux-image-... 是需要被移除的实际二进制文件。

请注意,apt-get 应该会自动重新运行必要的命令来更新 grub 和启动 RAM 磁盘。

当然,如果你使用 apt-get update + apt-get upgrade(或者相同功能的自动升级),新的内核将会被重新安装...

我认为你可以防止重新安装,但是我不知道具体的命令。


谢谢!我现在没有足够的声望点数,无法给你的回答点赞(很遗憾)。不过我还是很感谢你的回答。 - Wes Haq

这很简单。首先,您需要了解一些关于您想要删除的内核的信息。您需要知道它的完整名称(例如3.19.0-15-generic)。您可以通过使用3.19内核引导,打开终端(Ctrl+Alt+T)并运行以下命令来找到它:

uname -r

注意输出。使用3.16内核重新启动,并再次打开终端,运行命令。
sudo apt-get remove linux-headers-$(uname -r)
sudo apt-get remove linux-image-$(uname -r)
sudo update-initramfs -d -k $(uname -r)
sudo update-initramfs -u
sudo update-grub

完成了!下次你看到GRUB时,3.19内核将不再存在。

谢谢!我现在没有足够的声望点数来给你的回答点赞(需要15个声望点数)。不过,我还是很感激你的回答。 - Wes Haq
没问题,我在这里帮你! - Eduardo Cola
@WesHaq 你好Wes!你可以点击左侧的图标将此选为解决方案。 - mchid
4运行sudo apt-get remove linux-headers-$(uname -r)将卸载当前正在运行的内核。请不要这样做。 - Cerin

使用旧内核登录。 我的目标版本是:5.13.0-28 运行以下命令。
sudo apt-get remove --purge linux-image-5.13.0-28-generic linux-image-5.13.0-28-lowlatency linux-headers-5.13.0-28-generic linux-headers-5.13.0-28-lowlatency linux-modules-5.13.0-28-generic linux-modules-5.13.0-28-lowlatency linux-hwe-5.13-headers-5.13.0-28