Setting the default boot target in systemd decides which target the system tries to reach on a normal boot. That controls whether the next regular startup stops at a text-mode multi-user environment or continues to the graphical login screen.

In the system instance, default.target is an alias that usually points to multi-user.target or graphical.target. The systemctl set-default command rewrites that alias for future boots, and systemctl get-default prints the saved target name.

Changing the saved default does not switch the current session immediately. A one-time kernel option such as systemd.unit=rescue.target or a runtime switch with systemctl isolate can reach another target without changing the persistent boot target, and rescue.target or emergency.target are recovery states rather than normal long-term defaults.

Steps to set the default boot target in systemd:

  1. Open a terminal session with an account that can use sudo.
  2. Check the target that the next normal boot currently uses.
    $ systemctl get-default
    graphical.target

    Common results are graphical.target for a graphical login and multi-user.target for a non-graphical multi-user boot.

  3. List the common boot targets when the target name needs a quick sanity check before changing it.
    $ systemctl list-unit-files default.target graphical.target multi-user.target rescue.target --type=target --no-pager
    UNIT FILE          STATE    PRESET
    default.target     alias    -
    graphical.target   static   -
    multi-user.target  static   -
    rescue.target      static   -

    The unit names in this list are the values to pass to systemctl set-default. graphical.target pulls in multi-user.target, while rescue.target is for troubleshooting rather than a normal day-to-day default.

  4. Set the target that future boots should reach.
    $ sudo systemctl set-default multi-user.target
    Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.

    Replace multi-user.target with graphical.target when the system should return to a graphical login. If default.target was already overridden locally, systemctl usually prints a Removed line before the new symlink line.

  5. Read the saved default back from systemd.
    $ systemctl get-default
    multi-user.target

    systemctl set-default saves the next regular boot target only. It does not switch the current session.

  6. Reboot when the system should start using the new boot mode.
    $ sudo systemctl reboot

    Changing from graphical.target to multi-user.target removes the graphical login on the next boot. Confirm that SSH, a hypervisor console, or another recovery path is available before rebooting a remote host.

  7. Confirm the booted system reached the intended mode after it comes back.
    $ systemctl is-active multi-user.target graphical.target
    active
    inactive

    This example shows a successful boot into multi-user.target. On a system set to graphical.target, both targets are usually active because graphical.target pulls in multi-user.target.

    Use How to isolate a systemd target when the current session must switch targets immediately instead of waiting for the next reboot.