Linux系统启动与图形界面管理全解析
立即解锁
发布时间: 2025-09-11 01:38:09 阅读量: 12 订阅数: 22 AIGC 


从零开始学Linux系统管理
### Linux系统启动与图形界面管理全解析
#### 1. systemd简介
systemd 是所有进程之母,其进程 ID(PID)始终为 1。它负责将 Linux 主机引导至可进行有效工作的状态,功能比旧的 SystemV init 程序更为广泛,涵盖管理运行中的 Linux 主机的诸多方面,如挂载文件系统、启动和管理系统服务等。
systemd 依据 `/etc/fstab` 文件挂载文件系统,包括交换文件或分区。它通过 `/etc/systemd/system/default.target` 配置链接来确定主机的启动目标状态。`default.target` 是一个符号链接,指向真正的目标文件。对于桌面工作站,通常为 `graphical.target`,相当于 SystemV 中的运行级别 5;对于服务器,默认更可能是 `multi-user.target`,类似于 SystemV 中的运行级别 3;`emergency.target` 类似于单用户模式。目标和服务均为 systemd 单元。
以下是 Systemd 目标与 SystemV 运行级别的对比表格:
| Systemd 目标 | SystemV 运行级别 | 目标别名 | 描述 |
| --- | --- | --- | --- |
| default.target | - | - | 此目标始终通过符号链接别名为 `multi-user.target` 或 `graphical.target`,systemd 始终使用 `default.target` 启动系统,且不应别名为 `halt.target`、`poweroff.target` 或 `reboot.target` |
| graphical.target | 5 | runlevel5.target | 具有图形用户界面的多用户目标 |
| - | 4 | runlevel4.target | 未使用,在 SystemV 中运行级别 4 与运行级别 3 相同,可创建并自定义此目标以启动本地服务,而不改变默认的 `multi-user.target` |
| multi-user.target | 3 | runlevel3.target | 所有服务运行,但仅为命令行界面(CLI)的多用户模式 |
| - | 2 | runlevel2.target | 多用户模式,无 NFS,但其他非 GUI 服务运行 |
| rescue.target | 1 | runlevel1.target | 基本系统,包括挂载文件系统,仅运行最基本的服务,并在主控制台提供救援 shell |
| emergency.target | S | - | 无服务运行,未挂载文件系统,这是最基本的操作级别,仅在主控制台运行紧急 shell 供用户与系统交互,类似于 SystemV 中的单用户模式 |
| halt.target | - | - | 停止系统但不关闭电源 |
| reboot.target | 6 | runlevel6.target | 重启系统 |
| poweroff.target | 0 | runlevel0.target | 停止系统并关闭电源 |
#### 2. systemd 启动流程
每个目标在其配置文件中都有一组依赖项,systemd 会启动所需的依赖项。当目标配置文件中列出的所有依赖项都加载并运行时,系统即处于该目标级别。
systemd 还会查看旧的 SystemV init 目录,若存在启动文件,则将其用作配置文件来启动相应的服务。
systemd 启动过程中的 `sysinit.target` 和 `basic.target` 可视为检查点。`sysinit.target` 达成时,所有依赖单元(如挂载文件系统、设置交换文件、启动 udev 等)均需完成,这些任务在 `sysinit.target` 内可并行执行。完成 `sysinit.target` 后,systemd 会启动 `basic.target`,为后续目标提供一些额外功能。
最后,初始化用户级目标,如 `multi-user.target` 或 `graphical.target`。`multi-user.target` 必须先达成,才能满足 `graphical.target` 的依赖项。当这些目标之一达成时,启动过程即完成。
以下是 systemd 启动流程的 mermaid 流程图:
```mermaid
graph LR
A[系统启动] --> B[sysinit.target]
B --> C[basic.target]
C --> D{选择目标}
D -->|multi-user.target| E[多用户命令行界面]
D -->|graphical.target| F[图形用户界面]
```
#### 3. 更改默认目标实验
若要将默认目标从 `graphical.target` 更改为 `multi-user.target`,可按以下步骤操作:
1. 以 root 用户身份切换到 `etc/systemd/system/` 目录并列出内容:
```bash
[root@studentvm1 ~]# cd /etc/systemd/system/ ; ll
```
2. 删除现有的 `default.target` 链接
0
0
复制全文
相关推荐




