I want to boot to console instead of a GUI using systemd. How can I do that?
- 79,330
- 30
- 216
- 245
- 86,451
- 30
- 200
- 258
3 Answers
Open a terminal and (as root) run:
systemctl set-default multi-user.target
or with --force
systemctl set-default -f multi-user.target
to overwrite any existing conflicting symlinks1.
Double-check with:
systemctl get-default
Another way is to add the following parameter to your kernel boot line:
systemd.unit=multi-user.target
- 79,330
- 30
- 216
- 245
In /etc/systemd/system you'll find a symlink, default.target. Currently this points to /usr/lib/systemd/system/graphical.target (you can see this with readlink default.target.
As root (or via sudo), delete the symlink and replace it:
rm default.target
ln -s /usr/lib/systemd/system/multi-user.target default.target
Double check that with type default.target. It should say "symbolic link to...", not "broken symbolic link to..." in which case you typed the target wrong, start again. Also double check you got the name right, default.target -- all this is important to having the system reboot properly.
You can now reboot and go to console instead of a display manager. To change back to a GUI login, reverse the process above.
- 86,451
- 30
- 200
- 258
KDM has a bug where it will ignore the multi-user.target target when using systemd.
You still need to set the multi-user.target as mentioned in the answers above. But for some reason KDE will ignore that even when it is correctly set and still run at boot :/ .
Here is the work around that I found that eventually did the trick. Add the following to your kernel command line parameters:
systemd.mask=kdm.service
I edited /etc/default/grub and changed the GRUB_CMDLINE_LINUX_DEFAULT line to read as follows:
GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.mask=kdm.service"
After this change update grub:
update-grub
Now after a reboot the system displays a console login prompt rather than starting X and KDE.
- 55,929
- 26
- 146
- 227
- 4,424
- 3
- 27
- 50