一次Linux图形化界面恢复

news/2024/11/20 9:31:13/

一次Linux 图形化界面恢复

  • 一次Linux 图形化界面恢复
    • 出现问题场景
    • 问题排查

一次Linux 图形化界面恢复

出现问题场景

使用xmanager远程连接虚机的CentOS7系统图形界面出现已拒绝x11转移申请问题,在折腾X11过程中,安装与卸载的过程中不小心把xorg-x11-xauth使用yum卸了又安装的过程中,发现可视化界面的gui没了,重启也是doc界面(cmd),然后就开始了可视化界面恢复的过程。

问题排查

首先想到要想恢复图形界面,那么可以换个思路,要么排查问题出现的原因,要么按照从无可视化到安装图形化界面的角度出发,首先找到了可视化界面的启动方式startx命令。

  1. 安装startx
    执行后发现没有这个命令,然后找到了安装命令yum install xorg-x11-xinit,安装后就有了startx的命令,但是执行后又不能正常启动,看了日志发现很多设备没有正常启动。

  2. gnome重装:
    基于startx启动失败,找到了一篇文章CentOS 7输入startx无法启动图形化界面这里将内容摘抄过来,以防原文章链接失效:

【问题背景】前两天在学习linux虚拟化的时候, 发现虚拟机磁盘空间不足, 由于当初分区的时候不是用lvm来分区的, 导致无法扩容, 所以只能新建了一台虚拟机来学习.然而在新建完成后, 按照之前老师教的一系列优化手段, 将这台手段优化到我认为最优的条件下, 重启了一下系统, 发现登录界面自动回到了字符界面. 这可把我给郁闷坏了, 好端端的怎么就变成了字符界面了呢? 于是输入startx尝试进入图形界面, 然而系统却提示: 【xauth: file /root/.serverauth.9146 does not exist ....】具体如下图:然后就去百度查资料, 有说调整系统默认运行级别的, 也有说删除其他乱七八糟文件的. 于是我就查了系统的默认运行级别, 发现是图形化界面(graphical.tatget)没错, 但是为什么启动不了呢?没办法, 只能重装系统再试试, 一步步从之前的优化手段入手.1) 先是更新yum源, 然后更新系统软件到最新, 重启; 能进入图形化界面, 排除.2) 然后是ssh服务, 禁止root登录, 修改端口等, 重启; 也能进入图形化界面, 排除.3) 接着来到了禁用系统不必要的自启动服务, 这时候突然心有所感, 系统的自启动服务控制着种种功能, 很有可能是被我关闭了某些启动图形化界面必要的服务, 导致了图形化界面起不来.有了目标猜想之后, 就开始验证了, 我先是以最小化的形式重装了一个新的CentOS 7-1810的系统, 然后把所有自启动服务给记录下来, 存到一个文件里. 接着就把所有的自启动服务给关了.再然后就用命令安装了图形化界面:yum groupinstall -y "GNOME Desktop"这时再检查系统自启动服务, 发现果然多了一大堆自启动服务, 马上又把这些自启动服务记录到一个新文件里, 对比了一下旧文件, 有3个重复的服务项, 排除两个无法关闭的服务: 【autovt@.service、getty@.service】外, 剩下一个就不管了.直接将这个新记录的文件传输到无法启动图形界面的服务器, 读取并启动里面的服务后, 发现图形化界面能正常启动了, 折腾了两天, 总算把问题解决了.心理倍感兴奋, 不过想到网上还有很多志同道合的同行业的朋友也在为这个问题而烦恼着, 于是写了这篇博客, 希望能给他们带来一些灵感和指引, 下面是我记录的启动图形化界面需要的服务, 里面包含了不仅仅包含了图形化界面启动必须的服务, 还包含了图形化界面一些管理工具必须的服务, 比如图形界面中文显示等一些必须的服务. 具体请看下文:abrt-ccpp.service
abrt-oops.service
abrt-vmcore.service
abrt-xorg.service
abrtd.service
accounts-daemon.service
atd.service
auditd.service
avahi-daemon.service
bluetooth.service
cups.service
dbus-org.bluez.service
dbus-org.freedesktop.Avahi.service
dbus-org.freedesktop.ModemManager1.service
display-manager.service
dmraid-activation.service
gdm.service
initial-setup-reconfiguration.service
iscsi.service
ksm.service
ksmtuned.service
libstoragemgmt.service
libvirtd.service
mdmonitor.service
ModemManager.service
multipathd.service
netcf-transaction.service
qemu-guest-agent.service
rngd.service
rpcbind.service
rtkit-daemon.service
smartd.service
sysstat.service
udisks2.service
vdo.service希望能帮助到各位!!!-------------------------20200424 更新--------------------------------
【最终解决方案】
1、重新安装桌面环境软件包组yum groupinstall -y "GNOME Desktop"
2、使用startx测试,确认桌面环境能正常启动startx
3、测试通过后,设置开机启动默认模式:由字符界面改为图形界面systemctl set-default graphical.target
4、将startx命令添加到开启自启动执行文件 /etc/rc.d/rc.local 中,并为该文件添加执行权限echo "/bin/startx" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
5、最后,重启系统验证结果reboot

看了评论发现有人说更新gdm.service后不是自启,会导致图形化界面不能正常进去,然后执行了systemctl status gdm.service后,提示并没有这个服务,立马去gui正常的系统上执行systemctl status gdm.service发现gdm服务是正常执行,这里就觉得是这个问题,然后重新安装GNOME,首先卸载原来的安装包yum groupremove -y "GNOME Desktop",卸载完成后再安装yum groupinstall -y "GNOME Desktop",首先查看gdm服务状态,是正常运行中,然后后执行startx,图形化界面正常启动!!!

总结:(不作就不会死…)
出现问题的原因是卸载xorg-x11-xauth又重新安装,导致一些依赖丢失,以至于图形化界面不能正常进入,不过最终问题还是解决了。


http://www.ppmy.cn/news/1044200.html

相关文章

韦东山-电子量产工具项目:页面系统

代码结构 所有代码都已通过测试跑通,其中代码结构如下: 一、include文件夹 1.1 common.h #ifndef _COMMON_H #define _COMMON_Htypedef struct Region {int iLeftUpX; //区域左上方的坐标int iLeftUpY; //区域左下方的坐标int iWidth; //区域宽度…

STM32 F103C8T6学习笔记9:0.96寸单色OLED显示屏—自由取模显示—显示汉字与图片

今日学习0.96寸单色OLED显示屏的自由取模显示: 宋体汉字比较复杂,常用字符可以直接复制存下来,毕竟只有那么几十个字母字符,但汉字实在太多了,基本不会全部放在单片机里存着,一般用到多少个字就取几个字的模&#xff…

线程的组织与控制

线程的组织与控制 线程控制块线程的创建线程的终止 线程控制块 与进程类似,系统也为每个线程配置一个线程控制块TCB,用于记录控制和管理线程的信息。线程控制块通常包括: 1: 线程标识符2:一组寄存器,包括程序计数器、…

什么是单例模式

什么是单例模式 文章目录 什么是单例模式1. 单例(单个的实例)2. 单例模式应用实例3. 饿汉式 VS 懒汉式 1. 单例(单个的实例) 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一…

ip2region(1):java通过Ip2region实现IP定位

1 Ip2region简介 Ip2region是一个开源工具库,是一种用于IP地址定位的工具。 它是基于B树数据结构的数据库,可用于将IP地址转换为国家、省、市、区县等信息。 使用Ip2region工具,您可以轻松地查找某个IP地址所在的区域信息,从而帮助您进行定位…

Shell编程学习之if分支语句的应用

Shell编程中的if分支语句:伪代码表示:注意符号和表达式之间的空格; if [ 表达式1 ] then分支1 elif [ 表达式2 ] then分支2 elif [ 表达式3 ] then分支3 else其它 fi按整型的方式,if分支语句比较字符串的大小:等于&am…

jdk 1.8新特性 01内部类和lambda

01.内部类: 1、成员内部类 内部类与成员外部类的关系 a.成员内部类的创建需要依赖于外部类对象-(成员方法必须通过对象调用),在没有外部类实例之前无法创建成员内部类对象 b.内部类与外部类相对独立,不是is a 的关系…

0基础学习VR全景平台篇 第87篇:智慧眼-公告有什么作用?

一、功能说明 公告,即政府、团体对有关事件或者行动发布的通告。公告内容由管理员在后台添加,智慧眼成员在场景中添加热点时可以选择引用此公告,引用后会在热点详情页中展示。 二、后台编辑界面 点击【新增】,填写公告的标题和…