新开个坑,记录一些GPU主机的常见问题。
问题描述
某次开机后驱动无法使用,nvidia-smi
显示无法连接nvidia驱动。
原因
如果没有关闭自动更新,ubuntu重启后可能切换内核,导致驱动失效。
确认问题
查看当前内核:
uname -a
查看已安装内核:
dpkg --get-selections |grep linux-image
看看是否存在多个内核且使用了最新的。
如果是双系统,可以开机的时候进入grub界面,然后进入高级选项,选择之前的内核
开机后输入nvidia-smi
检查驱动是否正常,若正常则是内核问题,可以继续往下操作,其余问题不在本文范围内。
解决方法
为了方便起见,我将所有的自动更新都进行关闭
暂时解决——重装驱动
重装驱动可以暂时解决该问题。但是后续内核更新依然会导致驱动失效。
禁止ubuntu更新
vim /etc/apt/apt.conf.d/10periodic
vim /etc/apt/apt.conf.d/20auto-upgrades
以10periodic
文件为例,将后面所有数字改成0,20auto-upgrades
同理
hold内核
可以hold内核,使其保持当前状态
输入以下指令查看现有内核:
dpkg --get-selections |grep linux-image
输入以下指令hold
所需内核:
sudo apt-mark hold <kernel_version>
关闭软件包更新
在Software & Update
软件中,将自动更新关闭
切换内核
输入以下指令查看内核启动顺序:
gre gnulinx /boot/grub/grub.cfg
其中可以看到启动顺序分为menuentry
和submenu
,编号分别为0和1,在编号为1的submenu
下,还有4个条目,编号为0-3。
其实这个就对应着上文“确认问题”中的grub,其中0为第一个选项,1为第二个选项(ubuntu高级启动),而后面的0-3对应高级启动中的四个选项。
我们输入以下指令选择默认启动顺序:
vim /etc/default/grub
修改图示所示的内容。
默认该值为0,也就是默认从menuentry
启动,我们需要修改它。以将其修改为从5.15.0-56-generic
启动,即编号1的submenu
中,编号为2的内核为例。
我们需要将该值修改为GRUB_DEFAULT="1> 2"
,注意>
右侧有空格。
之后,我们需要更新grub,然后重启系统即可
sudo update-grub
sudo reboot
小问题
对于双系统来说,进入gurb时会发现从第一项启动依然会使用之前的内核,因为我们修改的只是默认启动的条目,并未修改每个条目对应的内核(博主也不知道如何修改)。但是光标默认停留在第二行的"ubuntu高级选项"处,如果我们回车点进该选项,会发现光标默认停留在选定的内核处。如下图所示:
光标默认在ubuntu高级选项处
点进去会发现光标默认在选中的内核处
因此,我们可以通过以下方式进入对应的内核:
- 什么都不干,倒计时结束会默认从对应的内核启动
- 摁两下回车,主动进入对应的内核
- 如果想从第一条进入,可以删除多余内核,但是考虑到删除内核的风险,并未这么做
至此,该问题得到解决。
标签:常见问题,grub,启动,ubuntu,默认,驱动,内核,nvidia,GPU From: https://www.cnblogs.com/treasurew/p/17752295.html