systemctl set-default multi-user.target 仅设默认目标不够,因 ubuntu 22.04+ 等发行版会绕过 target 自启 gdm3/sddm/lightdm;需配合 systemctl stop && disable 对应显示管理器服务,并清理 /etc/x11/default-display-manager,最后重启验证。

systemctl set-default multi-user.target 能让系统下次启动直接进命令行,但只改这一个不够——很多发行版(尤其是 Ubuntu 22.04+、Fedora、Debian 12+)会绕过 target 自动拉起 gdm3、sddm 或 lightdm,结果你还是看到登录界面。
确认当前默认 target 和实际运行的显示管理器
先看系统“说的”和“做的”是否一致:
运行 systemctl get-default,输出是 graphical.target 还是 multi-user.target?
再查真正在跑的是谁:systemctl list-units --type=service | grep -i "dm\|display"
- 如果看到
gdm3.service状态为active (running),哪怕 target 是multi-user,它也会自己启动 X/Wayland -
systemctl is-enabled gdm3返回enabled就说明它被设为开机自启,必须禁用 - 不同桌面对应不同服务名:
sddm(KDE)、lightdm(XFCE/LXQt)、gdm3(GNOME)、ly(轻量级),别只盯着gdm3
禁用显示管理器服务并清理残留
改完 default target 后,必须手动干掉显示管理器:
执行以下三步(以 gdm3 为例,替换成你查到的实际服务名):
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
sudo systemctl stop gdm3—— 立即终止进程 -
sudo systemctl disable gdm3—— 防止下次启动时被拉起 - 删或清空
/etc/X11/default-display-manager—— 这个文件可能残留/usr/sbin/gdm3路径,systemd 有时会读它
Ubuntu 22.04+ 用户特别注意:gdm3 可能被 ubuntu-session 或 gnome-shell 的依赖链间接激活,禁用后务必重启验证。
临时切换与 TTY 快捷键失效怎么办
改完设置后,当前会话不重启也能立刻退出图形界面:
运行 sudo systemctl isolate multi-user.target,会立即杀死所有图形会话并回到 TTY 登录提示符。
但如果按 Ctrl+Alt+F2 没反应,常见原因有:
- Ubuntu 默认把图形界面绑在
F1,F2–F6才是纯 TTY;先试Ctrl+Alt+F3 - VMware/VirtualBox 中,Host 键(通常是右 Ctrl)会劫持组合键 → 先按 Host 键松开,再按
Alt+F2 - 部分笔记本 BIOS/UEFI 设置里禁用了功能键直通 → 进 BIOS 找 “Function Key Behavior” 改成 “Standard”
GRUB 参数 text 不是万能解,慎用
有些老教程让你改 /etc/default/grub 中的 GRUB_CMDLINE_LINUX_DEFAULT="text",再 update-grub。这确实能屏蔽 Plymouth 启动动画,但:
- 它**不阻止显示管理器启动**,只是让启动过程不显示图形 splash
- 某些内核版本下加
text会导致systemd-logind无法正确管理 TTY 登录,出现黑屏或卡在 login prompt - 真正起效的只有
systemdtarget + 显示管理器禁用,GRUB 参数只是辅助
最易被忽略的一点:改完 default.target 和禁用 DM 后,一定要 reboot 验证——因为 isolate 是临时的,而 systemd 的 unit 依赖关系可能在冷启动时才暴露问题。










