How to install Windows 7 onto a software RAID array?

JustWhitman

Senior member
Apr 17, 2002
546
0
0
I've done some Google searching and so far I haven't been able to find an answer for exactly what I'm trying to do, and perhaps it's not possible, but hopefully someone here can help me answer that.

There are plenty of guides on setting up a software RAID array once Windows 7 is installed, but the actual Windows installation itself is not on the array. So I'm trying to figure out how to set up the software RAID array and then install Windows onto it, it at all possible.

I know I can use the built-in "fake RAID" controller on my motherboard but I'm dual-booting with Linux and I would rather use Linux's more flexible software RAID rather than the limited motherboard RAID. Since I can't use both I'd rather opt to put both OS's into a software RAID array.

--edit--
To clarify since it seems I'm not being clear enough. I want to install each OS on their own implementation of software RAID, i.e. have both on the same set of drives, just separate partitions. I'm not trying to put both OSes on a common software RAID array as I already know this isn't possible.
 
Last edited:

AnonymouseUser

Diamond Member
May 14, 2003
9,943
107
106
dual-booting with Linux and I would rather use Linux's more flexible software RAID

Windows won't work with a Linux software RAID array. You'll need to use the BIOS RAID if you wish both OSes to use it, and even then I'm not entirely sure it will work properly.

BIOS RAID

BIOS RAID (also known as"quasi-hardware RAID") is a form of software RAID for which the RAID configuration is managed in part or in full by the storage controller's BIOS but which is not true hardware RAID. For BIOS RAID to work, a specific driver is needed at the operating system level.

BIOS RAID is often nicknamed "fake RAID" as it is easily mistaken for hardware RAID and vendor of controllers that offer BIOS RAID often do little to educate buyers about the fact that it is not hardware RAID and that specific OS drivers are necessary for its RAID functionality to function. A somewhat more neutral way of describing it would be "BIOS-assisted software RAID".

I'm not sure what would be the best way to do this, but I'm leaning towards a bootable flash drive for booting Linux (at minimum, install /boot to flash). You'll then have to hope the different OSes don't screw up the array for the other OS.
 

JustWhitman

Senior member
Apr 17, 2002
546
0
0
Yes, I'm aware that Windows won't run on a Linux software RAID array. I'm not trying to use Linux's software implementation for Windows. Linux would be on it's software RAID implementation and Windows would (if possible) be on it's version of software RAID.

Perhaps I should have clarified a little better. I'm saying I want to use software RAID rather than fake RAID because Linux would be my main OS and Linux's software RAID is more flexible than having to use fake RAID because Windows can't install to software RAID. So I don't want to cripple Linux just because Windows is forced to use fake RAID.

The more reading I do though it doesn't appear as if Windows is capable of installing to a software RAID array. So it's either use fake RAID and work linux around that, or use software RAID for linux and just install Windows as normal to a non-RAID partition.

I guess what I could do is Software RAID linux:

/dev/sda&b1 = /boot RAID1
/dev/sda&b2 = / RAID0
/dev/sda&b3 = LVM2 RAID 0 (for /home and some others like /tmp /opt /var and swap if possible, not sure if swap can be in LVM though?)

then use:
/dev/sda4 = Windows 7
/dev/sdb4 = Something else for Windows (My Docs, Backups, etc.)
 

Fardringle

Diamond Member
Oct 23, 2000
9,200
765
126
Software RAID has to be managed by the operating system that is currently running, so to use Linux on software RAID, Linux has to be actively running. To use Windows and software RAID, Windows has to be actively running. You can't have two different operating systems managing the same RAID array because he way they create, use, and manage RAID is completely different. The only way to have two operating systems on the same array is to use hardware RAID (either on the motherboard or a RAID card) or have one OS be the host system and the other running in a virtual machine inside the host OS.

If you really want to have both operating systems on a software raid array, then you'll need to set up two completely separate sets of disks and install each operating system on its own array.
 

JustWhitman

Senior member
Apr 17, 2002
546
0
0
Once again, I'm well aware that they can't share a common software RAID array and am NOT trying to accomplish such.

Linux on it's own implementation of software RAID

Windows on it's own implementation of software RAID

Both on the same drive(s), just separate partitions.

NOT Windows and Linux sharing a common software RAID array. I know this isn't possible. Hopefully this will prevent any further responses assuming such.

Maybe I just shouldn't have mentioned Linux as I already know how to set it up with a software RAID array. Guess I just should have simplified it and asked is it possible to install Windows 7 on a software RAID array? Forget Linux was even mentioned folks, as it's really not part of the question, was simply explaining my desired setup.
 
Last edited:

JustWhitman

Senior member
Apr 17, 2002
546
0
0
Windows 7 can use software striping, it's not just limited to concatenated RAID or "RAID JBoD" or extending a logical volume across multiple physical drives. However, as I've been trying to convey in several posts, Windows doesn't appear to be able to setup the software RAID striping prior to the install. So therefore you can't actually install Windows itself to the striped array, but once Windows is installed you can setup two partitions on separate drives to use striping, but then obviously the OS isn't on this striped array.

I'm just trying to make absolutely certain that it's not possible to setup Windows' software striping prior to the install. Because if it's possible then yes, what I want will work. If it's not, then obviously it won't. Does this make better sense or am I still confusing people?

I would assume the only way to do it would be from the command prompt prior to installation, since Windows dumbs down everything for the the common user and such tasks would definitely not be visible since it would probably confuse most people.
 

AnonymouseUser

Diamond Member
May 14, 2003
9,943
107
106
I recently setup Win 7 with RAID 0, but that took three disks. Since I didn't want to trash my current Debian install, I did not want to use the BIOS RAID. It was not possible to create and install to software RAID during setup, and once Win 7 was setup I could only use the full disks for the RAID array, not partitions, so it would be impossible to share the RAID disks between Linux and Windows.
 

JustWhitman

Senior member
Apr 17, 2002
546
0
0
I recently setup Win 7 with RAID 0, but that took three disks. Since I didn't want to trash my current Debian install, I did not want to use the BIOS RAID. It was not possible to create and install to software RAID during setup, and once Win 7 was setup I could only use the full disks for the RAID array, not partitions, so it would be impossible to share the RAID disks between Linux and Windows.

Thank you. Didn't think it was possible given my searches but wanted to know if anyone had done it.

Would my partition scheme described above work though, without putting Windows in an array?

Linux Software RAID -
/dev/sda&b1 = /boot RAID1
/dev/sda&b2 = / RAID0
/dev/sda&b3 = LVM2 RAID 0 (for /home and some others like /tmp /opt /var and swap?)

Windows -
/dev/sda4 = Windows 7
/dev/sdb4 = Something else for Windows (My Docs, Downloads, Backups, etc.)
 

AnonymouseUser

Diamond Member
May 14, 2003
9,943
107
106
Thank you. Didn't think it was possible given my searches but wanted to know if anyone had done it.

Would my partition scheme described above work though, without putting Windows in an array?

Linux Software RAID -
/dev/sda&b1 = /boot RAID1
/dev/sda&b2 = / RAID0
/dev/sda&b3 = LVM2 RAID 0 (for /home and some others like /tmp /opt /var and swap?)

Windows -
/dev/sda4 = Windows 7
/dev/sdb4 = Something else for Windows (My Docs, Downloads, Backups, etc.)

You cannot boot Linux from a software RAID partition, so you need to leave /dev/sda&b1 non-RAID. The reason for this is because it needs to load the drivers (stored in /boot) before it can access the RAID disks. This is why I suggested a flash drive for /boot, so the entire disk could be used for RAID.

Everything else should work, though.
 

JustWhitman

Senior member
Apr 17, 2002
546
0
0
You cannot boot Linux from a software RAID partition, so you need to leave /dev/sda&b1 non-RAID. The reason for this is because it needs to load the drivers (stored in /boot) before it can access the RAID disks. This is why I suggested a flash drive for /boot, so the entire disk could be used for RAID.

Everything else should work, though.

You can't boot from a RAID 0 but you can from a RAID 1. Additionally it has to use metadata v0.90 as opposed to 1.x, unless you use an initramfs/initrd as current kernels only support auto-detecting arrays on v0.90. I think you may also have to use Grub2 if you're not using metadata v0.90. I had my Gentoo install setup this way and it worked fine (RAID 1, metadata v0.90, Grub 0.97).

So all should be good then. I'll know soon enough though as I'm prepping everything now and then installing Windows then Gentoo.
 

AnonymouseUser

Diamond Member
May 14, 2003
9,943
107
106
You can't boot from a RAID 0 but you can from a RAID 1. Additionally it has to use metadata v0.90 as opposed to 1.x, unless you use an initramfs/initrd as current kernels only support auto-detecting arrays on v0.90. I think you may also have to use Grub2 if you're not using metadata v0.90. I had my Gentoo install setup this way and it worked fine (RAID 1, metadata v0.90, Grub 0.97).

So all should be good then. I'll know soon enough though as I'm prepping everything now and then installing Windows then Gentoo.

You are correct. I didn't know RAID 1 could boot, but it makes sense since the data is mirrored instead of split.