How To Boot To Console (Text) Mode Using Debian / Ubuntu, Fedora, Arch Linux / Manjaro And More

This article explains how to boot a Linux distribution like Debian, Ubuntu, Fedora, Arch Linux / Manjaro, etc., in console mode, either temporarily or permanently.

The instructions in this article should work with any Linux distribution that uses systemd (for the permanent mode below) and GNU GRUB (for the temporary mode), but I personally only tried this with Debian, Ubuntu, Manjaro and Fedora.

boot Linux in console mode (text mode)

Booting in console mode (text mode / tty) allows you to login to your system from the command line (as a regular user or as the root user if it's enabled), without using a graphical user interface. This is useful in case your system fails to boot when using the graphical mode, or maybe you have a computer running Linux for which you don't regularly use the GUI and ssh into it, so you'd like to save some system resources by booting in text mode. But regardless of the reason, this article shows you how to boot to console / text / tty on Linux.

Case A. Temporary booting to console mode (text mode)


Using these instructions, your computer will boot to console only for the current boot. After restarting the computer it will boot normally, so these changes are temporary.

1. To temporarily boot to console mode (tty), start your computer and immediately after the BIOS / UEFI splash screen, press and hold the Shift (BIOS), or press the Esc (UEFI) key repeatedly, to access the GRUB menu.

2. Once you see the GNU GRUB screen, with the first entry from the menu selected, press the e key. This allows you to edit the kernel parameters before booting.

Look for the line that begins with linux (use the Up / Down / Left / Right arrow keys to navigate); vmlinuz should also be on the same line. At the end of this line (you can place the cursor using the arrow keys at the beginning of the line, then press the End key to move the cursor to the end of that line) add a space followed by the number 3. Don't change anything else.

This 3 represents the multi-user.target systemd target which is mapped to the old, now obsolete runlevel 2, 3 and 4 (used to start and stop groups of services). For example the old runlevel 5 is mapped to the systemd graphical.target and using this starts... you've guessed it, the graphical (GUI) target. For more on systemd targets see this page.

Example #1. This is how the line beginning with "linux" looks like for Ubuntu 18.04 LTS (it doesn't have to be identical for you, it's just so you get an idea):

linux      /boot/vmlinuz-4.18.0-15-generic root=UUID=1438eb20-da3d-4880-bb3a-414e+++0a929 ro quiet splash $vt_handoff

And this is how the line beginning with "linux" looks after adding the 3 at the end:

linux      /boot/vmlinuz-4.18.0-15-generic root=UUID=1438eb20-da3d-4880-bb3a-414e+++0a929 ro quiet splash $vt_handoff 3

Example #2. This is how the line beginning with "linux" looks for Fedora 31 (it's not identical for you, it's just so you get an idea):

linux ($root)/vmlinuz-5.3.13-300.fc31.x86_64 root=/dev/mapper/fedora_localhost--live-root ro resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet

And this is how it looks after adding the 3 at the end of the line:

linux ($root)/vmlinuz-5.3.13-300.fc31.x86_64 root=/dev/mapper/fedora_localhost--live-root ro resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet 3

3. After doing this, press Ctrl + x or F10 to boot to console (text) mode.

To reboot your system while in console mode, use the reboot command (sudo reboot).

It's worth noting that Debian and Ubuntu based Linux distributions (including Linux Mint, Elementary OS, Pop!_OS, Zorin OS, etc.) come with a recovery mode built into the GNU GRUB menu. So in case you use Debian / Ubuntu or some Linux distribution based on it, get to the GNU GRUB menu as explained above, then select Advanced options, and from the new list that comes up select the first entry that ends with (recovery mode). Select this entry and hit the Enter key, and you'll get to a menu that, among others, allows you to drop to root shell prompt - when selected, your system continues to boot to the command line and not a graphical user interface, allowing you to login using your root password. This allows access to the filesystem in read-only mode; for read-write use mount -o remount,rw /. Use this for example to reset a lost user / administrator password on Ubuntu, Linux Mint, Elementary OS, etc.

Case B. Permanently booting to text mode (console mode)


Getting your Linux system to always boot to console (text / tty) mode is as easy as running a single command:

sudo systemctl set-default multi-user.target

This command sets text mode as the default systemd target (runlevel as it used to be called before systemd). After running this command, reboot your system and it will automatically boot to console / text mode every time.

Don't know the current systemd target used on your system? Use this command, which will show the currently set target:

systemctl get-default

Extra tip: using this, your Linux computer will boot to tty1 (text-only virtual console). You can switch to a different virtual console by using Ctrl + Alt + F2 for tty2, Ctrl + Alt + F3 for tty3, and so on until tty7.

In case you want to undo this change and get your Linux system to boot to the default graphical mode, use:

sudo systemctl set-default graphical.target

After using this command, reboot (sudo reboot) and your system should start in graphical mode, as it was by default.

You might like: How To Change The GRUB Boot Order Or Default Boot Entry In Ubuntu, Linux Mint, Debian, Or Fedora With Grub Customizer