Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I recently install arch (hopefully successfully) on my machine. When I went to reboot however I had a problem. I got a black screen with text saying

Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

I have since googled looking for an answer. I almost found one here on the Ubuntu forums yet then I saw one of the comments saying it was untrue. There is also another answer but I'm not sure if I want to install from the live CD for fear of messing things up.

You would understand my fear if you too spent 7 hours setting this up after constantly running into partitioning, command, tutorial, and system problems. What a joy.

Anyone know of an easy solution to getting grub working?

share|improve this question
The second suggestion (with the liveCD and chroot) is probably worth trying. Or a variation on it: I'm not an arch user but have installed it before, and from what I remember, you might want to contemplate that suggestion in relation to the various stages of installing arch, some of which involve a chroot. If you can backtrack to a previous step booting the arch CD and then mounting and chrooting into your installation, you should be able to try grub-install. You don't have to repeat any of the steps, just use them as a guide to get chrooted in from a liveCD. – goldilocks Mar 29 '13 at 19:26
While I'm not at the computer right now I do believe I tried the grub install and it didn't work.- – Griffin Mar 29 '13 at 19:34
@Griffin It didn't work as in "grub-install" failed, or it didn't fix the problem? – derobert Mar 29 '13 at 20:09
@derobert grub-install wasn't a valid command\ – Griffin Mar 29 '13 at 20:21
@goldilocks Second one isn't working either – Griffin Mar 30 '13 at 0:40

A really annoying thing...

As apparently the directory /boot/grub/i386-pc was simply not in place, I finally solved the problem by copying the whole /usr/lib/grub/i386-pc to /boot/grub. That's all.

cp -r /usr/lib/grub/i386-pc /boot/grub
share|improve this answer

I just had this problem today after a fresh install of Mint 15.

The installer created /boot/grub/x86_64-efi modules but not the regular /boot/grub/i386-pc modules.

A re-installation of Grub from the Live CD fixed the issue.

Replace /dev/sda and /dev/sda1 with your boot device and boot partition and run the following commands from the Live CD:

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot
share|improve this answer
Haha! Thanks James but I've moved on. Sorry but I won't be able to test if this theory is true. – Griffin Aug 3 '13 at 21:43

Thanks for your post. I solved a nearly identical error message -- "file '/grub2/i386-pc/normal.mod' not found" after a new installation of Linux CentOS 5.11 on an old Dell Optiplex computer with Windows Vista, in order to make a dual-boot system.

What complicated my situation was that I had already tried and failed to install the newer Fedora 20 distro, which uses GRUB2 instead of GRUB (LEGACY), on FEDORA default partitions. Then I tried to install CentOS directly over that, keeping the Windows partition and overwriting the FEDORA partitions.

During the CentOS installation, I left my first (Windows) partition alone (hd0,0) and created the /boot directory on a second (boot) partition (hd0,1). I then chose not to modify the MBR at the time and instead selected the other option (bootloader on another partition).

After what appeared to be successful installation, it rebooted into the error above.

I suspect that the boot information on the first partition kept pointing to the GRUB2 location. The CPU could not find normal.mod, perhaps because the previously created FEDORA00 partitions had been removed.

Here are my steps:

  1. Boot from my Centos 5 installation CD into rescue mode ("linux rescue").

  2. Mount the local drive: chroot /mnt/sysimage

  3. Switch to single-user mode: su

  4. Update the CentOS installation: yum update

  5. Use the emacs editor to add "Microsoft Windows Vista" to the grub.conf file: emacs /boot/grub/grub.conf, and make Vista the default OS.

    (NOTE: See www.cyberciti.biz/faq/grubconf-for-windows-vista-or-xp-dual-boot/ and https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/sn-medialess-editing-grub-conf.html.)

  6. Attempt to update the MBR: grub-install /dev/hda

  7. Reboot to an unidentified GRUB error, in which the CPU hung after displaying "GRUB".

  8. Reboot from the original Windows Vista installation disk (or other Windows recovery disk) and select the option to repair the disk. Receive message that the MBR has been repaired.

  9. Reboot correctly into Windows Vista.

I am sure that more elegant solutions exist, but this worked for me. I also attempted to download the GRUB to GRUB2 migration package, as described at http://help.ubuntu.com/community/Grub2/Upgrading, by trying:

$ yum install grub-pc

But it couldn't find the package. Perhaps I should have just tried yum install grub.

share|improve this answer

Adding to flittermice...

if you boot from a USB, and have the i386 folder, you can open the i386 folder on the broken partion as root and then copy the working i386 folder from the usb.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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