我最近接受了这个提示,从 16.04 LTS 升级到了 18.04 LTS,但令人不快的是,没有出现登录屏幕,甚至 ctrl-alt F2 等其他组合键也不起作用。幸运的是,我能够从其他地方通过 ssh 登录。
欢迎使用 Ubuntu 18.04.1 LTS(GNU/Linux 4.15.0-33-generic x86_64)
查看 syslog,我发现 gdm3/wayland 多次尝试启动 org.freedesktop.systemd1,但会立即失败(退出 1)。类似这样的消息会在 syslog 中反复重复。
8 月 30 日 09:13:38 pabst /usr/lib/gdm3/gdm-wayland-session[1442]: dbus-daemon[1444]: [session uid=127 pid=1444] 激活由 ':1.0' 请求的服务名称='org.freedesktop.systemd1' (uid=127 pid=1442 comm="/usr/lib/gdm3/gdm-wayland-session gnome-session --" label="unconfined") 8 月 30 日 09:13:38 pabst /usr/lib/gdm3/gdm-wayland-session[1442]: dbus-daemon[1444]: [session uid=127 pid=1444] 激活服务“org.freedesktop.systemd1”失败:进程 org.freedesktop.systemd1 以状态 1 退出 8 月 30 日 09:13:38 pabst /usr/lib/gdm3/gdm-wayland-session[1442]: 无法使用显示管理器注册显示器 8 月 30 日 09:13:38 pabst gdm3:子进程 -1442 已经死亡。 8 月 30 日 09:13:38 pabst gdm3:子进程 1439 已经死亡。 8 月 30 日 09:13:38 pabst gdm3:无法终止会话工作进程
看到其他地方的建议后,我尝试使用“ubuntu-drivers autoinstall”安装了推荐的 nvidia-drivers-390。但这没有帮助。
我也尝试过在配置文件中禁用 Wayland,但是也没有用。
我清除了 Nvidia 驱动程序并尝试使用 nouveau。仍然没有成功。
然后我安装了 nvidia-340,它至少可以正确设置屏幕分辨率(如使用“xinit”所示,它会调出一个没有显示管理器的 xterm)。
然后我安装了 xdm,并将“xdm”设为默认欢迎程序(它是安装 xdm 时配置的一部分)。
现在出现了一个登录屏幕(并且 ctrl-alt F2 和朋友可以工作)但如果我尝试登录,它会在登录后等待一会儿然后再回到登录屏幕。
.xsession-errors 显示没有严重问题。
但是 syslog 显示 gnome-session-binary 正在尝试启动 org.freedesktop.systemd1,但它(当然)再次失败,导致所需的 Gnome Shell.desktop 死机,进而导致整个过程失败(经过多次徒劳的尝试)。
故事的结局很悲伤:
8 月 30 日 11:40:12 pabst dbus-daemon[3966]: [session uid=820 pid=3964] 激活服务 'org.freedesktop.systemd1' 失败: 进程 org.freedesktop.systemd1 以状态 1 退出 8 月 30 日 11:40:12 pabst gnome-keyring-secrets.desktop[4042]: GNOME_KEYRING_CONTROL=/home/john/.cache/keyring-DFQHOZ 8 月 30 日 11:40:12 pabst gnome-keyring-secrets.desktop[4042]: SSH_AUTH_SOCK=/home/john/.cache/keyring-DFQHOZ/ssh 8 月 30 日 11:40:12 pabst org.gnome.Shell.desktop[4057]: 窗口管理器警告:不支持的会话类型 8 月 30 日 11:40:12 pabst gnome-session[3926]: gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1 8 月 30 日 11:40:12 pabst gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1 8 月 30 日 11:40:13 pabst org.gnome.Shell.desktop[4060]: 窗口管理器警告:不支持的会话类型 8 月 30 日 11:40:13 pabst gnome-session[3926]: gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1 8 月 30 日 11:40:13 pabst gnome-session[3926]: gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”重生速度过快 8 月 30 日 11:40:13 pabst gnome-session[3926]: gnome-session-binary[3926]: 严重:我们失败了,但失败鲸鱼已经死了。抱歉…… 8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 所需组件 org.gnome.Shell.desktop 发生不可恢复的故障 8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1 8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”重生速度过快 8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 严重:我们失败了,但失败鲸鱼已经死了。抱歉……
那么:(1) org.freedesktop.systemd1 可以修复吗?有什么方法可以查看它失败的原因吗?或者它是否无法修复 (2) 有没有办法让 gnome 使用 org.freedesktop.systemd1 以外的其他东西?或者 (3) 是否有可以在 Ubuntu bionic 上使用的不使用任何 gnome 内容的显示管理器?
答案1
答案2
我遇到了类似的问题。 syslog 中的这个错误最终让我找到了解决方案:
(EE) systemd-logind: failed to get session: PID 10023 does not belong to any known session
由于该错误,gdm-x-session 在 gdm3 启动过程中进一步失败并中止:
/usr/lib/gdm3/gdm-x-session[2849]: dbus-daemon[3479]: [session uid=136 pid=3479] Activating service name='org.freedesktop.systemd1' requested by ':1.0' (uid=136 pid=2849 comm="/usr/lib/gdm3/gdm-x-session gnome-session --autost" label="unconfined")
/usr/lib/gdm3/gdm-x-session[2849]: dbus-daemon[3479]: [session uid=136 pid=3479] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited with status 1
gdm-x-session: could not fetch environment: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
gdm3: GdmManager: trying to register new display
gdm3: GdmManager: Error while retrieving session id for sender: Error getting session id from systemd: No data available
gdm-x-session: Could not register display: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: No display available
gdm3 服务只是不断尝试启动 gdm-x-session,导致系统日志泛滥。我通过在 /etc/pam.d/gdm-launch-environment 中添加此行来修复此问题:
session optional pam_systemd.so
我认为真正的问题是 pam-auth-update 在某些软件包安装过程中运行,它会将 pam_systemd 添加到 /etc/pam.d/common-session。但是,我手动编辑了至少一个 /etc/pam.d/common-* 文件,在这种情况下,如果未指定“--force”,pam-auth-update 会中止。
答案3
我遇到了类似的问题,从 16.04 升级到 18.04 导致屏幕空白。
查找问题的关键是检查文件 /var/log/syslog 中的错误
gnome-session[2851]: X Error of failed request: BadValue (integer parameter out of range for operation)
gnome-session[2851]: Major opcode of failed request: 154 (GLX)
gnome-session[2851]: Minor opcode of failed request: 3 (X_GLXCreateContext)
gnome-session[2851]: Value in failed request: 0x0
gnome-session[2851]: Serial number of failed request: 19
gnome-session[2851]: Current serial number in output stream: 20
gnome-session[2851]: gnome-session-check-accelerated: GL Helper exited with code 256
gnome-session-c[2979]: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-4UdC671MtT: Connection refused
gnome-session-c[2979]: eglGetDisplay() failed
gnome-session[2851]: gnome-session-check-accelerated: GLES Helper exited with code 256
gnome-session-c[2980]: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-4UdC671MtT: Connection refused
gnome-session[2851]: X Error of failed request: BadValue (integer parameter out of range for operation)
gnome-session[2851]: Major opcode of failed request: 154 (GLX)
gnome-session[2851]: Minor opcode of failed request: 3 (X_GLXCreateContext)
gnome-session[2851]: Value in failed request: 0x0
gnome-session[2851]: Serial number of failed request: 19
gnome-session[2851]: Current serial number in output stream: 20
gnome-session[2851]: gnome-session-check-accelerated: GL Helper exited with code 256
在下面链接的概述中找到了解决方案,即删除 nvidia 驱动程序。
我很惊讶这是解决方案,因为我的系统运行在英特尔集成 GPU 上。然而,在事情发生之前很难知道事情会如何发展。
https://www.osso.nl/blog/ubuntu-bionic-crashing-gdm-eglgetdisplay/
首先,我将显示管理器更改为 lightdm。
$ sudo apt-get install lightdm
$ sudo dpkg-reconfigure lightdm
选择 lightdm 作为默认桌面管理器
然后登录屏幕出现了。然而,我进入了著名的 ubuntu 登录循环,成功登录系统后,再次进入相同的欢迎屏幕,而不是导航到桌面。
$ dpkg -l | grep nvidia
$ sudo apt-get remove --purge nvidia-***
瞧,系统又像以前一样启动了。
我还遇到了 gnome 主题的问题,导致菜单和窗口标题栏消失。我不得不安装 gnome“调整”程序来选择正确的主题,然后一切又恢复了。