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

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

引言

之前用Ubuntu 20.04 时候三天两头喜欢折腾功能,每次一折腾完Linux就喜欢要么这里要么哪里撂挑子,进入系统后黑屏就是其中最大的一个问题。

回想刚开始用Linux的小白时期,第一次遇到进入系统后黑屏的时候,虽然之前就听说过桌面环境极度不稳定,但是还是慌得不行,然后尝试过无数网上的解决方案后依旧没能修复,更是吓得直接重装了系统。后来小心翼翼地用,但有时候还是因为各种各样的原因会黑屏进入不了桌面,而且积攒地数据越来越多,不能每次都重装系统,就硬着头皮一种一种方法地试,神农尝百草了属于是。

不过也没算白忙活,总结了一大堆经验,基本上找到了每次黑屏都能恢复的办法。最近升级到21.10,更新了英伟达495驱动,折腾了一下Chrome和cuda,gdm3竟然又给我掉链子黑屏了,不过凭借以往的经验,没慌,安装lightdm,进入X11 Server,修改参数启用Wayland,重启+后续配置,轻松解决,突然觉得我这些瞎折腾的经验说不定可以分享给别人,所以在这里记录一下。

 (https://www.google.com/search?q=gnome+ubuntu&tbm=isch#imgrc=izrNUpilT1yQkM)

黑屏症状/可能原因 + 对应解决方式

首先总结一下我个人瞎折腾导致黑屏的原因,毕竟解决方法也要对症下药。

1> X11 Server里桌面突然冻结,各种按键效果全无,强制关机后重启进系统黑屏

这种问题如果不是经常而且反复出现的话其实还挺好解决的,具体解决思路就是用Lightdm替换掉gdm3,lightdm非常轻快,我平常用gdm3进入GNOME 40要大概四五,lightdm大概只需要一半,一两秒就可以加载完成全部GNOME Extension。

以下是具体步骤,前提是保证网络通畅,后续要用apt下载安装包:

#首先Ctrl + Alt + F2/3/4/5/6 随便,进入一个tty窗口(teletypewriter,其实就是个非GUI终端)
#然后,输入你的用户名,然后输入密码,保证之后可以继续执行命令行sudo apt install lightdm    #安装好备用的 Display Managersudo service gdm3 stop    #强制停止当前的gdm3进程,如果一次没成功就重新返回tyy,再次执行该命令sudo dpkg-reconfigure lightdm     # 将默认的 Display Manager 设置成lightdmsudo service lightdm start    # 立马启用新的显示管理器,或者干脆重启更彻底sudo reboot

这种方法的遗留问题就是,锁屏比较麻烦(Super + L 失效);而且我的机器用lightdm进入桌面后,外设全部需要重新拔插才能重新使用(蓝牙设备除外)。

所以我一般成功进入桌面之后把需要移除的隐患搞定,就立马切换回到gdm3了。虽然gdm3最为GNOME原生的显示管理器容易崩,但是毕竟功能性还是不含糊的,lightdm和sddm虽然大概率能挽救你的GUI,但是功能性上多少差点意思。

这里把sddm的命令行也弄上来,如果lightdm不管用的话(我当时就是连lightdm都进不去),可以试试sddm(不过会给你安装一大堆xde的附带软件)。

sudo apt-add-repository ppa:blue-shell/sddm sudo apt-get update && sudo apt-get install sddmsudo dpkg-reconfigure sddm

2> 修改显示管理器(Display Manager)后桌面仍然不定期冻结,强制关机后进系统黑屏

这种情况其实挺罕见的,因为我只找出一种导致XServer频繁卡死的原因,而且解决之后几乎再没有复现过,其实就是Chrome的显卡硬件加速导致的,启用Wayland的话几乎没有这个问题。

解决办法就是用1>里的方法暂时进入系统桌面后,Chrome右上角Setting/设置 - > 设置页面左栏选择System/系统:

 

 如果下面这项“使用硬件加速”开着的话,关掉,重启系统。

之后如果还是实在需要启用Chrome的GPU加速,可以自己试着再重新开启。确保系统桌面稳定的情况下也不是必须关的,能用就行。

3> 使用Lightdm或者sddm后,系统正常启动下仍然黑屏,无法通过xserver进入桌面

我在桌面冻结+强制关机导致的黑屏无法进入桌面环境的情况下,能正常启用Xserver的概率几乎是不到10%,但是能正常启用Wayland进入桌面的概率就高多了,大概有70-80%。反正每次xserver挂了我就去用lightdm/sddm+Wayland进入桌面

这里就把Ubuntu 20.04-21.10 启用Wayland的方法放一下:

来源:Ubuntu – Wayland in Ubuntu 20.04 (IntelGPU) – iTecTechttps://itectec.com/ubuntu/ubuntu-wayland-in-ubuntu-20-04-intelgpu/

  1. Execute sudo apt install gnome-session-wayland (执行该命令)
  2. Open /etc/gdm3/custom.conf and ensure WaylandEnable=false is commented. (用nano或者其他打开该文件,把 WaylandEnable=false 这句标记成评论,保存退出)
  3. Open /usr/lib/udev/rules.d/61-gdm.rules and comment all lines. (把该文件内所有行都标记成评论,就是句首加个#,但我个人经验是只把“DRIVER=="nvidia", RUN”那一行标记成评论,你们可以试试)
  4. Execute sudo systemctl restart gdm3/ sudo service gdm3 restart (重启下桌面服务)
  5. Click on the cogwheel and select GNOME or Ubuntu on Wayland. (看看右下角有小齿轮的话,打开,选择Wayland登录)
  6. Execute echo $XDG_SESSION_TYPE in order to confirm you are running Wayland (output should be "wayland"). (执行echo命令,查看当前桌面运行的底层协议)

21.10 启用Wayland有点问题,我用gdm3右下角总是无法显示小齿轮,也就无法选择Wayland进入系统。但是lightdm可以选择Wayland。这里先把搜来的启用21.10Wayland的命令行贴一下。(按理说21.10都是默认启用Wayland的,一般直接安装好lightdm就可以选择Wayland了)

来源:How do I enable Wayland on Ubuntu 21.10 (NVIDIA)? - Ask Ubuntuhttps://askubuntu.com/questions/1369250/how-do-i-enable-wayland-on-ubuntu-21-10-nvidia

1. 进入 /etc/default/grub 文件,把以下这行加到grub文件内(本来就有,另起一行加到下面就行)

GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"

或者把原来那行加一个argument “nvidia-drm.modeset=1” 也行

GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau nvidia-drm.modeset=1"

2. 如果重启还是在lightdm没有Wayland选项的话,就试着先安装一下包

sudo apt install libnvidia-egl-wayland1

以上大概就是我个人应对黑屏的三种办法,总体思路就是:更换display manager + 关闭浏览器GPU硬件加速 + 启用Wayland。

这三个的优先级不是死的,可以灵活调整,另外也不是必须更换dm + 关闭浏览器GPU加速 + 启用wayland的,只要桌面稳定不会定期卡死就可以自行按需求调整,比如我目前的方案就是: gdm3 + 开启浏览器GPU加速 + 启用wayland。


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

相关文章

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最常用、最直接的方式了。但是,文件上传本身是一个正常的业务需求,因此问题在于如何安全的上传…

文件上传之图片上传题目

[A]文件上传之图片上传题目 Give me your photo PLZ 提示 我好想看一些好康的图片呜呜 题目 .htaccess是Apache的又一特色。一般来说,配置文件的作用范围都是全局的,但Apache提供了一种很方便的、可作用于当前目录及其子目录的配置文件——.htaccess&…

mysql文件上传漏洞_[转载]文件上传漏洞

文件上传漏洞 实验环境: Windows 7 X64 Phpstudy 2018 PHP 5.4.45 Apache 2.4.23 靶机项目地址:https://github.com/c0ny1/upload-labs Pass01 — JS限制 开启burp抓包,尝试上传eval.php,点击上传后页面直接提示该文件不允许上传,…

文件上传upload-lads

文件上传upload-lads 第一关 前端绕过(js) 本关是对文件名的过滤(在客户端进行) 即若文件名中存在php等后缀则直接过滤(弹窗) 上传一个webshell到服务器 但只容许上传".jpg|.png|.gif"; ".jpg|.png|.gif&quo…