Wednesday, January 27, 2010

Partition/Volume/Disk Madness

New Hardware

It seems I only blog when something goes badly wrong so I'll continue this tradition, but first I'll point out some things that have gone really well for me technology-wise:

New Hard Drive
I upgraded to a 1.5TB hard drive and installed Windows 7 (64-bit) onto this new drive. Windows' Files and Settings Transfer Wizard is great, it does exactly what the name implies with minimum fuss.

Windows 7, 64-bit
Windows 7 is really good, I used Vista a little at work and didn't like it but with 7 they have cleaned up a lot of the rough edges Vista had and driver compatibility is a non-issue now. After some reasearch I went with the 64-bit version because my processor can handle it and choosing 32-bit would have bitten me in the bum sooner or later. I've had no trouble with 64-bit at all which is a big relief. The drivers are all there and all of my apps and games run without a hitch. The only thing I could say against it is the slight irritation of having two Program Files directories but I'm just nitpicking.

X-Box Controller
I got myself an X-Box 360 wired controller because there are some games (e.g. driving) that don't really fit the keyboard and mouse. I've had zero trouble with that- installer the drivers off the disc then plug it in and you're away. A very satisfying purchase. I was apprehensive because the site I got it from said it is "Windows XP Compatible" and I know the driver model changed between XP and Vista/7 but I took the plunge and couldn't be happier.

Extra RAM
To go with the new 64-bit OS, I upgraded to 6GB of DDR-2 RAM (an extra 4GB to go with my existing 2GB) and everything is very snappy. Specifically Alt-Tabbing out of games is instant whereas before it would grind for a few seconds.

Backup Strategy
Now onto the disk madness. Now that I have a 1.5TB hard drive which is about half full I'm thinking about backups as there is data on there that I don't want to lose. So I went about researching backup strategies and I'll lay out my research here to save you time if you are thinking about doing the same thing. My requirements are that I will be backing up every month or so to another hard drive and the backup should be an entire drive image so if my current drive catastophically fails, I can shove in my backup drive and be up and running right away minus the last month's changes (worst case scenario). I didn't think this would be very difficult but it is a nightmare.

My first idea was to look into RAID 1 (mirroring) as I could just attach the spare hard drive, let the mirror build, then disconnect it and put it away for safekeeping. Perfect! Well it turns out that RAID is a minefield.

Hardware RAID
This requires a dedicated RAID controller which can either be integrated into the motherboard, or an add-on card e.g. PCI-Express. My current motherboard has an on-board RAID controller so I had a read up on them. Apparently they are notoriously unreliable and can cause data corruption, so I'm definitely not doing that.

Next I read up on add-on RAID cards and the Internet told me the cheap ones are terrible and the good ones are ridiculously expensive. Add to this the fact that if your RAID controller dies you need to get another one EXACTLY the same to be able to read the data again. Different controllers have different proprietary data formats so ones from different companies - and sometimes even from the same company - can't interoperate. Also I believe that hardware RAID cannot be done retroactively- you have to set up RAID before you even install the OS, so hardware RAID isn't for me.

GRRRR! It seemed like the perfect solution but everywhere I turn there is bad news so I looked into software RAID...

Software RAID
Windows Disk Management can create a mirrored volume as a Dynamic Disk but the downside is that there is a little CPU overhead involved in disk access. Well I don't mind a small tax if it means my data is rock solid safe. So I added a second drive and mirrored it which required converting my existing OS drive into a dynamic disk. I didn't know what that meant so just agreed to it. After mirroring everything looked fine but when I tried to boot into Ubuntu (I use Wubi to install Ubuntu into Windows as an app) it freaked out and wouldn't boot. If I want to continue using Ubuntu via Wubi, software RAID isn't for me either.

So I thought I'd put my system back to how it was previously but it's impossible to convert a dynamic disk back to a basic disk which is a big pain. After some research on the differences between these two disk types, I decided to leave it as it is even though it mean I have an annoying little 1MB partition sitting at the end of that disk now.

Offline Imaging
My last idea and one that I was hoping to not have to resort to is offline drive imaging. There are several tools available which boot from CD/DVD/USB and can perform a full image of a drive or partition onto another one. This is quite a bit of hassle, having to babysit the backup rather than just putting in another disk and pulling it out later as I envisioned for the RAID solution.

I downloaded CloneZilla and booted from a flash drive but to my great annoyance when I tried to select my OS partition as the source, it would only show me the tiny 1MB partition that converting to a dynamic disk created!! At this point I was completely crushed and couldn't be bothered exploring the options any further.

Now there are two things I can do. I could "convert" my drive back to a basic disk by installing Windows on the blank drive and copying everything across to it from the dynamic one. This would mean that I could continue to use Ubuntu and backup by performing full disk images. I don't like that option so I'm going for the other one- uninstalling Wubi (Ubuntu) from my system and using it in a virtual machine and using Windows' software RAID to mirror my drives. It makes me feel dirty that I have to boot into Windows in order to use Ubuntu instead of running it on the bare metal but that's something I'll just have to live with.

If anyone out there has suggestions on how to accomplish what I tried, please let me know.