昨天我询问了我的笔记本电脑遇到的问题
基本上,问题是所有最新的内核都失败了,而旧内核仍然有效。有人建议我 BIOS 可能是问题所在。我查看了我的 BIOS,将其设置为默认状态,但没有任何改善。
我无法理解的是 BIOS 如何影响较新的内核,而旧内核仍然有效?最后一个仍然有效的内核是 3.19.0-20,但我注意到它在启动时出现错误。
如果我降到 3.19.0-18,一切都干净了。
我突然想到,也许一些错误的代码被从一个内核拖到另一个内核,这就是给我带来问题的原因?
每个人都在谈论删除旧内核,而我想尝试删除最新内核。我想启动到 3.19.0-18,这是最后一个完全干净的内核,然后删除所有在此之后的内核。然后我应该能够正常启动到现在最新的 3.19.0-18,并让一切恢复正常??
我看到的删除内核的方法是通过突触。可能还有更好的选择,但我不知道。
基本问题在于这个想法是否合理。片段是否会从一个内核拖到另一个内核,我是否可以返回到旧内核并删除所有最近的内核?有人真的尝试过这样做吗?
谢谢,Ilan
答案1
在解压/安装过程中,代码片段可能会从一个内核拖到另一个内核 - 也有可能返回到较旧的内核。在 grub 启动菜单中,选择要启动到的内核 - 选择要保留的内核后,即可启动到该内核
uname -r
会告诉你当前正在运行什么内核
dpkg -l | grep linux-image
dpkg -l | grep linux-headers
会告诉您系统上保存了哪些内核/标题 - 我也会删除标题 - 虽然它们不会占用太多空间但我仍然会清除它们,如果我要删除内核,为什么还要保留它们?
请注意,不要删除你正在运行的内核uname -r
,即删除这些内核和头文件条目将使你的系统无法使用
然后删除你不想要的:
sudo apt-get purge
完整命令的示例如下:
sudo apt-get purge linux-image-3.16.0-41-generic linux-image-3.16.0-41-lowlatency linux-image-extra-3.16.0-41-generic
sudo apt-get purge linux-headers-3.16.0-41 linux-headers-3.16.0-41-generic linux-headers-3.16.0-41-lowlatency
输出示例dpkg -l | grep linux-headers
如下:
jason@casa-wesella:~$ dpkg -l | grep linux-headers
ii linux-headers-3.16.0-41 3.16.0-41.57~14.04.1 all Header files related to Linux kernel version 3.16.0
ii linux-headers-3.16.0-41-generic 3.16.0-41.57~14.04.1 i386 Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii linux-headers-3.16.0-41-lowlatency 3.16.0-41.57~14.04.1 i386 Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii linux-headers-3.16.0-43 3.16.0-43.58~14.04.1 all Header files related to Linux kernel version 3.16.0
ii linux-headers-3.16.0-43-generic 3.16.0-43.58~14.04.1 i386 Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii linux-headers-3.16.0-43-lowlatency 3.16.0-43.58~14.04.1 i386 Linux kernel headers for version 3.16.0 on 32 bit x86 SMP
ii linux-headers-generic-lts-utopic 3.16.0.43.34 i386 Generic Linux kernel headers
ii linux-headers-lowlatency-lts-utopic 3.16.0.43.34 i386 lowlatency Linux kernel headers