• 笔记本Kali系统主屏幕损坏后利用屏幕2启动失败修复


    笔记本搭建Kali系统,但是屏幕1彻底坏了,无法进入系统,尝试使用屏幕2进入

    报错lightdm.service启动失败

    启动顺序问题ctrl + alt + f2进入命令行页面,通过tty输入帐号密码进入系统

    排查lightdm服务问题

    systemctl status lightdm 
    lightdm --test-mode --debug
    
    • 1
    • 2

    查看控制台日志,查找error报错信息,看到错误

    ...
    [+0.02s] WARNING: Error reading existing Xauthority: Failed to open file ?/run/lightdm/root/:0?: Permission denied
    [+0.02s] WARNING: XServer 0: Failed to write authority: Failed to open X authority /run/lightdm/root/:0: Permission denied
    ...
    
    • 1
    • 2
    • 3
    • 4

    这一步一度以为是文件夹找不到或者文件权限问题。调试日志也会在/var/log/xorg.0.log文件中生成错误信息,根据关键字google大法是加载顺序问题,修改lightdm.conf文件

    vi /etc/lightdm/lightdm.conf
    
    [LightDM]
    logind-check-graphic=true
    
    • 1
    • 2
    • 3
    • 4

    使用reboot重启,不显示报错信息,但是黑屏,只有一个输入符闪动,重新进入shell排查。

    排查xfce问题

    这次在shell中启动startxfce4查看错误信息,可以发现是查找screen出现问题,报错核心信息no screens found,因为多屏幕不知道该使用哪个屏幕。

    Screen(s) found, but none have a usable configuration
    
    • 1

    使用export DISPLAY=:1,通过启动startxfce4充分暴露问题,开始仍然报错找不到屏幕,然后查找cat /etc/X11/default-display-manager,发现display的管理还是回归到lightdm.conf,继续排查[LightDM]模块,对一些参数开启

    [LightDM]
    #start-default-seat=true
    #greeter-user=lightdm
    minimum-display-number=1
    minimum-vt=7
    #lock-memory=true
    #user-authority-in-system-dir=false
    #guest-account-script=guest-account
    logind-check-graphical=true
    log-directory=/var/log/lightdm
    run-directory=/var/run/lightdm
    cache-directory=/var/cache/lightdm
    sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
    #remote-sessions-directory=/usr/share/lightdm/remote-sessions
    #greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
    backup-logs=true
    dbus-service=true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    注意 这里的参数minimum-display-number=1就是控制屏幕顺序,主屏幕顺序是0。
    重启startxfce4进入黑屏,但是依然无法正常启动,使用ctrl + alt + f1退出程序,出现不一样的错误,说明修改配置生效,继续排查,看到网上有人说需要修改xorg.conf,find定位只有/usr/share.../doc下存在,网上有一种方案重新生成配置文件,这种很合理,因为换了屏幕,很有可能原来的配置文件失效

    Xorg -configure
    dpkg --configure -a
    
    • 1
    • 2

    这一步会生成/root/xorg.conf.new文件,这一步就很清晰了,查看该文件发现Screen1 Screen2的相关配置,很有可能是读取这里的配置,直接删除Screen1相关行内容,复制到/etc/X11/目录

    cp xorg.conf.new /etc/X11/xorg.conf
    
    • 1

    xorg.conf可以参考如下(默认生成的大部分不需要修改):

    Section "ServerLayout"
            Identifier     "X.org Configured"
            Screen      1  "Screen1"
            InputDevice    "Mouse0" "CorePointer"
            InputDevice    "Keyboard0" "CoreKeyboard"
    EndSection
    ...
    Section "Screen"
            Identifier "Screen1"
            Device     "Card1"
            Monitor    "Monitor1"
            SubSection "Display"
                    Viewport   0 0
                    Depth     1
            EndSubSection
            SubSection "Display"
                    Viewport   0 0
                    Depth     4
            EndSubSection
            SubSection "Display"
                    Viewport   0 0
                    Depth     8
            EndSubSection
            SubSection "Display"
                    Viewport   0 0
                    Depth     15
            EndSubSection
            SubSection "Display"
                    Viewport   0 0
                    Depth     16
            EndSubSection
            SubSection "Display"
                    Viewport   0 0
                    Depth     24
            EndSubSection
    EndSection
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    重启startxfce4,完美进入系统。
    直接reboot,系统恢复正常使用
    success

  • 相关阅读:
    LeetCode-201. 数字范围按位与-Java-medium
    iPhone 14,要来了
    WPF/C#:异常处理
    TCP 序列号和确认号是如何变化的?
    C++实例 调用Tesseract OCR的API
    Ubuntu1604创建SVN服务器
    YOLOv7训练自己的数据集
    计算机诞生历史小故事
    2022/7/1
    消息中间件-RabbitMQ介绍
  • 原文地址:https://blog.csdn.net/lmpwang/article/details/132614335