默认target即default.target,修改它可切换系统启动目标:设为multi-user.target进入命令行,graphical.target进入图形界面;修改后需重启生效,或用isolate即时切换。

systemd 系统里改默认 target 就是改 default.target
Linux 用 systemd 后,“运行级别”这个概念已经抽象成 target(比如 multi-user.target 对应传统 runlevel 3,graphical.target 对应 runlevel 5)。改开机进命令行,本质就是让系统默认启动到 multi-user.target。
实操建议:
- 先查当前默认:
systemctl get-default—— 大概率返回graphical.target - 切到命令行模式:
sudo systemctl set-default multi-user.target - 如果想临时进命令行(不改默认),重启时按住
Shift(GRUB 菜单)或在 GRUB 编辑界面末尾加systemd.unit=multi-user.target - 改完不会立刻生效,得重启;但可以立即切换:
sudo systemctl isolate multi-user.target(这会退出图形会话)
改了 default.target 图形界面还能手动启吗
能。设为 multi-user.target 只是跳过自动启动显示管理器(如 gdm3、sddm),不代表卸载或禁用它。
实操建议:
- 进命令行后,手动启桌面:运行
startx(需已配置~/.xinitrc),或直接启显示管理器:sudo systemctl start gdm3(Debian/Ubuntu)或sudo systemctl start sddm(KDE) - 如果
startx报No such file or directory,说明没装 xinit 或用户没配好.xinitrc - 注意:某些发行版(如 Ubuntu 22.04+)默认用
Wayland,startx可能不生效,得改/etc/gdm3/custom.conf开启 Xorg 再试
systemctl set-default 失败常见原因
不是权限问题就是符号链接断了——set-default 实际是在 /etc/systemd/system/default.target 创建指向目标 unit 的软链,出错基本卡在这步。
常见错误现象和应对:
- 报错
Failed to set default target: Unit multi-user.target is not loaded:目标 unit 文件缺失,检查/usr/lib/systemd/system/multi-user.target是否存在;极少数精简系统可能删了它,得重装systemd包 - 报错
Failed to set default target: Invalid argument:传入的 target 名拼错,比如写成multiuser.target(少短横)或multi-user.targetx - 改完
get-default还是旧值:确认没在 /etc/systemd/system/ 下有残留的default.target文件(非软链),手动删掉再试
CentOS 6 / RHEL 6 这类 sysvinit 系统怎么处理
它们没 systemd,靠改 /etc/inittab 里的 id: 行,但注意:新版 CentOS/RHEL 7+ 全是 systemd,只有老机器才走这条路。
实操要点:
- 编辑
/etc/inittab,找到类似id:5:initdefault:这行,改成id:3:initdefault: - 保存后无需重启,下次开机即生效;当前会话不受影响
- 如果系统里压根没有
/etc/inittab(比如最小化安装的 CentOS 6),说明 init 已被替换成 upstart 或 systemd,得换方法查实际 init 类型:ps -p 1 -o comm=
systemctl get-default 和实际重启行为是否一致——有些桌面环境(如 GNOME)会在登录前自动拉起显示管理器,掩盖了 target 设置,得看控制台(Ctrl+Alt+F2)是否真停留在命令行。










