Your GRUB configuration is set up for booting Windows in BIOS mode, but this won't work because you've clearly got an EFI-mode installation of Windows. There are a number of possible solutions. Here are a couple....
First, you could edit the file called /etc/grub.d/40_custom
and add an entry like this:
menuentry "Windows 7 (custom)" {
insmod part_gpt
insmod chain
set root='(hd0,gpt3)'
chainloader /EFI/Microsoft/Boot/bootmgfw.efi.grb
}
Then type sudo update-grub
. With any luck that will create a new GRUB entry called "Windows 7 (custom)" that should work. This isn't guaranteed, though; GRUB is pretty finicky and flaky about launching Windows. What works on one system may not work on another. You'll also probably continue to have the non-functional entry in the GRUB menu.
A second option is to install rEFInd, which is an alternative to GRUB. If you install it via the Debian package, it should set itself up automatically and launch the next time you boot; however, the Windows icon in its menu will probably launch GRUB, thanks to the way the Boot Repair tool "fixed" things. To fix this problem, you can type the following commands in Ubuntu:
cd /boot/efi/EFI/Microsoft/Boot/
cp bootmgfw.efi.grb bootmgfw.efi
Thereafter, the Windows entry should boot Windows. You'll also have an entry with an Ubuntu icon that will boot GRUB and one or more Linux penguin icons that will launch Ubuntu directly. If the penguin icons work to your satisfaction and you don't want the GRUB icon any more, you can remove it by deleting the /boot/efi/EFI/ubuntu
directory or by editing /boot/efi/EFI/refind/refind.conf
, uncommenting the dont_scan_dirs
or dont_scan_files
line, and adding entries to them to keep GRUB out of the menu.