# Ubuntu启动字符模式

对于Ubuntu服务器，没有必要启动X Window系统。如果已经安装了Desktop版本，也可以通过切换设置使得系统默认启动就进入字符终端。这种方式也可以节约系统资源。

## 启动时关闭图形splash显示启动信息

* 编辑 `/etc/default/grub`，将以下行:

```
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
```

修改成

```
RUB_CMDLINE_LINUX_DEFAULT="text"
```

然后更新GRUB

```
sudo update-grub
```

## 现代使用systemd的版本

可以直接使用`systemd`不调用图形登陆界面：

```
sudo systemctl enable multi-user.target --force
sudo systemctl set-default multi-user.target
```

如果提示错误：

```
The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).
4) In case of template units, the unit is meant to be enabled with some
   instance name specified.
```

* 检查当前默认运行级别：

```
systemctl get-default
```

显示输出表示默认是图形界面

```
graphical.target
```

在 `/lib/systemd/system/` 目录下包含了所有运行级别

```
lrwxrwxrwx 1 root root   15 2月  14 05:32 /lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx 1 root root   13 2月  14 05:32 /lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx 1 root root   17 2月  14 05:32 /lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx 1 root root   17 2月  14 05:32 /lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx 1 root root   17 2月  14 05:32 /lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx 1 root root   16 2月  14 05:32 /lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx 1 root root   13 2月  14 05:32 /lib/systemd/system/runlevel6.target -> reboot.target
```

传统上默认运行级别包含在 `/etc/inittab` 中，不过，现代操作系统改用systemd来管理运行级别。

可以手工设置默认运行级别：

```
rm /etc/systemd/system/default.target
ln -s /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target
```

此时再检查运行级别可以看到输出修改成 `multi-user.target`

```
# systemctl get-default
multi-user.target
```

要恢复原先的图形界面可以将软链接再改为 `runlevel5.target`

```
rm /etc/systemd/system/default.target
ln -s  /lib/systemd/system/runlevel5.target  /etc/systemd/system/default.target
```

## 参考

* [How do I disable X at boot time so that the system boots in text mode?](https://askubuntu.com/questions/16371/how-do-i-disable-x-at-boot-time-so-that-the-system-boots-in-text-mode)
* [SYSTEMD TARGETS](http://www.landoflinux.com/linux_runlevels_systemd.html) - 非常详尽的指南


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://huataihuang.gitbook.io/cloud-atlas-draft/os/linux/ubuntu/system_administration/ubuntu_system_boot_in_text_mode.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
