Ubuntu18的bug导致系统启动后黑屏的问题

article/2025/9/29 3:19:49

这是我在使用Ubuntu18时遇到的问题,文章包含遇到黑屏时的各种原因及解决方法(或链接),如果是您在使用Ubuntu18时遇到此问题,建议直接跳转到解决方法处。

问题背景

使用系统

  • Ubuntu 18.04.1 LTS(可以通过sudo lsb_release -a命令查看当前使用的系统版本)

  • Linux内核版本(使用uname -a或-l 或-r查看):
    这里写图片描述

问题描述

Ubuntu系统很久没有关机,某次重启电脑时,可以看到Ubuntu启动项,并且系统正常启动,但是启动后屏幕始终黑屏,无法进入桌面,视觉上来看,屏幕在深黑和淡黑之间闪烁。
这里写图片描述

问题定位

内核问题?

我在使用期间更新过3次内核版本,并下载过若干软件安装,且因为boot分区容量不足而删除过旧内核。起初我觉得是因为我在解决boot分区空间不足问题时误删了还在使用的旧内核,于是我的第一反映是下载指定的内核版本,下载指定内核的方式见这篇教程。
由于我进不去桌面,所以我在重启后按Ctrl+alt+F1进入了tty,并根据教程下载了内核,但是重启后问题仍然没有解决。

grub启动项问题?

我之前在安装Ubuntu系统时也遇到过grub启动项出错的问题,其解决方式可以参考我的博客Windows7下安装Ubuntu双系统遇到的坑:Ubuntu从安装到卸载到重装 ,或者Grub引导项修复详解。但是我根据提示修复重启后仍然存在此问题。

显卡支持分辨率与Ubuntu新版本内核不兼容?

网上提及另一可能的原因是显示器分辨率的问题。即Ubuntu升级内核之后,可能不再支持某些较旧的显示器分辨率,从而导致黑屏,考虑到我用的是Ubuntu18,而实验室显示器又过于破旧,因此我对这一可能性深以为然…
该问题有两种解决方法,第一种是在recovery模式下修改系统配置,使其支持Nvidia显卡,该解法参考博客安装ubuntu时黑屏三种解决办法 ,第二种是在tty中重新设置自己需要的分辨率,该解法可参考博客ubuntu下如何查看和设置分辨率。
经过一番折腾后,结果当然还是不行啦。

真正原因——bug导致!

请教了实验室的大牛师兄后,师兄给出了他的看法:
1)如果Ubuntu系统内核出了问题,那我是不可能进入Ubuntu启动项的;
2)如果grub启动项出错,同样无法进入系统;
3)进入tty后再重启系统;
4)建议多搜索英文资料。

师兄的意见不禁使我恍然大悟:查找资料前先大致分析一番,便可排除内核和启动项的问题,这样就可以节省大量时间,而不是像我这样盲目搜索,白费功夫。

我在外网上搜索一番后,终于找到了症结所在:Ubuntu内核bug导致gdm3和nvidia驱动冲突,使得gdm3无法正常启动图形界面,而gdm不断尝试启动的后果就是屏幕的闪烁。(我这才想起我之前安装过nvidia-smi安装包,并且该命令在这台电脑上无法使用,这有可能是和gdm3造成冲突的根本原因。)

问题详细描述见Ubuntu 18.04 stuck in boot after starting Gnome Display Manager on Intel Graphics

bug报告见Ubuntu 18.04: gdm3 does not switch to graphics after update

解决方法见GUI does not start,下面详细说明。

解决方法

sudo apt-get remove --purge nvidia-*  # 卸载nvidia相关组件
sudo apt purge gdm gdm3 # 卸载gdm和gdm3
sudo apt install gdm3 ubuntu-desktop    # 重新安装gdm3
systemctl restart gdm       # 重新启动gdm3服务

如此,便可解决该问题。

总结

  • 像师兄学习,遇到问题前先思考下问题出在哪里,至少排除掉不可能的选项,避免盲目搜索;

  • 中文博客、资源互相抄袭,搜索资料时打开不同的网页却经常碰到相同的内容,给查资料带来了极大的困扰,严重影响了搜索效率,要养成查第一手英文资料和阅读英文资料的习惯;

  • 遇到问题要及时记录,避免再犯,多总结,多思考。


http://chatgpt.dhexx.cn/article/TbXhHoCO.shtml

相关文章

Ubuntu16.04开机后黑屏无法进入系统登陆界面

之前在写小论文,接近一个月没有用Ubuntu,结果想要切换到Linux下使用Hadoop的时候,在grub界面选择第一项Ubuntu却迟迟无法进入登陆界面,一直卡在原地,特征为长久黑屏/紫屏无响应,无法按ctrlaltF1进入命令行以…

ubuntu启动失败黑屏解决方案

现象 启动直接进入黑屏,左上角有光标但不闪烁,ctrl+alt+fx也无法进入命令行界面 异常前操作 在有程序安装过程中直接reboot,接着就一直如此 最终解决 尝试了很多网上的方法,包括进入grub后按e改磁盘ro为rw啊,进入recovery模式该grub配置啊等等都无效,后来发现这种操…

Ubuntu 20.04 - 21.10进入桌面后黑屏的解决思路+经验总结

引言 之前用Ubuntu 20.04 时候三天两头喜欢折腾功能,每次一折腾完Linux就喜欢要么这里要么哪里撂挑子,进入系统后黑屏就是其中最大的一个问题。 回想刚开始用Linux的小白时期,第一次遇到进入系统后黑屏的时候,虽然之前就听说过桌…

Ubuntu20.04 启动卡在黑屏的解决方法

最近在VM中新安装了Ubuntu20.04,悲催的是启动后一直卡在黑屏;在坑里爬了几天后,终于出坑; 以下是整理的实际操作步骤,希望若有入坑的尽快出坑; 1、启动虚拟机时,进入Grub画面选择相应内核启动…

ubuntu 开机黑屏 解决方案 之一(filesystem readonly)

起因 : 由于本人有不关机的习惯,最近几次早上到公司工作,发现电脑都处于假死状态,显示屏永远处于屏保画面。只好重新启动,但是启动之后 电脑就黑屏,彻彻底底的黑屏,什么都看不到。 解决方案&…

ubuntu启动时黑屏,无法进入登录界面

方式1 1、重新启动客户机 2、点击屏幕立即长按左shift键或ESC 3、出现grub菜单后选择第二个 4、又出现一个列表继续选择第二个 5、下一个页面选择第一个 6、下一个界面点击OK就可以了,但不能保证下次开机时能不能进入 方式2 在vmware中的ubuntu开机时黑屏&#xf…

Ubuntu开机黑屏原因及解决(recovery Mode)

目录 问题描述 解决方法 步骤一 步骤2 总结 恢复模式 问题描述 Linux版本:Ubuntu 16.04 VMware workstation版本: 15 点击启动虚拟机后,经过长时间的等待 (大概2min,正常只需要十几秒)后,显示黑屏&#xff0c…

ubuntu20.04开机黑屏解决方法

问题:开机选择ubuntu20.04系统后,在应显示系统登录界面时黑屏,仅有光标闪烁。如等待时间较久,可能出现ppm init failed -110的错误信息。 情况描述:出现开机问题以来重装过几次系统,换过不同版本的驱动程序…

Ubuntu Linux开机黑屏的永久解决办法

开机之后,没有图形界面,也无法使用命令窗口界面。 解决办法1 对你的电脑来说,这种办法可能只是暂时的解决。重启之后可能又出现黑屏。如果是这样,可以看解决办法2。 因为此时电脑其实是已经可以联网的,如果你之前已…

安装完ubuntu系统在重启时因黑屏启动不了的解决办法

刚安装完ubuntu20.04系统重启时黑屏启动不了的解决办法 码字不易,希望大家能多多关注微信公众号:雨中算法屋,交流更多ubuntu系统的使用和更多算法知识研讨,共同学习,一起进步,有问题也可以关注公众号加我微…

Java 堆栈分析,堆栈区别。

一、栈 1.存放基本变量类型(会包含基本类型的具体数值) 2.引用对象的变量(会存放引用在堆里面的具体的地址) 二、堆 1.存放new 对象和数组 2。可以被所有线程共享,不会被别的对象引用。 三、图解 视频教程点击跳转

堆栈的定义和区别

在日常工作中,我们时常会说到堆栈。虽然堆栈总是一起说起,但是实际上这是两个不同的概念。 1. 堆栈的简单理解 首先简单来说呢,堆和栈都在RAM中,一般被分配的区域也是相同的一块区域,只是堆从下往上存储,…

堆栈之间的差别

1、栈中的对象可以共享; 堆中的对象不可以共享。 2、栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。 堆中的数据大小和生命周期不需要确定,堆中对象由垃圾回收器负责回收。 3、栈中存一些基本类型…

堆栈与队列的区别

开发工具与关键技术:Visual Studio 2015 堆栈与队列的区别 作者:廖 茂 撰写时间:2019年05月06日在数据结构与算法中,有着堆栈和队列,这两种算法在我们的平时软件开发中是需要用到的,首先我们来看一下堆栈…

堆栈主要区别

【C/C】 一个由C/C编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数名,局部变量的名等。 2、堆区(heap)— 由程序员分配释放, 若程序员不释放&…

堆栈区别java总结_堆栈的区别

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 浅谈堆栈的区别 ? ? ? ? ? ?堆栈在计算机中是两种不同的数据结构:堆是队列优先,先进先出(FIFO);栈是先进后出(LIFO)的; class…

java堆栈区别

转自:http://www.iteye.com/topic/634530 1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制. 2. 栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new …

php 队列和堆栈,堆栈区别

堆和栈的区别: 一、堆栈空间分配区别: 1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈; 2、堆(操作系统): 一般由程序员分配释放&…

什么是堆栈以及堆栈的区别

本文首发于公众号【程序员华仔】 ------------------ 首先说明下,这里讨论的堆和栈,是指程序内存中的“堆区”和“栈区”,并非是数据结构中所说的堆和栈。 要了解程序内存中的堆栈,需要先了解C语言的内存模型。 C语言的内存模型…

php 上传文件漏洞,【文件上传】PHP文件上传漏洞

0x01 文件上传漏洞 文件上传漏洞顾名思义就是用户上传一个可执行的脚本文件,获得了执行服务器端命令的能力。通常,文件上传是getshell最常用、最直接的方式了。但是,文件上传本身是一个正常的业务需求,因此问题在于如何安全的上传…