ubuntu无法进入桌面的一种情况

问题描述

系统环境:
image

  • 无法进入桌面
  • 可以进入锁屏
  • 输入密码后黑屏,并返回锁屏
  • tty能进入startx
  • startx中部分软件无法打开
    无法进入桌面最直接的错误,非常严重不可原谅。用户登陆输入密码,黑屏,然后回到用户登陆。

误导我的一个报错:

image
起初我认为是xdroid-server出毛病了,但是后来发现它无法启动,于是尝试使用startx来寻找错误。

tty如何进入

在锁屏页面使用Ctrl+Alt+F4,即可进入tty
进入后输入用户名和用户密码。

进入startx进行debug

登陆好后使用startx进入。
后续操作使用tty执行startx展现。

大量的.desktop无法打开

执行code竟然出现Node.js的报错

image

打开code可以看到顶部的解释器选择,如果直接指定解释器,发现能够打开VSCode,说明不是可执行文件的错误。

image

指定解释器:

image

如果去掉code中的指定解释器行:

image

成功打开:

image

发现了Node.js

观察到VScode的解释器是/usr/bin/env sh

为什么不是/bin/sh或者/usr/bin/sh呢?

于是我尝试运行了/usr/bin/env发现!:

image

我天呢?这是什么道理?

问题解决

综上所述,我认为是/bin/env和/usr/bin/env被NodeJs覆写了,于是我决定删除/bin/env,然后重装coreutils问题解决:

1
2
sudo rm /bin/env
sudo apt reinstall coreutils

另外因为安装了gnome-tweaks和原来的某些东西有冲突,卸载后恢复原状:

1
2
sudo apt remove gnome-tweaks 
reboot

总结

这是一个非常奇怪的问题,因为我的/bin/envNode.js覆写了,导致大量依赖于/bin/env寻找环境的批处理无法运行,这才导致了桌面无法打开。
debug期间我干了:

重装显卡驱动

卸载nodejs

删除所有与nodejs有关的文件

重装gnome

切换内核

修改用户权限

修改profile、~/.bashrc、/etc/environment……

文章目录
  1. 1. 问题描述
  2. 2. 误导我的一个报错:
  3. 3. tty如何进入
  4. 4. 进入startx进行debug
  5. 5. 大量的.desktop无法打开
  6. 6. 发现了Node.js
  7. 7. 问题解决
  8. 8. 总结
    1. 8.1. 重装显卡驱动
    2. 8.2. 卸载nodejs
    3. 8.3. 删除所有与nodejs有关的文件
    4. 8.4. 重装gnome
    5. 8.5. 切换内核
    6. 8.6. 修改用户权限
    7. 8.7. 修改profile、~/.bashrc、/etc/environment……
|