TL;DR: Make a BartPE boot disc, with Dell RAID drivers and EASEUS Free Partition recovery. Undelete those partitions LIKE A BOSS.
Yesterday at 6PM, while installing a new drive in our Dell PowerEdge 2900, I accidentally “fast initialized” the system drive in the machine.
Yes, this is pretty much as stupid as it sounds. When you install a new drive (the guide I used), you basically turn the machine off, remove a drive bay cover panel, insert the new drive (wrapped in a $45 caddy and a $48 interposer – woo Dell!), boot up the machine, press Ctrl-R/M to get through to the RAID config, create a new “virtual disk”, add the just installed “physical drive” to it, and finally initialize the new virtual disk. Unfortunately, the Dell RAID config software is a little unclear, when you finish creating the new virtual disk, it asks you if you want to initialise it, then takes you to a selection screen – I just picked the first one. Big mistake! In 1/3rd of a second I’d effectively deleted the first and last 8MB of our main server’s boot disk, which includes the MBR, bootsector, partition map, etc, etc… You know that “oh fuck” feeling you get when you’ve done something horribly wrong?
Anyway, here’s how I restored it.
First, I figured out what a “fast initialize” actually is. An article on the Dell support website says:
A fast initialization on a virtual disk overwrites the first and last 8 MB of the virtual disk, clearing any boot records or partition information.
Great, so the data is still all there, it’s just missing the MBR and partition stuff.
So next I needed a boot CD so I could run some recovery software on the machine. At first I considered using an Ubuntu LiveCD, GParted and GNU DDRescue, because there’s a great recovery guide on the Ubuntu community site, but I was worried that I’d have to mess around with drivers to get Ubuntu to recognise the Dell’s PERC 6i RAID array.
So I settled on BartPE, which is basically a modifiable version of the Windows Preinstalled Environment akin to the Linux LiveCD concept. BartPE CDs are created using the PE Builder, which allows you to customise drivers and software, so I added the Dell PERC 6 drivers (downloadable from the Dell website) using this guide.
Now I needed a partition recovery bit of software. Unfortunately I actually tried 3 before I found one that worked just right. I first tried Runtime.org’s GetDataBack for NTFS which can be added as a plugin to Bart PE, and after a 1h40m scan I realised to my horror that GetDataBack is just a file recovery tool – it doesn’t recover partition information at all. It did find all of the data on the drive, but recovering this way would have meant an enormous copy/format/paste shuffle. No good.
So next I tried Active@ Partition Recovery, whose website is really dodgy looking. I added it to yet another BartPE disc by adding its Windows executable in PE Builder as a custom directory (the DOS version of Active@ PR does not work with BartPE’s command prompt, as it is 16-bit native). I had to open a command prompt once this BartPE disc had booted on the server and navigate to the executable to run it, but it did work. After another 1h10m “fast scan”, Active@ had detected one of the two partitions on the drive, and seemingly not the other. Fortunately it was the boot drive, so I restored it.
Now all I had to do was mark the drive as active and fix its MBR, which I did by booting from a Windows 7 disc, running the recovery console and running DISKPART, then BOOTSECT /nt52 C – there are hundreds of guides on this process out there.
Unfortunately, even after this it didn’t boot. I had no idea what was wrong. Then, after removing most of my hair I realised that because the partition information had changed, the boot.ini file would need to be updated. Being a Mac user I sort of expect this kind of stuff to “just work”, but if the boot.ini file doesn’t have a correct partition specified, it will just give up, and peace out, not bothering to display an error message of any kind.
Restart, and bingo. Server back online. Now for that second partition. Frustrated at Active@, I installed EASEUS Partition Recovery and decided to give it a shot. Literally SIX seconds later, I had the second drive recovered, mounted and back up and running.
Seriously, WTF. EASEUS Partition Recovery is black magic and totally free and awesome. I cannot recommend it highly enough. If you accidentally “quick format” a drive, EASEUS Partition Recovery is the tool you’re after. There’s even a guide on their site of how to add it as plugin to BartPE.
So at the end of the day I spent $114USD and learnt a valuable lesson – EASEUS is free and the best partition recovery software out there.