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 ]; thenmenuentry_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