神奇的BUG——Linux之4
配置
出现版本Ubuntu 18.04 + 内核版本 5.4.0-77-generic + NVIDIA显卡驱动 435.21
查看内核版本指令如下:
uname -r
我的笔记本显示如下:
问题
NVIDIA显卡掉了,原因在于内核升级得太高,已经和原有的显卡驱动不兼容。
使用如下指令可以查看内核的历史下载记录:
sudo dpkg --get-selections | grep linux
其中右侧显示 install 的是已经安装了的,显示 deinstall 的是被我卸载了的。
现在问题是如何给内核降级,或者说回退内核版本,比方说降到版本 5.4.0-48 。
解决
① 查看可用内核信息:
grep menuentry /boot/grub/grub.cfg
我的笔记本显示如下:
可以看到已经下载了 5.4.0-48 版本的内核;
如果没有下载过,则需执行下述两条指令安装该版本的内核:
sudo apt-get install linux-headers-5.4.0-48-generic
sudo apt-get install linux-image-5.4.0-48-generic
② 修改 grub 文件:
建议使用 vim 修改该文件而不是 gedit :
sudo vim /etc/default/grub
找到代码 GRUB_DEFAULT=0 并进行修改:
对于怎么修改该行代码的问题,有如下两点说明:
A、如果你的grub版本是2.0以上,则将代码换成如下:
GRUB_DEFAULT='Advanced options for Ubuntu > Ubuntu, with Linux 5.4.0-48-generic'
保存后执行更新指令:
sudo update-grub
重启后内核降级。
B、对于下述三种情况,建议使用该方法修改代码:
情况一:系统 grub 版本在 2.0 以下;
情况二:不清楚系统 grub 版本是否在 2.0 以上;
情况三:按照 A 中的方法,修改、更新并重启后,内核版本没有回退;
先修改代码为:
GRUB_DEFAULT='Ubuntu, with Linux 5.4.0-48-generic'
保存后执行同 A 中的更新指令,出现提示如下:
按照提示内容,再重新修改 /etc/default/grub 中的
GRUB_DEFAULT=‘Ubuntu, with Linux 5.4.0-48-generic’
为如下:
GRUB_DEFAULT='gnulinux-advanced-f569d798-30e7-4997-9379-2e9b32f54008>gnulinux-5.4.0-48-generic-advanced-f569d798-30e7-4997-9379-2e9b32f54008'
保存后同 A 中操作,即更新:
sudo update-grub
并重启,重启后内核成功回退到版本 5.4.0-48 。