Non-graphical boot with systemd

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

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.


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.

Tags:

Systemd