已达到图形目标,但仍需输入 startx 来启动 gui

已达到图形目标,但仍需输入 startx 来启动 gui

我用Manjaro Linux更新后,当我启动时,journalctl说系统达到了图形目标,但它启动了tty1,我需要输入startx才能启动凯德。然后我在弹出窗口中再次输入密码kdewallet,以连接到 wifi。

之后,一切正常。在曼扎罗,GUI 开始于tty1,而在其他发行版中,它通常开始于tty7

graphical.target我尝试使用命令将默认设置设置为systemctl,并通过将 quit 参数替换为 来编辑 grub 菜单systemd.unit=graphical.target,但它仍然在会话中启动tty1

我还尝试在 grub 菜单中添加自定义条目,但这也没有帮助。

要将其添加到 grub 菜单:

  • 将第一个 grub 菜单项复制到/boot/grub/grub.cfg文件中/etc/grub.d/40_custom

  • 用以下命令替换 quit 命令systemd.unit=graphical.target

  • 更改menuentry标题并运行sudo update-grub

关于如何让系统再次正常启动的任何想法。我在中提出了这个问题曼扎罗一周前论坛,但还没有回复。

我想重新安装会更快,但我很好奇为什么会发生这种情况,以及如何纠正它。


感谢您的提示。我发现ssdm已安装但未激活,它被屏蔽了。

当我尝试重新安装它时,出现以下错误:

    sudo pacman -S sddm

    warning: sddm-0.19.0-2.2 is up to date -- reinstalling
    ...
    error: sddm: signature from "Philip Müller (Called Little)<[email protected]>" is invalid
    :: File /var/cache/pacman/pkg/sddm-0.19.0-2.2-x86_64.pkg.tar.zst is corrupted (invalid or corrupted package (PGP signature)).
    Do you want to delete it? [Y/n] 
    error: failed to commit transaction (invalid or corrupted package (PGP signature))
    Errors occurred, no packages were upgraded.
    [marc@ass ~]$ systemctl enable sddm.service
    Failed to enable unit: Unit file /usr/lib/systemd/system/sddm.service is masked.

当我寻找时/usr/lib/systemd/system/sddm.service,我发现它是空的。

我是否正确地认为存在某种打包错误,并且由于包损坏,系统阻止了它启动?如果包被损坏,不应该有更多的人遇到这个问题吗?

我应该等待一段时间让软件包得到修复,还是应该卸载它并安装另一个欢迎程序,例如lightdm

答案1

  1. /etc/systemd/system/default.target指向/usr/lib/systemd/system/graphical.target必须包含:

Wants=display-manager.service

要检查您的默认 systemd 目标:

systemctl get-default
graphical.target

# ls -l /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 40 Jan 1  2020 /etc/systemd/system/default.target -> /usr/lib/systemd/system/graphical.target
  1. /etc/systemd/system/display-manager.service指向实际显示管理器单元的符号链接必须存在,在我的例子中它是/usr/lib/systemd/system/lxdm.service.

要检查它:

ls -l /etc/systemd/system/display-manager.service
lrwxrwxrwx. 1 root root 36 Jan 1  2020 /etc/systemd/system/display-manager.service -> /usr/lib/systemd/system/lxdm.service

# cat /usr/lib/systemd/system/lxdm.service
[Unit]
Description=LXDM (Lightweight X11 Display Manager)
#Documentation=man:lxdm(8)
[email protected]
After=systemd-user-sessions.service [email protected] plymouth-quit.service livesys-late.service
#Conflicts=plymouth-quit.service

[Service]
ExecStart=/usr/sbin/lxdm
Restart=always
IgnoreSIGPIPE=no
#BusName=org.freedesktop.lxdm

[Install]
Alias=display-manager.service

如果满足这两个要求,则启动时必须有一个图形显示管理器。

您很可能希望安装 SDDM,因为它是 KDE 的首选 DM。这是安装/重新启用它的方法

答案2

设置graphical.target不会自动将您置于图形会话中。它的作用是确保当您启动系统时,所有预期在graphical.target目标中运行的程序/服务都会运行。

当您启用某项服务时,您正在将该服务添加到某个目标(multi-usergraphical等)。具体目标取决于该单元的配置。

您需要启用某些程序,以便当系统进入目标时graphical它将负责启动图形会话。

通常,该程序是显示管理器。确保您的系统上安装了一些。如果您使用 KDE,您可能更喜欢使用sddm.在我的 Arch 系统中,我将通过运行以下命令来安装它:

sudo pacman -S sddm

然后您需要启用该单元。为此,请运行

systemctl enable sddm.service

相关内容