Ubuntu – Why does Grub report two items for Windows 7

dual-bootgrub2windows 7

I did a clean install of Windows 7 on the same hard drive. I followed the instructions at:

http://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/

I followed the terminal instructions to restore grub bootloader.

Whenever I reboot. I see two entries of Windows 7 on Grub. I don't recall seeing this the last time. I am aware that Windows creates a 'System Reserved' partition (which is currently on sda1).

When I select either of the two boot options, Windows 7 boots fine (so it seems).

This is what update-grub returns:

$ sudo update-grub | tee ~/update-grub.txt
[sudo] password for christian:
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.8.0-29-generic
Found initrd image: /boot/initrd.img-3.8.0-29-generic
Found linux image: /boot/vmlinuz-3.8.0-27-generic
Found initrd image: /boot/initrd.img-3.8.0-27-generic
Found linux image: /boot/vmlinuz-3.8.0-19-generic
Found initrd image: /boot/initrd.img-3.8.0-19-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
Found Windows 7 (loader) on /dev/sda2
done

Will booting from the System Reserved cause any issues on Windows?

Why are there two entries of Windows 7 instead of 1? Should I have installed Windows 7 without creating a system reserved partition? Is that even an option?

I am on Ubuntu 13.04. My other Ubuntu machines only list down 1 entry for Windows 7. Ideally, if it had to list down 2 entries. It would be better if it displayed as:

Found Windows 7 (System Reserved) on /dev/sda1
Found Windows 7 on /dev/sda2

Can this changes be made via a Grub configuration file somewhere?

Best Answer

That's normal, though not often behavior. For Windows, GRUB detects loaders, not systems. In your case, there are loaders on system reserved partition and on Windows partition. You may want to delete one of those loaders, but I do not recommend to do this, because it can harm your system. Keeping both loaders is the safest decision.

You can even create more loaders, and all of them will be recognized! It is convenient to use them if you want to load different versions of Windows straight from GRUB. Just experiment with this command:

bcdboot C:\Windows /s D:

As it is typed, it will create loader on D: drive, which will load Windows from default location. Replacing C: and D: you can adjust which version to load and from where.

If you want to delete some loaders not using GRUB-Customizer (which sometimes gets out of development), look for Boot folder on Windows 7+ systems and ntloader file on XP and earlier systems.

Modern way is to delete corresponding files from EFI partitions or to disable them with efibootmgr.

Related Question