Creating A Dual-Boot System On RAID10 (Ubuntu/Windows)

I just bought a new computer and I want to run Ubuntu 8.10 and Vista. I'm really afraid to loose some of my data when a harddrive dies, so I decided to go for a RAID10-setup. Most modern motherboards support RAID0,1,5 and 10.

After assembling my new computer, I discovered that the motherboard didn't have a true hardware-RAID-controller. Instead it's just software-RAID, sometimes called fakeraid. If I was installing a Linux-only-system, I wouldn't care and just use the Linux software-Raid options. But this time, my system has to be dual-boot.

The installation wasn't very smooth, but finally it works. I assume that I'm not the only one with this problem, so I decided to write down my experiences.

My Setup:

  • Asus P5Q - intel ich10r southbridge
  • 4x Seagate 500Gb 32Mb SATA

My disks are empty. If you follow my steps, your disks will be completely wiped. Please back up your data first! These steps worked for me. I cannot guarantee that these steps will work for you too. You'll need a good knowledge of Linux to perform these steps.

 

Step 1: creating RAID set in BIOS

After powering up the system, press CTRL-I to go to the Intel Matrix Storage Manager.

  • Choose create RAID-volume.
  • Choose a name, for example: diskset. Don't use numbers, some installation scripts in Ubuntu check for numbers in the disknames to determine if its a disk or a partition. I made the mistake to choose diskset1 as name. I wasn't able to rename the RAID volume, so I had to start all over!
  • Choose RAID10, 64k stripe-size.

Your RAID set is now created.

 

Step 2: install Microsoft Windows

This step is pretty straight-forward. Vista recoqnizes the RAID set and displays it as 1 single disk. During the install, create a partition for Windows and leave enough diskspace for Linux.

 

Step 3: Ubuntu Intrepid 64bit

This is the hard part. It looks like there is a bug in the Ubuntu version of libparted. Due to this bug, the RAID10 disk is not visible during the installation. I followed the following steps to succesfully install Linux:

  • Boot using the normal live/installation disk.
  • Open a terminal:

sudo su -
apt-get update
apt-get install dmraid

  • Now check for your RAID disk. It should be visible in /dev/mapper. You will also see 2 RAID0 disks. These are just 2 parts of the RAID10 disk.
ls -l /dev/mapper/

[email protected]:~# ls -l /dev/mapper/
crw-rw---- 1 root root  10, 60 2008-12-21 15:54 control
brw-rw---- 1 root disk 254,  2 2008-12-21 15:54 isw_bfgggbebhf_diskset
brw-rw---- 1 root disk 254,  1 2008-12-21 15:54 isw_bfgggbebhf_diskset-0
brw-rw---- 1 root disk 254,  3 2008-12-21 15:54 isw_bfgggbebhf_diskset1
brw-rw---- 1 root disk 254,  0 2008-12-21 15:54 isw_bfgggbebhf_diskset-1

  • diskset is the RAID10 device.
  • diskset-0 and diskset-1 are the RAID0 disks.
  • diskset1 is the Windows partition on the RAID10 disk.

The installation script uses the command parted_devices to get all available devices, but parted_devices doesn't show the RAID10 disk. We have to patch libparted to solve this problem. It seems that an Ubuntu-specific patch is causing the trouble.

parted_devices  #(to see the devices before the patch)
cd /root
mkdir src
cd src
apt-get build-dep parted
apt-get source parted
cd parted-1.8.8.git.2008.03.24

Edit debian/patches/00list and place a # before patch-dmraid. This will disable the faulty patch.

apt-get install fakeroot
dpkg-buildpackage -rfakeroot
cd ..
dpkg -i libpart*.deb
parted_devices

If everything went well, you will see the RAID10 device now.

Now you can install Ubuntu with the normal installer.

After the installation, you have to manually install grub.

sudo su -
mkdir /target/
mount /dev/mapper/isw_bfgggbebhf_diskset5 /target
mount --bind /dev/ /target/dev
mount -t proc proc /target/proc
mount -t sysfs sys /target/sys
chroot /target
grub

At the grub prompt, do the following:

device (hd0)  /dev/mapper/isw_bfgggbebhf_diskset
find /boot/grub/stage1

This wil return the device which contains the grub files.

root (hd0,x)
setup (hd0)
exit

Grub is now installed, but isn't properly configured yet.

  • Edit /boot/grub/menu.lst.
  • Add Windows Vista:
title           Windows Vista
root            (hd0,0)
makeactive
chainloader     +1
  • Edit # groot: # groot=(hd,4)
  • Edit kopt: # kopt=root=/dev/mapper/isw_bfgggbebhf_diskset5 ro
update-grub

DONE! Now everything should work. Reboot and try your new setup.

Share this page:

Suggested articles

6 Comment(s)

Add comment

Comments

By: Seth Baker

I didn't think Linux supported Fakeraid, but it looks like the dmraid package does support about a dozen adapters. I thought it was particularly interesting what you discovered with libparted. I think I worked around this issue in my software Raid 10 howto with a hard link, I'm curious if it works in your howto. If someone is going to try this guide, first try this command instead of rebuilding parted: With your apropriate raid device  "ln /dev/mapper/blabla /dev/sde" Then try the installer. Thanks for this bit of knowlege.

By:

I have a Dell XPS 710 with RAID 0 and had this same issue that I fought with for the longest time. Resolved it finally by using the 8.10 Alternate CD which has DMRAID built into it. Found the RAID right way and install was a breeze.

 

Jim

By: Mnemonic

In my installations it was called parted-dmraid, but other than that for now it looks like it is working great .. Thanks.

By: Mnemonic

I Could not install grub using this guide. I got an Error 22.

I first had to correct the hd0 in /boot/device.map to  /dev/mapper/isw_bfgggbebhf_diskset

And also edited /boot/grub/menu.lst so that the root devices in the boot options pointed to the correct (hd0,x)

I installed dmraid in the chrooted environment "apt-get install dmraid" and scanned for devices "dmraid -ay"

By: HJ

To disable the faulty patch in Lucid, edit ./debian/patches/series and comment the line 'dmraid.patch'

By: HJ

You also have to comment the line "fix-dmraid-regression.patch". Probably Ubuntu Maverick (10.10)