My RAID Notes

Portability

24 April 2007

In my previous computer, Cassini, I had a SATA RAID using the motherboard chipset. Actually, I understand that these are
actually Fakeraids in that the
calculations are done in software: either the BIOS for booting, and then the special driver for the OS.

Backup Software and Utilities

I found that special utility software, such as backup software, doesn’t handle that well. For example, Acronis
uses its own boot disc (the way to backup and restore the OS!) and doesn’t have drivers for all the
chipsets.

I got around that by using a BartPE boot CD, with the driver that I
normally use, rather than their supplied Linux-based boot CD.

Moving Drives

A more serious problem was in moving the drives to a new motherboard. How does the RAID layout work? Does it
simply interleave stripes or is there a special section with its own information in it? I had no idea, and could not find
any information on that.

Now, I have more information and a general solution. I am writing this to share it with those who follow.

I have a program called Restorer2000 that I had bought some time ago,
and I got an update notice for v3.3, and noticed that it has “virtual RAID” support. I decided to use that to recover/import the drives.

The first task was hooking up the two drives and getting them recognised by the OS. On this particular
motherboard/controller, rather than seeing drives not otherwise configured as normal drives, I had to configure them
through the boot-time RAID utility. Since there was not a “single drive” option listed, I had to figure out which
of the degenerate forms were permitted. It turned out that a stripe of one drive did the trick.

My drives were clearly labeled as to which was High and which was Low. In any case, I decided on a convention
of always using the drives in the order given by their serial numbers. I can assume, even without the other labels I
added, that the lower serial number belongs to the lower drive. I also labeled the cables on both ends.

After booting, the Windows Drive Management mmc snap-in showed two drives. It actually wanted to run a
wizard to convert and/or add a signature, but I cancelled that! Finally at the main screen, I could see that one
disk was Basic, Online, and reads twice as much free space as would actually fit on the drive. The
other one read Unknown, Not Initialized, and the proper size.

The difference is a clue as to the drive ordering. I knew which was supposed to be which, assuming I had the
connectors right and it ordered them the way I expected. But it’s worth checking to be sure, since there are lots of
places it could get mixed up. It turns out that the drive it thinks is Online and free space has a
Master Boot Record in its first sector. In particular
it matches the illustration for a Windows 2000 or XP install. Also in that sector it sees a partition table
for an LBA Extended Partition that should cover the entire RAID. That is where Drive Management is getting its size.
It doesn’t see the partitions inside the Extended Partition because following the pointer to the logical block address for the
body of the Extended Partition finds a sector containing gibberish rather than the expected Extended Boot Record.

The other drive contains all zeros in its first sector, so Drive Magagement supposed it to be a brand new drive. But this
also tells me that the one with the MBR on it is the lower stripe.

Now, the question is what of the stripe size? When I set up the RAID, I didn’t pick a number but chose “Optimum”,
figuring it knew what worked best for that implementation. So, I had no idea what it was. Using Restorer2000’s
Virtual RAID feature, I started trying sizes.

Using Restorer2000 was more attractive than just trying different settings on the new motherboard for several
reasons:

I’m more certain that it won’t try to write to the disks!

I can change the settings and try again without rebooting.

I did not know if stripeing was brute simple or contained data structures that were hidden from the
final RAID volume, that vary by controller. Whatever differences did exist, this product presumably knew how
to deal with it. Even without knowing the content of such data, just adding in a reserved area would be
handled by the normal partition recovery mechanism.

I ended up having some trouble using Restorer2000. In particular, it would not really change the properties
when I changed them in the dialog box! I lost a lot of time before I figured out why nothing different was happening;
otherwise I might have guessed right on the second try. My work-around was to delete the object and create a new
one, rather than editing the properties.

After scanning the drive with the chosen stripe size set, I was able to browse the directory of the partition.
But, that does not mean it is correct! Even with the wrong size, because they are all powers of two, much of the
data will still be readable and in the right spot anyway! And some will be recognisable as something but not be in the
proper address. So the MFT and directory names may turn out all right, or mostly right, and still be wrong.

When I saw that the directory tree was read properly, my next test was to look at some of the files. A Mpeg
file was garbled. Text files were easier: some files were indeed text with the expected content, others were
gibberish. That is because some of the information is at the expected address and some is not. So I kept trying
until all the text files were right, and then I tried restoring a couple large Mpeg files. The Mpeg files were larger than
a stripe, so if those work then it must be right.

Finally, I restored the files from the Virtual RAID, copying them onto the new machine. Now, I can install the
drives normally, reformat if I must, and then copy the data back.

But first, I looked around with the hex editor. This answered some of my original questions. As noted earlier,
I could see the MBR and partition tables. I saw that the sectors were simply interlaced with no special reserved
area at the beginning (but that does not preclude something at the end!), no changes to the normal on-disk
structures, and no additional information on the disk (between the partitions were all zero-filled).

So at least that brand of controller does the RAID in the minimal simple manner, and does not store any information
in the disk. However, I have heard from someone that could not get his disks recognised as a stripe set when moving them
to another motherboard, so perhaps some controllers do put information on the disk, or skip some sectors at the
beginning. Please write me if you have more information on this.

After copying all the files, I set up the chipset RAID with the stripe size I discovered, and Windows
saw the volume with no problem, as easy as an ordinary drive transplant. So I did not need to use the copy of
the files, but I'm glad I had the option available if I needed to reformat.