I just got a new PC (HP P7-1380T) with Windows 7 preinstalled. The machine is set up for EFI booting without 'secure boot'. I had planned to install my old SATA drive (dual-boot XP and Linux with grub in the MBR) as a secondary drive to copy both windows and linux files over to the new drive - and then leave it in as a backup device. The problem is that I can't install the old drive in a way that both Windows and Linux can see it.
The machine came with its hard drive in SATA0 and a DVD/ROM drive in SATA2. SATA1 and SATA3 are free.
When I plug my old drive into SATA1, I can't boot Windows 7. The EFI bootloader tries to boot from the old SATA1 drive instead of the new SATA0 drive. It gets as far as loading up the grub boot menu, at which point I power off to prevent further mischief. In SATA1, the old drive shows up in the BIOS, and when I boot Linux from a live CD, it sees it as /dev/sdb.
When I plug my old drive into SATA3, it doesn't show up in the BIOS, and when I boot the live linux CD, it does not see the drive either. But with the drive in SATA3, Windows 7 boots, and it sees the old XP partition and makes it available as drive F:.
I would prefer to use SATA1, obviously, so Linux can use the drive, but so far, I can only have Windows or Linux see it, but not both. Why would the EFI Windows bootloader try to boot off of a secondary drive, when it's obviously set up to boot off of SATA0? Is there some tool I can use to change this behavior?