5

Can I boot from a software RAID 1 (mirroring) drive in windows 7?

Windows 7 would not let me install to a software RAID volume so I installed to the first disk and then added the second disk afterwards.

They are now in synch and I can open the volume as a normal disk if I just boot from my old system.

However I can't boot from the mirrored volume. It says it can't find Windows\System32\winload.exe (0xc0000225) - even though the file IS there.

Is it possible to fix that or is it impossible to achieve what I want using software RAID?

(I have used Windows 7 Professional x64 both to create the RAID volume and on the RAID volume.

I want the mirroring primarily for the speed, simplicity and redundancy. It is 2X1 terrabyte identical drives.)

2 Answers 2

9

The setup you describe can be done and is even supported by Microsoft. But it must be done in a very specific way or it won't work. Microsoft has published an article on exactly how to do it (Note: this is a hot download link). It applies to Server 2008 but it applies equally to Windows 7.

To summarize, there are two issues at play here that you did wrong when you set things up:

First Issue:
Creating a mirrored volume requires you to convert both disks to dynamic. The BIOS of your computer does not understand dynamic disks. It simply boots whichever partition is marked "active" in the partition table. To solve this problem, Windows created a "fake" partition table when you did the conversion on the primary drive so that the BIOS would still see it and know how to boot. But I'm betting that when you added that second drive, it had no partitions on it (or you removed them) before you converted it. That fake BIOS partition table only gets created if a real, active, bootable partition exists WHEN THE DRIVE IS CONVERTED to a dynamic disk. If a drive has no partitions, the fake partition table does not get created, and there's no way to create one after the fact. The secondary drive therefore cannot be booted by the BIOS.

Second Issue:
With Microsoft, mirroring works at the volume level, not the disk level. The default setup for Windows 7 is to create a 100MB reserved partition that gets no drive letter, and the remaining space becomes drive C. Your Boot Configuration Data (BCD) store lives on that reserved partition. When you added the second drive you probably didn't create that reserved partition, so a BCD store does not exist on it. Even if you do create that partition, it cannot be mirrored. You must clone the contents manually to the second drive, and manually sync them again if your BCD store ever changes (fortunately that's rare).

If you read that document I linked to above carefully, you'll notice that they have you creating partitions on the 2nd drive and cloning the boot files before the step where you convert it to dynamic. They also have you manually adjusting the BCD store on the secondary drive as well (because if you boot off it, it's not the secondary anymore -- the first drive is).

Oh, and one more thing I should mention:
You do not gain any speed advantage when using a software RAID-1 in Windows. A real RAID controller treats both drives as equals and does reads and writes to both drives simultaneously. Windows' mirroring will ALWAYS do reads from whichever disk you booted from. The secondary drive is simply kept in sync but otherwise not used for anything. The feature only exists for fault tolerance so that a server can continue running if one of the drives fails. It's kind of pointless on a workstation in most cases.

2
  • I haven't actually tested this answer, but it seems good. Since there would be no speed boost from the software RAID I opted to just use the hard disks as normal disks. Commented Aug 8, 2015 at 12:48
  • One test mentioned here says there is a performance increase in read speed with Windows software RAID-1. Commented May 1, 2016 at 7:50
-4

The problem is that your OS is handling the RAID, which means that there is no array untill after it has booted. The only way to boot from a RAID array is to use a raid controller or your mother board. RAID capability and the way you set it up varies between motherboards, so you should look up information specific to your computer. In general, you can enter your motherboard's basic input output system, BIOS, by holding down a key such as F2 when your computer boots. This key is usaly listed on your computer's boot screen as "setup". From BIOS you can set up a RAID array if the mother board allows it. Again check the specific details regarding RAID support and BIOS for your motherboard.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .