logo
Header graphic 5 of 9

Categories

Archives

Other stuff

Other sites

I wish this site were powered by Django

February 06th, 2007

Restoring/accessing a disk that was part of an accidentally deleted nVidia nForce RAID-1 array

Filed under: Technology — jm @ 14:34

This entry should help people that are just as stupid as I am sometimes :-)

I have a MSI K8N Neo4 Platinum motherboard, based on nVidia’s excellent nForce4 chipset and I use the integrated SATA RAID controller to run a 2 disk RAID-1 array. Together with weekly or monthly backups on an external harddrive and internet-connected SVN servers, this makes for fairly secure storage, at least I didn’t loose data even though I suffered 3 harddrive-failures over the last 2 years.

Two weeks ago, however, one of the drives in the RAID-1 array started making a rather disturbing clicking noise and every so often the whole system froze. I disconnected the drive and immediately ordered two new 320GB drives to replace the current 2×160GB setup. I opted for reinstalling Windows XP, as I figured that the system needed that anyway and thus for the time being, I ran a degraded RAID array. As all data had been mirrored on both drives, I could still boot and continue to work normally. When the new drives arrived in the mail a few days later, I hooked them up on the SATA controller and then I did something fairly stupid:

  1. I rebooted the machine

  2. pressed F10 to enter the RAID BIOS

  3. created a new RAID-1 array using the two new 320GB drives

  4. and then I deleted the degraded 160GB array :-/.

As I later found out: if you do the same thing using nVidia’s MediaShield drive management application, you get a big, fat warning that you won’t be able to access that drive anymore, but the RAID BIOS just asks you to confirm your decision. So after installing Windows XP x64 on the new drives, I wasn’t able to access the old drive anymore and if I say “wasn’t able to access” I don’t mean that I couldn’t read its data, the drive wasn’t there at all. Windows didn’t even list it in its Storage Management MMC Snap-In. Only MediaShield recognized it, offering to create a new RAID array if I connect another harddrive, as a RAID array needs to consist of at least 2 drives.

To make a long story short, I googled a lot and found out that when you delete a nForce Raid-array, the BIOS overwrites the drive’s MBR and part of the first 128 sectors on the disk. Everything else remains intact. So all the NTFS data on the disk was still there, it just wasn’t accessible. There were a few other guys having approximately the same problem on nVidia’s forum, but they didn’t get much help.

So here’s how to fix it (at least it worked for me)

  1. Go to cgsecurity.org and download a Linux bootdisk containing TestDisk, an excellent open-source data rescue suite

    I used the excellent System Rescue CD as it only uses about 100MB and therefor is significantly smaller than Knoppix, for example.

  2. Burn the ISO image to a CD-R.

  3. Boot Linux from the CD and start testdisk.

  4. Find the missing disk (use its size and its controller’s index as hints).

  5. Use the “Write MBR”-option to write a new MBR on the disk.

  6. Scan the disk for partitions, it should find one or more NTFS partitions.

  7. Rewrite the partition table.

    NTFS keeps multiple copies of the master partition table around and this option makes TestDisk copy the backup NTFS partition table to the main partition table.

  8. Reboot

  9. It might be necessary (I didn’t test that) to disable SATA RAID for the SATA port that the old disk is connected to in the BIOS, but generally the disk should be accessible again.

I hope these steps work for you too. Good luck.

As to why nVidia’s otherwise well-working RAID BIOS doesn’t make mirrored drives accessible on their own by default if you remove a RAID-1 array from the configuration… I don’t know. Seems like a fairly obvious oversight on part of their engineers to me…

Comments are closed.