105

After changing a few lines in xorg.conf, I can no longer boot Ubuntu (I assume it breaks when trying to load up X), so I need a way to boot into a single-user mode. However, there seems to be zero guides on the Internet how to do it, because they all assume I can actually edit files on my computer, and I obviously can't.

So how do I load Ubuntu in single-user mode?

When I turned off splash, I figured out the problem: whenever Ubuntu can't load X server due to some error, it switches to tty1 and waits for the prompt, but doesn't turn off the splash.

3
  • Could you provide a little more info about your update? Why does not turning off splash when Ubuntu can't load X server lead to problems? May 7, 2012 at 11:49
  • 3
    @irrationalJohn Because splash screen doesn't disappear so you can't see the console and might not even realize it's there ready for the login. May 7, 2012 at 13:50
  • Pressing ESC will toggle the screen between diag and splash during boot. That way you can see whatever messages are displayed. Everything is logged in /var/log/dmesg if you end up unable to boot and mount the drive on another system. Jan 12, 2020 at 8:41

5 Answers 5

129

To boot into single user mode you edit the boot instructions for the GRUB menu entry you wish to boot and add the kernel parameter/option single. Brief instructions for how to do this are below.

  1. Hold down the left Shift key while rebooting to bring up GRUB menu
  2. Select (highlight) the GRUB boot menu entry you wish to use.
  3. Press e to edit the GRUB boot commands for the selected boot menu entry.
  4. Look near the bottom of the list of commands for lines similar to

    linux /boot/vmlinuz-3.2.0-24-generic root=UUID=bc6f8146-1523-46a6-8b\
    6a-64b819ccf2b7 ro  quiet splash
    initrd /boot/initrd.img-3.2.0-24-generic
    
  5. Change the middle line in (4) by adding the kernel boot parameter single to the end of the line (i.e. after ro quiet splash).

    For this example you would change:

    6a-64b819ccf2b7 ro  quiet splash
    

    to

    6a-64b819ccf2b7 ro  quiet splash single
    
  6. Press either Ctrl+X or F10 to boot using these kernel options.

Note: These changes are not persistent. Any change to the kernel boot options made this way will only affect the next boot and only if you start that boot by pressing either Ctrl+X or F10 while still in GRUB edit mode.

5
  • 8
    how about changing ro to rw so the file system gets mounted writable, so you can make your changes stick?
    – sjas
    Aug 14, 2014 at 12:11
  • 1
    Left shift doesnt do a thing. Is there a new way to do this?
    – Shayne
    Nov 14, 2017 at 7:12
  • 1
    In Ubuntu 16.04, at least, its "ESC" now, to get into the GRUB menu.
    – SiHa
    Apr 23, 2018 at 13:49
  • You can abbreviate the single to just S if you find yourself rebooting often. Dec 27, 2020 at 10:47
  • This didn't work for me on Ubuntu 20, but these's another this one did: the Alternate Root Shell Method Mar 15 at 21:39
52

Occasionally, you might not be able to use the single method as described in the accepted answer. In those cases you can tell the Linux kernel to use a different init like so:

init=/bin/bash

For example

          ss

3
  • 9
    This method is useful for recovering from lost system password as it gives you a shell without being prompted for the existing password. Jul 6, 2016 at 4:05
  • This is not working anymore on Ubuntu 20.04. Aug 12, 2021 at 17:55
  • 2
    This did work for me on Ubuntu 20.04. Note that the underlined part is rw init=/bin/bash, NOT rw \init=/bin/bash (the backslash is only an escape in the rendeder to let you know the line continues below) Mar 15 at 21:41
14

Good question! When booting the machine hold down the left shift key. For more info follow this:

https://wiki.ubuntu.com/RecoveryMode

1
  • 1
    Recovery mode refuses to load just like the usual mode. May 7, 2012 at 4:01
5

Not sure why the instruction is not permanent.

To make it permanent edit "/etc/default/grub"

pico /etc/default/grub

Make the same changes...

update-grub

I changed the line "ro quiet splash "

to "ro text single " and i start GUI with

startx
1
  • 17
    It's not supposed to be permanent, it's damage control. Nov 12, 2013 at 11:49
0

slm's solution worked for me in Ubuntu 20.04 when I had changed the ownership of the entire /etc directory.

I followed the instructions here (in the Alternate Root Shell Method section) and by the grace of Jesus I could boot in SINGLE USER MODE. Then I could get into the root shell without the root password (which Ubuntu doesn't give you).

This is done (roughly) as follows:

  1. reboot
  2. enter the GRUB console by pressing shift (left, right, or both?) during the boot splash
  3. select the regular kernel image you always boot from (this wasn't in the top-level menu, but in a menu 1 level deep)
  4. press e
  5. go to the line that starts with linux and move the cursor to the end
  6. remove the part that says ro quiet splash (or something like that) and add this at the end of the line: rw init=/bin/bash
  7. press Ctrl-x to boot into that image with these boot parameters

That's roughly what allowed me to get into a root shell without the root password.

Don't let Ubuntu lock you out of your own computer with their "recommended measures" (ie. forcing you to use sudo, or not giving you the root user of your own computer). (Maybe there's a good reason for those, I don't know.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.