22 Error messages produced by GRUB ********************************** 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 (*note 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' (*note 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' (*note Device map::) 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. 22.2 Firmware stalls instead of booting GRUB ============================================ The EFI implementation of some older MacBook laptops stalls when it gets presented a grub-mkrescue ISO image for x86_64-efi target on an USB stick. Affected are models of year 2010 or earlier. Workaround is to zeroize the bytes 446 to 461 of the EFI partition, where mformat has put a partition table entry which claims partition start at block 0. This change will not hamper bootability on other machines.