使用 systemd 进行非图形引导

gol*_*cks 28 systemd

我想使用systemd. 我怎样才能做到这一点?

don*_*sti 44

打开终端并(以 root 身份)运行:

systemctl set-default multi-user.target
Run Code Online (Sandbox Code Playgroud)

或与 --force

systemctl set-default -f multi-user.target
Run Code Online (Sandbox Code Playgroud)

覆盖任何现有的冲突符号链接1

仔细检查:

systemctl get-default
Run Code Online (Sandbox Code Playgroud)

另一种方法是将以下参数添加到内核引导行:

systemd.unit=multi-user.target
Run Code Online (Sandbox Code Playgroud)


gol*_*cks 9

/etc/systemd/system你会发现一个符号链接default.target。目前这指向/usr/lib/systemd/system/graphical.target(您可以使用readlink default.target.

作为 root(或通过 sudo),删除符号链接并替换它:

rm default.target
ln -s /usr/lib/systemd/system/multi-user.target default.target
Run Code Online (Sandbox Code Playgroud)

type default.target. 它应该说“指向...的符号链接”,而不是“指向...的符号链接断开”,在这种情况下,您输入的目标错误,请重新开始。还要仔细检查你的名字是否正确default.target——所有这些对于正确重启系统都很重要。

您现在可以重新启动并转到控制台而不是显示管理器。要改回 GUI 登录,请反转上述过程。


111*_*--- 5

KDM一个错误,它会multi-user.target在使用时忽略目标systemd

您仍然需要multi-user.target按照上述答案中的说明进行设置。但出于某种原因KDE,即使正确设置并仍在启动时运行,也会忽略它:/。

这是我发现最终成功的解决方法。将以下内容添加到内核命令行参数中:

systemd.mask=kdm.service
Run Code Online (Sandbox Code Playgroud)

我编辑/etc/default/grub并更改了该GRUB_CMDLINE_LINUX_DEFAULT行,如下所示:

GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.mask=kdm.service"
Run Code Online (Sandbox Code Playgroud)

此更改更新后grub

update-grub
Run Code Online (Sandbox Code Playgroud)

现在重新启动后,系统会显示控制台登录提示,而不是启动 X 和KDE.