How do I boot into a root shell?

When booting to the graphical desktop fails we sometimes are recommended to boot into a "root shell" or to boot in "recovery mode".

How do I do that?


Solution 1:

for 12.04.3 LTS and later

During boot, press and hold Shift (for BIOS) or ESC (for UEFI). This will bring up the Grub2 menu from where we can select "Advanced options for Ubuntu".

enter image description here

After that we will be able to select the kernel we wish to boot in "Recovery mode":

enter image description here

This will lead us to the advanced options. By selecting "Enable networking" we gain access to our network and the internet for upgrades or downloads, and we will also mount our hard drives in read/write mode in case we need to edit files.

enter image description here

After the network has loaded, and fielsystems were mounted we will be presented again with the menu, from where we can choose "Drop to a root shell prompt":

enter image description here

Note that we are root in this shell. Hence no sudo is needed for administrative tasks. This also means we have full access to all files, and we may cause irreversible damage to our system if we made a mistake.

If we had not enabled read/write access with "Enable networking" the filesystem will be mounted read only, and we are unable to edit files.

In case we don't have access to a network, or this was not desired, we can remount our filesystem(s) giving write access with the following command:

mount -o rw,remount /

From the root shell type exit to go back to the menu.

for 12.04.0 LTS or earlier

During boot, press and hold Shift (for BIOS) or ESC (for UEFI). This will bring up the Grub2 boot menu from where we can select "recovery mode" (usually the second boot entry).

enter image description here

This will lead to the Grub2 recovery menu:

enter image description here

"Drop to root shell prompt" gives you a command line root environment from where you can access your files as root (no sudo required). After having done your work on your files you can leave the command line shell by

exit

Choose "Resume normal boot" to proceed booting as usual.


Note: see this question for a solution when the Grub recovery menu does not load the shell.