Next: Firmware stalls instead of booting GRUB, Up: Error messages produced by GRUB [Contents][Index]

### 22.1 GRUB only offers a rescue shell

GRUB’s normal start-up procedure involves setting the ‘`prefix`’ environment variable to a value set in the core image by `grub-install`, setting the ‘`root`’ variable to match, loading the ‘`normal`’ module from the prefix, and running the ‘`normal`’ command (see normal). This command is responsible for reading `/boot/grub/grub.cfg`, running the menu, and doing all the useful things GRUB is supposed to do.

If, instead, you only get a rescue shell, this usually means that GRUB failed to load the ‘`normal`’ module for some reason. It may be possible to work around this temporarily: for instance, if the reason for the failure is that ‘`prefix`’ is wrong (perhaps it refers to the wrong device, or perhaps the path to `/boot/grub` was not correctly made relative to the device), then you can correct this and enter normal mode manually:

    # Inspect the current prefix (and other preset variables):
    set
    # Find out which devices are available:
    ls
    # Set to the correct value, which might be something like this:
    set prefix=(hd0,1)/grub
    set root=(hd0,1)
    insmod normal
    normal

However, any problem that leaves you in the rescue shell probably means that GRUB was not correctly installed. It may be more useful to try to reinstall it properly using `grub-install device` (see Invoking grub-install). When doing this, there are a few things to remember:

- Drive ordering in your operating system may not be the same as the boot drive ordering used by your firmware. Do not assume that your first hard drive (e.g. ‘`/dev/sda`’) is the one that your firmware will boot from. `device.map` (see The map between BIOS drives and OS devices) can be used to override this, but it is usually better to use UUIDs or file system labels and avoid depending on drive ordering entirely.
- At least on BIOS systems, if you tell `grub-install` to install GRUB to a partition but GRUB has already been installed in the master boot record, then the GRUB installation in the partition will be ignored.
- If possible, it is generally best to avoid installing GRUB to a partition (unless it is a special partition for the use of GRUB alone, such as the BIOS Boot Partition used on GPT). Doing this means that GRUB may stop being able to read its core image due to a file system moving blocks around, such as while defragmenting, running checks, or even during normal operation. Installing to the whole disk device is normally more robust.
- Check that GRUB actually knows how to read from the device and file system containing `/boot/grub`. It will not be able to read from encrypted devices with unsupported encryption scheme, nor from file systems for which support has not yet been added to GRUB.

Next: Firmware stalls instead of booting GRUB, Up: Error messages produced by GRUB [Contents][Index]