ubuntu20.04回退系统内核


ubuntu20.04回退系统内核

有时候开机之后突然发现nvidia-smi检查不到驱动了(分辨率不对,第二个屏幕检测不到等等), 一般来说是因为内核自动更新导致的,这里介绍一下内核回退的方法

第一步

查看当前内核版本

uname -a

我的结果是:

Linux ytikewk 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Tue Oct 26 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

第二步

查看系统现存的内核版本

grep menuentry /boot/grub/grub.cfg

我的结果是:

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry Ubuntu --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option gnulinux-simple-5a31bb56-e4cb-4b44-b922-2bae09c9925f {
submenu Advanced options for Ubuntu $menuentry_id_option gnulinux-advanced-5a31bb56-e4cb-4b44-b922-2bae09c9925f {
	menuentry Ubuntu, with Linux 5.11.0-41-generic --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option gnulinux-5.11.0-41-generic-advanced-5a31bb56-e4cb-4b44-b922-2bae09c9925f {
	menuentry Ubuntu, with Linux 5.11.0-41-generic (recovery mode) --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option gnulinux-5.11.0-41-generic-recovery-5a31bb56-e4cb-4b44-b922-2bae09c9925f {
	menuentry Ubuntu, with Linux 5.11.0-40-generic --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option gnulinux-5.11.0-40-generic-advanced-5a31bb56-e4cb-4b44-b922-2bae09c9925f {
	menuentry Ubuntu, with Linux 5.11.0-40-generic (recovery mode) --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option gnulinux-5.11.0-40-generic-recovery-5a31bb56-e4cb-4b44-b922-2bae09c9925f {
menuentry UEFI Firmware Settings $menuentry_id_option uefi-firmware {

可以看到, 总共有两个版本(5.11.0-41和5.11.0-40),由于当前内核是5.11.0-41,那么我们就要把它回退到5.11.0-40

如果有多个内核版本,可以查看nvidia 驱动是和哪个驱动版本匹配的

ls /var/lib/dkms/nvidia/

我的结果是:

470.86  kernel-5.11.0-40-generic-x86_64

第三部

修改grub文件

sudo gedit /etc/default/grub

把GRUB_DEFAULT选项按照第二部的内容修改如下

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.11.0-40-generic"

第四布

更新grub并重启

sudo update-grub
reboot
经验分享 程序员 微信小程序 职场和发展