将Ubuntu 16.04引导到命令行/不启动GUI


Answers:


27

您可以使用禁用显示管理器服务systemctl。例如,如果lightdm然后运行显示管理器:

sudo systemctl disable lightdm.service

这将阻止服务在启动时启动。

编辑

我忘了提到如何启动GUI。就像启动systemd服务一样简单:

sudo systemctl start lightdm.service

1
这对我在16.04上的工作原理是有用的。谢谢。:)
wojci 2016年

这在我的系统上不起作用。(在PC上为16.04 LTS)随着服务开始,然后冻结,它显示带有所有[OK]消息的初始屏幕。
保罗·威廉姆斯

顺便说一句,重新启用该服务的命令实际上是sudo systemctl enable lightdm.service
Paul Williams,

16

代替text使用runlevel 3

GRUB_CMDLINE_LINUX="3"

# To remove all the fancy graphics you need to get rid of `splash`.
GRUB_CMDLINE_LINUX_DEFAULT=”quiet”

# Uncomment to disable graphical terminal (grub-pc only) 
GRUB_TERMINAL=console

然后update-grub重启。


但是你真的只需要GRUB_CMDLINE_LINUX="3"。要ESC在引导过程中快速进行测试,请进入grub引导菜单。然后按下e并找到指定内核的行,并3在末尾添加:

 linux /vmlinuz root=/dev/mapper/ubuntu ro 3

CTRL+ 引导x


理想情况下,我还希望能够通过键入命令来启动GUI。

其中之一:

$ sudo telinit 5
$ sudo service lightdm restart
$ sudo systemctl start lightdm

在Ubuntu 16.04.1 LTS上测试。


2
用“ 3”代替“ text”对我有用!很有效率!谢谢
ThomasGuenet

你好 答案看起来不错,但很难理解。我只是理想情况下只需要一个命令即可启动进入文本模式,执行所需的操作,然后返回正常的桌面模式。
nyxee

1
@nyxee我的答案分为3个部分。跟随第二个:“快速击中...”
公元

非常感谢您发布的信息。当人们寻找这些信息时,他们通常会筋疲力尽。我在下面给出了一个简单答案的示例。
nyxee

1
好答案。我只是习惯于发布包含更多信息的更长答案,因此我们所有人都可以了解更多信息。而且我对grub cmd的行选项也很熟悉,因此对我来说添加3更快,而且我很高兴+它是多发行版的解决方案:)
公元

10
  • 在GUI模式下,重新引导时将带您进入文本模式(运行级别2、3、4)。你可能会得到一个空白屏幕(无GUI),这是一个提醒,有没有GUI :-),输入ctrlaltF1F2,...)使用运行级别。

systemctl set-default multi-user.target

  • 处于文本模式时,这将带您返回GUI引导。

systemctl set-default graphical.target


9

作为内核命令行(可通过GRUB编辑)的一部分,以下其中一项应能起作用:

  • systemd.unit=multi-user.target将覆盖默认值“ graphical.target” –连同systemctl set-default等效于“默认运行级别”;
  • systemd.mask=lightdm.service将禁止启动特定服务,直到以后手动systemctl unmask'd为止;
  • systemd.mask=display-manager.service –同样;
  • rescueaka systemd.unit=rescue.target等效于“单用户运行级别”;不适用于日常使用,但在修复损坏的GUI时很有用。

提及您如何从“紧急设置” 恢复正常状态将很有用。
nyxee

1
为了他人的利益,您想要的实际CLI命令是systemctl set-default multi-user.target(并且我相信systemctl set-default graphical.target会重置它)
Andrea

只有当您希望它是半永久性的并且可以首先到达外壳时才可以。主要帖子与CLI命令无关。
grawity

3

对于ubuntu 18.04启用root用户

 sudo passwd

然后

systemctl set-default multi-user.target
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.