Ubuntu18.04重启后内核自动更新显卡驱动失效
最近一次重启服务器,发现显卡驱动不见了。网上找了很多办法,原因就是因为重启后内核更新,导致内核版本和Nvidia显卡驱动版本不一致造成的。大致整理了一下。有两种解决方案,一是回退系统内核版本,二是卸载原有驱动,重新安装新版本驱动。个人推荐第一种方法,因为重装驱动必然导致深度学习的环境都要重装,如:cuda、cudann等等。而且程序所依赖的框架(比如:pytorch、tensorflow等)很有可能和新版本的驱动不兼容。总之,可能带来一系列连锁反应。然后自己把这个过程打算记录下来,开始看看是如何解决的吧~
我这里是通过Xshell远程连接服务器进行操作的:
- 查看系统驱动信息,
nvidia-smi
和nvcc -V
都失效: - 查看当前内核版本,
uname -a
: - 查看系统内有哪些内核版本,
grep menuentry /boot/grub/grub.cfg
: - 更改grub默认启动项:
开机启动设置由/etc/default/grub
文件确定。该文件需要root权限修改,并在修改后及时更新。在终端使用以下命令打开并修改:
sudo vi /etc/default/grub
打开文件后,内容如图所示:
将GRUB_DEFAULT=0
修改为GRUB_DEFAULT="1> 2"
,注意>
后面有空格。这里1代表第一级菜单中序号为1的条目(ubuntu默认是从0开始),即Ubuntu高级选项
;我这里是将其修改为序号为2的条目,即Linux 5.4.0-109-generic
(具体还是要看你系统内存在哪些内核版本)。完成后保存并退出,按Esc, :wq
:
5. 然后执行sudo update-grub
终端显示如下:
6. 重启系统sudo reboot
:
7. 重启后可在查看版本内核是否已经修改成功,uname -a
:
8. 再打开nvidia-smi查看驱动信息:
9. 驱动又回来啦!!!