Grub2 fails to chainload Windows 7 with error "invalid signature"

I've built a new UEFI 64-bit system with both Windows 7 and Ubuntu 11.10 installed (on separate hard drives). I'd like to be able to boot Windows 7 from the grub menu, but I have so far been unsuccessful in getting grub to chainload it.

After getting the grub menu, I choose the option for the command line and I can see that bootmgfw.efi is at (hd1,gpt1)/efi/Microsoft/Boot/bootmgfw.efi. However, when I attempt to chainload I get an error:

grub> chainloader (hd1,gpt1)/efi/Microsoft/Boot/bootmgfw.efi
error: invalid signature

I am not sure whether I chose the UEFI boot option when I installed Linux from the LiveCD, and so I am wondering if the grub I have is perhaps unable to chainload in this manner? In any case I am not sure how to get the chainload to work.


As I began to suspect when I was writing my question, the issue is that Linux was installed using MBR, so that grub was unable to chainload an EFI Windows 7. I reinstalled Linux, this time making sure to select the UEFI boot option for the LiveCD from BIOS. With Linux now installed with an EFI grub, I was able to add a grub menu entry for Windows 7 and chainload successfully.

I used this link to create the menu entry for Windows 7.

After doing sudo vi /etc/grub.d/40_custom and adding the menu entry to the end of the file, don't forget to run sudo update-grub.