Courting Disaster with fakeRAID10 (Dual Boot Win7,Ubuntu14.10)

2

1

Over the past several weeks (!), I have been trying to set up a dual boot with Windows 7 Enterprise and Ubuntu Desktop 14.10. The motherboard is a Sabertooth x79, and I wanted to install everything on a RAID10 array comprising four 2TB HDD.


Background/My Process/Description:

The x79 supports some kind of RAID, which I initially assumed was hardware-based. By changing a switch in the BIOS, you can change from AHCI to RAID. You can then set up a RAID array by pressing CTRL+I during boot (the previous owner of the computer had adjusted overclocking settings in the BIOS, which was preventing this menu appearing; resetting to defaults fixed that. Also, you need to have the BIOS's RAID option chosen).

Installing Windows 7:

Windows doesn't have drivers for the RAID configuration, so on boot it doesn't find any disks. Copying the motherboard's drivers onto a USB stick (or using the newer one here) and letting Windows use these drivers during the install (you must navigate to the directory directly; Windows doesn't search folders for drivers recursively) allows Windows recognize the RAID10 array as a single drive and install without incident.

Installing Ubuntu Desktop:

Setting up Ubuntu was more of a pain. Although I could boot from a flash drive image, Ubuntu recognized the array--but not as a single disk: as two RAID1 (I think; might've been RAID0 instead, although this would make less sense) disks with several partitions. Thus, Ubuntu was recognizing only one level of the recursive RAID.

Some more research indicated that this meant that the RAID was not actually a hardware RAID but one step higher: a fakeRAID, which isn't OS-managed like a software RAID nor managed with (completely) dedicated hardware like a hardware RAID.

After many false starts for how to proceed, I finally found this stackexchange post. Essentially, you connect to the internet, disable dmraid, and install mdadm instead. You then call mdadm --assemble --scan to get the system to recognize the fakeRAID as a single drive. Then, you use gparted to partition it. After several attempts, I got that working, putting a small EXT4 and a swap partition immediately after the two NTFS partitions created by Windows (the larger of which I shrunk).

When it came time to actually install Ubuntu, however, the installer outright crashed midway (I looked through the log and it looked GRUB-related). I tried it again with the same result.

Since the Ubuntu USB evidently doesn't save state, rebooting shows the RAID10 array as separate RAID arrays again (since mdadm doesn't exist anymore). As a last-ditch effort (and this is the key part), I then installed Ubuntu onto one of the EXT4 partitions. The install completed successfully.

Now, the system happily boots into Windows or Ubuntu.


However, I believe this is courting disaster.

The problem is that I (think I )only installed Ubuntu onto one of the arrays within the RAID10 array.

  • If it was indeed two RAID1s exposed to the OS, then it seems like I installed Ubuntu onto one half of the stripes as if they were contiguous. Note: the boot could still be successful if Ubuntu believes the RAID10 are separate RAID1s immediately after boot.
  • If it was two RAID0s exposed to the OS (i.e. the controller flipped the view, so it looks like RAID01), then I only installed Ubuntu onto one mirror (so, Ubuntu is not really backed up, and in any case if reads happen from the unwritten RAID0, then something nasty will happen).

Before I put any real data on this, I need to know what happened and whether the OSes are set up correctly. My questions (in increasing priority):

  1. Is my analysis correct? Have I only installed Ubuntu onto half of the fakeRAID array? Or, does writing to one half of a fakeRAID array cause the hardware to write to the other automatically, even if the OS (in this case a LiveCD) wasn't smart enough to tell it to?
  2. If there is indeed a problem, is there a way to fix it (so that the data is written to the other half too)?
  3. Is there some kind of check-for-[fake]RAID-consistency I can run?

imallett

Posted 2014-11-22T20:08:14.097

Reputation: 237

No answers