Ubuntu是应用广泛的Linux操作系统,特别是在机器学习应用中,通过调用NVIDIA显卡的GPU进行计算和研究的主要平台之一。但是由于NV显卡的存在,有可能会让Ubuntu在驱动加载上问题,造成开机启动无法进入系统。本人深受这个问题困扰,多次遇到这个问题额表现形式有:
开机进入登录界面显示不正常,且出现即使输入正确用户名和密码也重新进入开机界(Login Loop)。
此外,我遇到的还有开机后显示一个全部都是紫色状态,就是开机背景色,不过死在那里,键盘失效,只能长按开机键关机。
除此之外,还有显示很多行同样的文本,大意是报nouveau ERROR。
问题原因
以上状态的直接问题,都是由于内核与NVIDIA显卡驱动出现问题,使得启动的时候,无法代用NV显卡,造成的现实问题。但为什么开始安装和使用一切顺利,而用过一段时间,就突然不行了呢?请看如下图示:
这是在选择进入Advanced Options for Ubuntu时看到的选项,可以看到内核不止一个,为什么呢?我也没有升级内核啊!答案只能是内核在你不知道的时候升级了。而升级之后的内核,是不会自动加载你的显卡驱动的,那就需要在这个心内核上手动重新安装NV驱动。
解决方案
3.1进入命令行模式
一般情况下这个还不是个问题,只需要Ctrl+Alt+F1,即可进入纯命令行模式,可以通过命令操作系统了。
不过,我遇到了一次无法进入系统的情况,整个系统启动过程停留在了一个全屏是紫色背景色,没有任何输入之处的状态,键盘已经无效。此时,我选择重启Ubuntu系统,进入Advanced Options for Ubuntu状态,选择recovery mode进入系统,进入了那个显示分辨率错误的Login Loop显示界面。此时Ctrl+Alt+F1即可切换进入Linux命令行。
3.2 修改grub文件
通过命令sudo vim /etc/default/grub打开并编辑grub文件。
将文件中的GRUB_CMDLINE_LINUC_DEFAULT=”quiet splash”$修改成GRUB_CMDLINE_LINUC_DEFAULT=”quiet splash nomodeset”$,保存退出。然后运行命令sudo update-grub。