Force Boot to Command Line

May 2017

Having installed a netinstall version of Lubuntu (the smallest ISO I could get) on a Sony Vaio netbook, I had no option during the install to not include the bundled shell. So I wanted to force Linux to boot only to the command line, here is what I did:

Open the GRUB config file with a text editor (Make a backup first).

sudo vi /etc/default/grub

Look for the line that starts with GRUB_CMDLINE_LINUX_DEFAULT and comment out that line by placing a hash # symbol in front of it.

# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

This will disable the initial splash screen, and enable verbose mode (i.e., showing the detailed boot procedure).
Then change GRUB_CMDLINE_LINUX=“” to:

GRUB_CMDLINE_LINUX="text"

Next, uncomment the line that says “#GRUB_TERMINAL=console.

GRUB_TERMINAL=console

The updated GRUB default configuration looks like the following:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
# GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="text"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

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 multi-user.target