在CentOS系统中,设置启动模式是一项基础且重要的系统管理任务,它决定了系统在完成引导过程后是进入功能齐全的图形用户界面(GUI),还是进入高效、轻量的命令行界面(CLI),对于服务器环境而言,通常采用命令行模式以节省系统资源并提升安全性与稳定性;而对于桌面用户,图形界面则提供了更直观的操作体验,本文将详细介绍如何在CentOS 7及更高版本中,通过systemd管理系统来灵活地设置和切换启动模式。

理解Systemd Target
在现代的CentOS版本(如7、8、9及Stream)中,系统和服务管理器由systemd取代了传统的SysVinit,systemd引入了“target”的概念,它取代了旧的“运行级别”,用于在启动过程中对系统进行同步和状态管理,每个target都是一个单元文件,代表一种特定的系统状态,例如网络可用、多用户支持或图形界面可用,与启动模式最相关的两个target是:
| Target名称 | 描述 | 类似于旧的运行级别 |
|---|---|---|
graphical.target | 提供完整的图形化多用户登录界面,启动显示管理器和桌面环境。 | 运行级别 5 |
multi-user.target | 提供多用户网络登录的命令行界面,但不包含图形界面。 | 运行级别 3 |
理解这两个核心target是设置启动模式的关键,系统的默认启动模式由一个符号链接/etc/systemd/system/default.target决定,它指向上述其中一个target文件。
检查当前的默认启动模式
在进行任何更改之前,首先需要了解系统当前的默认设置,可以通过以下命令轻松查看:
systemctl get-default
执行该命令后,系统会输出当前的默认target,例如graphical.target或multi-user.target,这为你提供了进行下一步操作的基准。
永久设置启动模式
永久更改意味着系统在每次重启后都会进入你设定的模式,这是最常用的设置方法,主要通过systemctl set-default命令完成。
设置为命令行模式(多用户模式)
若要将系统默认启动模式设置为命令行,可以执行以下命令:
sudo systemctl set-default multi-user.target
执行成功后,系统会返回一条信息,提示已创建符号链接,Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
这表示default.target现在指向了multi-user.target,为了使更改生效,需要重启系统:
sudo reboot
重启后,系统将直接进入命令行登录提示符,不再启动图形服务。

设置为图形界面模式
反之,如果希望系统默认启动到图形桌面环境,则执行:
sudo systemctl set-default graphical.target
同样,系统会创建相应的符号链接,并提示操作成功,之后重启系统即可:
sudo reboot
系统重启后,会自动加载显示管理器(如GDM)并呈现图形登录界面。
临时切换启动模式
有时,你可能只想在当前会话中临时切换模式,而不希望永久更改默认设置,在默认为命令行的服务器上临时启动图形界面进行一次性操作,这时可以使用systemctl isolate命令。
临时切换到命令行模式:
sudo systemctl isolate multi-user.target
此命令会立即停止所有图形服务,将你带入命令行界面,重启后,系统仍会恢复到之前的默认模式。
临时切换到图形界面模式:
sudo systemctl isolate graphical.target
此命令会立即启动显示管理器和桌面环境,同样,这次更改不会影响系统的默认启动target。
常见问题处理
在设置启动模式时,可能会遇到一些特殊情况,最常见的问题是,将默认模式设置为graphical.target后,重启系统并未出现图形界面,这通常意味着系统中没有安装图形桌面环境,你需要先安装相应的软件包组,对于CentOS 7/8,可以使用以下命令安装GNOME桌面:

sudo yum groupinstall "Server with GUI" -y
或
sudo yum groupinstall "GNOME Desktop" -y
安装完成后,再次确认默认target已设置为graphical.target,然后重启系统,图形界面应该就能正常加载了。
相关问答FAQs
问题1:修改启动模式后,系统无法正常启动进入救援模式或紧急模式该怎么办?
解答: 如果因为错误的配置导致系统无法正常启动,可以在GRUB引导菜单中进行干预,重启计算机,在出现GRUB菜单时,按e键编辑选中的启动项,找到以linux或linux16或linuxefi开头的那一行,移动光标到行尾,添加一个空格,然后输入systemd.unit=rescue.target(进入救援模式)或systemd.unit=emergency.target(进入紧急模式,更底层),按下Ctrl + X或F10启动系统,进入救援模式后,你将获得一个root shell,可以检查和修正/etc/fstab等配置文件,或使用systemctl set-default命令恢复正确的启动模式。
问题2:CentOS 6 和 CentOS 7/8 在设置启动模式上有什么根本区别?
解答: 根本区别在于它们使用的初始化系统不同。CentOS 6 使用传统的 SysVinit,其启动模式通过“运行级别”来管理,配置文件是/etc/inittab,要修改默认启动模式,你需要编辑这个文件,将id:5:initdefault:(图形界面)改为id:3:initdefault:(命令行),然后重启,而 CentOS 7/8 使用 systemd,通过“target”来管理状态,它不再使用/etc/inittab文件,而是通过systemctl命令(如systemctl set-default)来操作/etc/systemd/system/default.target这个符号链接,从而实现更灵活、更现代的管理方式。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复