Logo for "Nota Bene / non-blog" goes here. NB main page
Along with navigation links.
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.
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.
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 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.