I had a similar problem, with an ASUS G75VW, Windows 7 on 1st SATA disk with GPT and UEFI, and Linux Mint on 2nd SATA disk (without GPT). After many hours of searching and experimenting, I found a hacky fix, where I don't have to reinstall windows.
I shrank a Linux partition on my 2nd disk using gparted, and added a tiny 20MB NTFS partition (because Windows used to work when there was an NTFS partition on this disk).
After that, I booted Windows 7 on the 1st disk, ran startup repair (which worked this time), then start windows normally. It now works with the 2nd disk enabled.
I can now, finally, boot to either Windows 7 or grub->Linux through the UEFI boot menu. After all that trouble, I don't care to try booting windows 7 on GPT via Grub 2 at the moment! All this trouble, just so I can play some Windows games!
This was a real annoyance, it took me a long time to find this hacky fix.
I think the problem was due to:
- Windows is faulty (and they couldn't be bothered fixing it), see point 3.
- Windows was installed with multiple SATA drives connected
- Windows does not always register SATA drives in order. I saw this with diskpart.
- During boot, Windows expects to find some Windows partition on the disk it regards as 'first' (which was my 2nd SATA disk), even if it is empty.
- Perhaps MS deliberately neglected to fix this bug, as most users would blame Linux.
The problem was not caused by:
- Anything on the 2nd disk - it worked when that disk was removed.
- Linux / grub 2 install - I told Linux not to install anything on the 1st disk.
- Windows MBR or EFI boot files or anything on the 2nd disk. There is no sign of Windows on the 2nd disk except that empty NTFS partition I created.
To fix this more cleanly, with more effort, I might reformat the disks, disable the 2nd SATA disk in BIOS / UEFI (or physically unplug it), then install Windows 7 again from scratch. I suppose it would not then register the disks the wrong way around. I'm too lazy to try this, but I guess it would work.
I would like to know how to fix this nicely. I guess would have to somehow fiddle the Windows registry, so that the Windows disk order matches the SATA disk order, as it should.