Boot Ubuntu 16.04 into command line / do not start GUI
Solution 1
You could disable the display manager service with systemctl
. For example if your display manager is lightdm
then run:
sudo systemctl disable lightdm.service
This will prevent the service from starting at boot.
Edit:
I forgot to mention how to start the GUI. It is as simple as starting the systemd service:
sudo systemctl start lightdm.service
Solution 2
Instead of text
use runlevel 3
:
GRUB_CMDLINE_LINUX="3"
# To remove all the fancy graphics you need to get rid of `splash`.
GRUB_CMDLINE_LINUX_DEFAULT=”quiet”
# Uncomment to disable graphical terminal (grub-pc only)
GRUB_TERMINAL=console
Then update-grub
and reboot.
But you really only need GRUB_CMDLINE_LINUX="3"
. For quick test hit ESC during booting to get into the grub boot menu. Then press e and find the line which specifies kernel and add 3
at the end:
linux /vmlinuz root=/dev/mapper/ubuntu ro 3
Boot it with CTRL+x
Ideally I also want to be able to start GUI by typig a command.
One of these:
$ sudo telinit 5
$ sudo service lightdm restart
$ sudo systemctl start lightdm
Tested on Ubuntu 16.04.1 LTS.
Solution 3
- When in GUI-mode, this will take you to text-mode (runlevel 2,3,4) on reboot. You may get a blank screen (no-gui) which is a reminder that there's no GUI :-), enter ctrlalt(F1,F2,...) to use the runlevels.
systemctl set-default multi-user.target
- This will take you back to GUI boot when you are in text-mode.
systemctl set-default graphical.target
Solution 4
One of the following, as part of the kernel command line (editable via GRUB), should work:
systemd.unit=multi-user.target
will override the default of "graphical.target" – this, along with systemctl set-default, is the equivalent of "default runlevel";systemd.mask=lightdm.service
will forbid a specific service from starting, until manually systemctl unmask'd later;systemd.mask=display-manager.service
– same;rescue
akasystemd.unit=rescue.target
is the equivalent of "single-user runlevel"; not for daily use, but useful when fixing broken GUI.
Solution 5
for ubuntu 18.04 enable root user
sudo passwd
and then
systemctl set-default multi-user.target
Related videos on Youtube
Greendrake
Updated on September 18, 2022Comments
-
Greendrake over 1 year
I want my Ubuntu 16.04 to not start GUI on boot and show command line console only. I have tried the following recipies but none of them are for version 16.04 and so they do not seem to work — GUI starts anyway:
Ideally I also want to be able to start GUI by typig a command.
-
wojci over 7 yearsThis worked for me on 16.04 on a arm board. Thanks. :)
-
ThomasGuenet over 7 yearsReplacing "text" by "3", worked for me ! Very efficient ! Thanks
-
nyxee over 6 yearsit would be useful to mention how you return to normality from that "emergency setting" .
-
nyxee over 6 yearshi. the answer looks nice but its hard to understand. I just Ideally need one command to boot into text mode, do what I need, and go back into normal desktop mode.
-
A.D. over 6 years@nyxee My answer has 3 sections. Follow the second: "For quick test hit..."
-
nyxee over 6 yearsI appreciate the information in your post. by the time people look for this information, they are normally exhausted with other options. I gave an example of a simple answer below.
-
A.D. over 6 yearsNice answer. I'm just used to post longer answers with a lot of information so we all can learn more. And also I'm familiar with grub cmd line options so it's faster for me to add 3 and I'm good to go + it's multi-distro solution :)
-
nyxee over 6 yearsI'm still looking at it to understand whats going on. When i'm done with the unity issues i'll be back . just had to uninstall ubuntu-desktop and unity (the original cause of my problems)
-
Andrea over 6 yearsFor the benefit of others, the actual CLI command you want is
systemctl set-default multi-user.target
(and I believesystemctl set-default graphical.target
would reset it) -
user1686 over 6 yearsThat's only if you want it semi-permanent, and can reach a shell in the first place. The main post has nothing to do with CLI commands.
-
Max L. over 6 yearsgreat answer, which file contain the "linux /vmlinuz root=/dev/mapper/ubuntu ro 3" command ?
-
A.D. over 6 years
/boot/grub/grub.cfg
but this file is generated so you should be doing changes in/etc/default/grub
instead. -
Paul Williams about 6 yearsThis did not work on my system. (16.04 LTS on a PC) It shows the initial screen with all the [ OK ] messages as the services start, and then freezes.
-
Paul Williams about 6 yearsBTW to re-enable the service the command is actually sudo systemctl enable lightdm.service
-
RonJohn over 3 yearsWorked for me on
Xubuntu 18.04
.