一种双系统下修复Ubuntu图形界面缺失的方法

发布于:2023-01-20 ⋅ 阅读:(170) ⋅ 点赞:(0)

前言:今天在装gpu驱动时(作深度学习之用),按Ctrl+Alt+F1,关闭图形界面,在tty界面中执行sudo service lightdm stop,再进入到驱动下载目录对驱动修改权限、执行安装
之后启动图形界面sudo service lightdm start,按 Ctrl+Alt+F7回到图形界面,再执行nvidia-smi,成功显示N卡信息
在这里插入图片描述
但出人意料的是,当我重启后,竟然进不了图形界面了,grub界面正常,但进入Ubuntu后,只有一条白线在屏幕上端闪烁,按 Ctrl+Alt+F7没有反应,按 Ctrl+Alt+F1则进入tty界面,图形界面缺失。下面写下我遇到的问题和尝试过的办法


一些基本的操作

联网

​ 首先解决联网的问题,由于打不开图形界面,无法连接WiFi。遂用手机通过USB线连上电脑,打开热点–其他共享方式–通过USB共享网络(不同手机可能不太一样)

确认系统存在

重启后,没有no boot…之类的报告,正常进入grub界面,可选择Ubuntu还是Windows系统,则系统还存在

sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

​ 进入Ubuntu系统,按 Ctrl+Alt+F1则进入tty界面,输入用户名(login)和密码(Password)(注意数字锁)。先进入root模式,执行sudo su ,系统报告sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位(这也是后来才知道的,因为系统中文的原因,中文在tty界面都显示为小菱形)

出错原因

​ /usr/bin/sudo的权限被更改或用户组变更

解决方法

​ 重启后,进入ubuntu高级选项 “Advanced options for ubuntu”,选中后面带有recovery mode(修复模式)
在这里插入图片描述

进入界面后,选择root:…那一行回车

输入用户名和密码(可能直接按ENTER就可以)(如果忘记root密码执行sudo passwd重置密码)

执行以下命令

chmod 4755 /usr/bin/sudo 
chmod 755 /usr 
chmod 644 /usr/lib/sudo/sudoers.so 
chown -R root:root /usr/lib/sudo 
chmod 0440 /etc/sudoers

重启

执行sudo reboot

图形界面的安装

还是进入到修复模式 root:

执行以下命令

#更新
sudo apt-get update
sudo apt-get upgrade
#重新安装gnome
sudo apt-get remove gnome
sudo apt-get install gnome
#然后推荐重启一下
sudo reboot
#卸载重新安装
sudo apt-get autoremove ubuntu-desktop
sudo apt-get autoremove gdm
sudo apt-get autoremove lightdm 

sudo apt-get install lightdm
sudo apt-get install gdm
sudo apt-get install ubuntu-desktop
#启动图形界面服务
sudo service lightdm restart

​ 然并卵,我并没有删除什么桌面配置文件,只是装驱动的问题😥

从驱动上解决问题

卸载NVIDIA驱动

纯属无奈之举,既然是装驱动的问题,那卸载gpu驱动也许可以了呢,执行下面的命令

sudo apt-get remove --purge *nvidia-*
sudo apt-get autoremove 
sudo apt-get install -f 

再重启,还是不行😰

恢复被加入黑名单的驱动

sudo vim /etc/modprobe.d/blacklist.conf

(这里就体现了vim的好处了,用gedit没有图形界面,无法在命令行界面编辑)

按i进入编辑模式,删去以前加入的驱动

blacklist vga16fb 
blacklist nouveau 
blacklist rivafb 
blacklist rivatv 
blacklist nvidiafb

按ESC退出编辑模式,再按:wq保存退出,重启

不行😇,实在有点绝望了,打算重装系统

最终解决方法

​ 思前想后还是尝试修复下,在查阅了大量的资料后,发现删除/etc/X11/xorg.conf文件有效

在修复模式下执行命令

sudo rm /etc/X11/xorg.conf

重启,就进入图形界面了😊(不过有所登录界面有所变化,可能是前面的命令所导致)

原因分析:安装Nvidia驱动后,会生成/etc/X11/xorg.conf配置文件,导致ubuntu下独显和集显的冲突或者驱动安装不匹配,有兴趣的同学可以看下这篇文章

总结

  1. Ubuntu系统语言最好别选中文,否则在tty等界面中文默认显示小菱形,也进入不了含中文界面的目录、文件
  2. 以前喜欢用gedit,这次认识到vim的作用,在非图形界面依然可以编辑
  3. 备份数据的重要性
本文含有隐藏内容,请 开通VIP 后查看