一次VirtualBox下Ubuntu16.4虚拟机下升级内核导致系统黑屏的经历

问题来源,今天发现Ubuntu虚拟机与物理机不能进行文本的双向拷贝了,百度查一下原因,有个帖子提示要将系统中的软件更新,那么执行了下面的命令

sudo apt-get update
sudo apt-get upgrade
sudo reboot

然后就悲剧了,启动后发现系统闪了几次,然后就没有了结果,一直黑屏,然后尝试用之前保存的客户端登录了一下,可以登录,然后就开始百度。
下面描述一下过程

  1. 网上分析是由于更新内核后显卡驱动未能匹配导致的(看情形也是这个原因导致的,可以命令行登录,但是无法显示GUI)
  2. 那么先去查看一下系统现有的内核,卸载掉旧的内核,我的旧内核为4.13.0-45-generic
vi  /etc/default/grub  
打开后将下面的一行注释掉。这样开机后就可能看到grub菜单。
#GRUB_HIDDEN_TIMEOUT=0
运行 : sudo grub-update 命令 刷新grub菜单。
重新启动后,选择旧版内核启动。
然后通过 : dpkg -l | grep  linux-image  命令查看已经安装的内核名称
运行: sudo apt-get purge linux-image-3.2.0-126-generic   卸载新的内内核 PS新的内核参照各自情况。
再次运行   sudo grub-update   刷新引导菜单。 

3.删除之后重启发现终于不在一直黑着了,弹出一个"The system is running in low-graphics "的框,这步骤开始不要试图操作什么能进入到登录状态,接着往向下看(在这折腾好久)

按Ctrl+F1 显示出命令行
 apt-get install zhcon 安装字符集
 zhcon --utf8 指定字符集
执行下面的操作
sudo add-apt-repository ppa:ubuntu-x-swat/ppa
sudo apt-get update
sudo apt-get upgrade
上面的执行完之后,按照下面我从网上找来的解决办法第二个执行,我也不知道为什么这样操作

To clarify more on Musher's answer, it is a problem with Ubuntu's default display, as lightdm is being obsolete and unsupported. To fix this press Ctrl  + Alt  + F1  to open a temporary display-lacking terminal. If that doesn't work use Ctrl  + Alt  + F3  instead. Once there, there are a two options to solve lightdm.
1: Use GDM Instead RECCOMENDED
 sudo apt-get install gdm && sudo dpkg-reconfigure gdm
Then select GDM and hit Enter.
2: Repair LightDm NOT RECCOMENDED
Then select lightdm and hit Enter.
 sudo apt-get purge lightdm && sudo apt-get clean
 sudo apt-get install lightdm && sudo dpkg-reconfigure lightdm
 sudo apt-get purge ubuntu-desktop && sudo apt-get clean
 sudo apt-get install ubuntu-desktop && sudo shutdown now -r

4.上面的执行完之后再重启,这时应该可以看到久违的登录界面了,但是不管怎样输入密码,也是进不去,没关系看下面

如果登录不进去并且提示错误报告,那么采用命令行模式执行
vim /home/levin/.xsession-errors 查看最新的会话错误日志
=================================================
openConnection: connect: 没有那个文件或目录
cannot connect to brltty at :0
upstart: gnome-session (Unity) main 进程 (3692)以状态 1 结束
upstart: unity-settings-daemon main 进程 (3682)已经被TERM 信号杀死
upstart: logrotate main 进程 (3531)已经被TERM 信号杀死
upstart: bamfdaemon main 进程 (3611)已经被TERM 信号杀死
upstart: hud main 进程 (3680)已经被TERM 信号杀死
upstart: 从告知的D-Bus总线断开
upstart: unity-panel-service main 进程 (3702)已经被TERM 信号杀死
=================================================
如果日志中与上面报错相似,继续向下执行卸载系统中的驱动
sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove #特别重要
sudo apt-get install -f #特别重要
sudo reboot

5.我执行完上面的命令之后,就可以登录到系统了,折腾好几个小时,下次一定要记住备份虚拟机,写这篇帖子也给跟我发生相似错误的同学一点借鉴,毕竟谁也不想用了好久的虚拟机毁于一旦。

下面是重要步骤帖子,中间查过好多解决办法,就这几个保留下来了

https://www.aliyun.com/jiaocheng/127932.html
https://blog.csdn.net/wyx100/article/details/51925821
https://askubuntu.com/questions/482441/the-system-is-running-in-low-graphics-mode-ubuntu-14-04
https://www.jianshu.com/p/d45434f28ca0

你可能感兴趣的:(解决问题)