I have a bit of a puzzle, and I don't know whether to blame the motherboard maker, Microsoft, or -- this is a really distant third choice, obviously -- myself. (That being said, UEFIs and GPT drives are new to me, so that distant third choice might not be as distant as I'd hoped.)
I recently set up a new computer for a friend. It has an ASRock z97 Extreme4 motherboard. I managed to install Windows 7 Pro x64 in UEFI mode on a "single-partition" 4TB GPT-format drive. So far, so good.
Minimal downtime and minimal data loss are my friend's top priorities. Because we've had bad experiences with both hardware and software RAID 1 (mirroring) in the past, RAID was out and cloning was in. (Over ten years, we had close to zero downtime and data loss with the cloning system on his previous XP system.)
I installed three mobile racks in the chassis. The top one is for the 4TB "original system" drive. The middle one is for a 4TB "resident clone" of the original system drive. The bottom one is for two additional 4TB "swapped clones" that will be cloned to on alternate days and stored in a waterproof, fireproof data safe when not in use. The "resident clone" will stay in the computer and, in addition to periodically being recloned to, will have data files mirrored to it from the original system drive in close to real time. So far, so good.
The top mobile rack is connected to SATA port 0, the middle mobile rack is connected to SATA port 1, and the bottom mobile rack is connected to SATA port 2, so:
The thing is, you want to test a clone's bootability from time to time, and that's where the puzzle comes in.
If we always boot to the original system drive, in the top rack (SATA port 0), no problem. We can start the system with all of the drives powered on, and the system will continue to boot from the correct drive time after time.
If we try to test a clone's bootability by shutting down, leaving the clone in its original mobile rack, powering off the other drives, and restarting, still no problem (for the moment). The system will boot to the clone.
The problem is, once we've booted from a different drive connected to a different port, the system wants to continue booting from that drive and that port. It doesn't matter what the UEFI hard drive boot order is or (if you manually trigger the boot menu at startup) what AHCI port we choose, the system will try to boot from the same drive and port it booted from the previous time.
For example, if the resident clone (port 1) is left powered on after its bootability is tested, and the original system drive (port 0) is powered back on, and the system is started, the system will boot to the clone. And if only the original system drive (port 0) is powered on at startup, the system won't find a bootable drive anywhere. (To reset the system after it fixates on booting from the wrong drive and port, you apparently have to cut mains power to the chassis.)
This is my first experience with a UEFI system, but this behavior strikes me as fishy and I suspect that ASRock's UEFI is at fault. Shouldn't the hard drive boot order and manual boot menu actually do something? Is the UEFI immediately handing over boot control to Windows and allowing Windows to decide what drive and port to boot from? And if so, why bother having a hard drive boot order or offering a boot menu? For Linux? Do the hard drive boot order and manual boot menu only work with MBR drives, not GPT drives? And was I supposed to know that?
For the time being, there is a relatively easy workaround (for us, only because we have mobile racks):
So, what's the verdict? Does ASRock's UEFI have a major bug? Or is this inability to choose a boot drive through the UEFI the result of a Windows or GPT or UEFI design choice? Or have I done something wrong? Let 'er rip, guys and gals. After the hair-pulling hassle and humongous time-suck I went through nailing down what was going on, I can take just about anything.
Oh, and I almost forgot: of course I've been in touch with ASRock tech support. They told me to connect the mobile racks to SATA ports 0, 1, and 2 instead of the original 2, 3, and 4. It made no difference whatsoever.
Anyway, if anyone has any insights into this problem, I'd be very grateful to hear them. Thanks!
I recently set up a new computer for a friend. It has an ASRock z97 Extreme4 motherboard. I managed to install Windows 7 Pro x64 in UEFI mode on a "single-partition" 4TB GPT-format drive. So far, so good.
Minimal downtime and minimal data loss are my friend's top priorities. Because we've had bad experiences with both hardware and software RAID 1 (mirroring) in the past, RAID was out and cloning was in. (Over ten years, we had close to zero downtime and data loss with the cloning system on his previous XP system.)
I installed three mobile racks in the chassis. The top one is for the 4TB "original system" drive. The middle one is for a 4TB "resident clone" of the original system drive. The bottom one is for two additional 4TB "swapped clones" that will be cloned to on alternate days and stored in a waterproof, fireproof data safe when not in use. The "resident clone" will stay in the computer and, in addition to periodically being recloned to, will have data files mirrored to it from the original system drive in close to real time. So far, so good.
The top mobile rack is connected to SATA port 0, the middle mobile rack is connected to SATA port 1, and the bottom mobile rack is connected to SATA port 2, so:
- SATA port 0 = top mobile rack = original system drive
- SATA port 1 = middle mobile rack = resident clone drive
- SATA port 2 = bottom mobile rack = swapped clone drives
- AHCI port 0 = SATA port 0 = top mobile rack = original system drive
- AHCI port 1 = SATA port 1 = middle mobile rack = resident clone drive
- AHCI port 2 = SATA port 2 = bottom mobile rack = swapped clone drives
The thing is, you want to test a clone's bootability from time to time, and that's where the puzzle comes in.
If we always boot to the original system drive, in the top rack (SATA port 0), no problem. We can start the system with all of the drives powered on, and the system will continue to boot from the correct drive time after time.
If we try to test a clone's bootability by shutting down, leaving the clone in its original mobile rack, powering off the other drives, and restarting, still no problem (for the moment). The system will boot to the clone.
The problem is, once we've booted from a different drive connected to a different port, the system wants to continue booting from that drive and that port. It doesn't matter what the UEFI hard drive boot order is or (if you manually trigger the boot menu at startup) what AHCI port we choose, the system will try to boot from the same drive and port it booted from the previous time.
For example, if the resident clone (port 1) is left powered on after its bootability is tested, and the original system drive (port 0) is powered back on, and the system is started, the system will boot to the clone. And if only the original system drive (port 0) is powered on at startup, the system won't find a bootable drive anywhere. (To reset the system after it fixates on booting from the wrong drive and port, you apparently have to cut mains power to the chassis.)
This is my first experience with a UEFI system, but this behavior strikes me as fishy and I suspect that ASRock's UEFI is at fault. Shouldn't the hard drive boot order and manual boot menu actually do something? Is the UEFI immediately handing over boot control to Windows and allowing Windows to decide what drive and port to boot from? And if so, why bother having a hard drive boot order or offering a boot menu? For Linux? Do the hard drive boot order and manual boot menu only work with MBR drives, not GPT drives? And was I supposed to know that?
For the time being, there is a relatively easy workaround (for us, only because we have mobile racks):
- When we want to test a clone's bootability, we have to physically swap it to the top mobile rack (port 0) and start the computer with only that drive powered on.
- When we want to go back to booting to the original system drive after the test, we have to physically swap it back to the top mobile rack (port 0) and start the computer with only that drive powered on.
- Otherwise, so long as we want to continue to boot to the original system drive, it's fine to start the computer with the other drives powered on -- the system will continue to boot from the original system drive each time.
So, what's the verdict? Does ASRock's UEFI have a major bug? Or is this inability to choose a boot drive through the UEFI the result of a Windows or GPT or UEFI design choice? Or have I done something wrong? Let 'er rip, guys and gals. After the hair-pulling hassle and humongous time-suck I went through nailing down what was going on, I can take just about anything.
Oh, and I almost forgot: of course I've been in touch with ASRock tech support. They told me to connect the mobile racks to SATA ports 0, 1, and 2 instead of the original 2, 3, and 4. It made no difference whatsoever.
Anyway, if anyone has any insights into this problem, I'd be very grateful to hear them. Thanks!
My Computer
At a glance
Windows 7 Professional x64 SP1Intel Core i7-479032GB DDR3MSI nVidia GeForce GTX 750 Ti
- Computer type
- PC/Desktop
- Computer Manufacturer/Model Number
- CyberPowerPC Custom z97
- OS
- Windows 7 Professional x64 SP1
- CPU
- Intel Core i7-4790
- Motherboard
- ASRock z97 Extreme4
- Memory
- 32GB DDR3
- Graphics Card(s)
- MSI nVidia GeForce GTX 750 Ti
- Hard Drives
- 4 x HGST 4TB Deskstar SATA III (desktop version)
- Antivirus
- Avast Free
- Browser
- Firefox