I'm writing a Defrag program for FAT32 partitions that runs in Linux. (see Why I started writing a Defrag program)

It's a simple idea, but there just isn't one already.

I'm not a wonderful hacker: the code looks like shit.

Now I've gotten to the point that it should work. The pieces have finally come together to the point where I should be able to just tell it to go, sit back, and watch my hard drive totally change.

But I haven't. For the last half an hour, I've been sitting here trying to figure out if there's some problem I'm not aware of, or what fail-safes I can quickly hack into it.

If it works, I will have a hard drive with all the files defragmented, but with free space scattered around at random intervals. I think I can correct that by just making multiple passes over the drive.

But if it fails, I lose 3 gigs of data.