Wednesday, July 13, 2016

How to boot into command line on Ubuntu or Debian

Question: I am running Ubuntu desktop, but I want to boot straight into text-mode console temporarily. What is a convenient way to disable desktop GUI and boot into a terminal?
Linux desktop comes with a display manager (e.g., GDM, KDM, LightDM), which lets the desktop machine automatically boot into a GUI-based login environment. However, what if you want to disable GUI and boot straight into a text-mode console? For example, you are troubleshooting desktop related issues, or want to run a heavy-duty application that does not require desktop GUI.
Note that you can temporarily switch from desktop GUI to a virtual console by pressing Ctrl+Alt+F1 to F6. However, in this case your desktop GUI will be still running in the background, and thus is different from pure text-mode booting.
Here is how to enable text-mode booting on Ubuntu or Debian desktop.

Boot into Command-line Permanently

If you want to boot into command-line permanently, you need to update GRUB configuration which defines kernel booting parameters.
Open a default GRUB config file with a text editor.
$ sudo vi /etc/default/grub
Look for a line that starts with GRUB_CMDLINE_LINUX_DEFAULT, and comment out that line by prepending # sign. This will disable the initial splash screen, and enable verbose mode (i.e., showing the detailed booting procedure).
Then change GRUB_CMDLINE_LINUX="" to:
Next, uncomment the line that says "#GRUB_TERMINAL=console".
The updated GRUB defult configuration looks like the following.
Now use update-grub command to re-generate a GRUB2 config file in /boot based on these changes.
$ sudo update-grub
For systemd-enabled desktop only: If your desktop uses systemd (e.g., for Debian 8 or later or Ubuntu 15.04 or later), there is one additional step needed. That is to change the default target from "graphical" target to "multi-user" target. Skip this step if your desktop does not use systemd.
$ sudo systemctl set-default
You can always revert to desktop boot later by restoring GRUB config file and running:
$ sudo systemctl set-default
At this point, your desktop should boot into the command line when you reboot it.

Boot into Command-line Temporarily on Older Desktop

If you want to disable desktop GUI and boot in text-mode just one-time, you can use GRUB menu interface. This works only for Debian 7 or earlier or Ubuntu 14.10 or earlier, where systemd is not enabled.
First, power on your desktop. When you see the initial GRUB menu, press 'e'.
This will lead you to the next screen, where you can modify kernel booting parameters. Scroll down the screen to look for a line that begins with "linux", which indicates a list of kernel parameters. Remove from the list "quiet" and "splash". Add "text" in the list instead.
The updated kernel parameter list looks like the following. Press Ctrl+x to continue booting. This will enable one-time console booting in verbose mode.

1 comment: