Thursday, September 01, 2005

fatfind

Given that my home directory is now too big to fit on a single DVD, I bought an external hard drive for backing things up to.

However, it seems to be annoyingly difficult to actually get all of the data I want onto it. My first method was just to copy all of the relevant files across in Finder. This doesn't work, because whenever Finder comes across a file whose filename isn't allowed under the FAT32 filesystem of the destination drive, it just quits (which is incredibly annoying: why can't it carry on to copy all the other files?).

So next, I tried resorting to low-level UNIX stuff: cd /Users; tar czvf /Volumes/BACKUPDRIVE/dmd_20050831.tgz dmd. That didn't work either (some gzip error message), so I tried the uncompressed verson (cd /Users; tar cvf /Volumes/BACKUPDRIVE/dmd_20050831.tar dmd), and even a straightforward copy (cp -pR /Users/dmd/* .), but they both failed too.

After looking in the Help, my next attempt was to try using Disk Utility to create a disk image of my home directory in a file on the external HD. Nope, failure there too. Following a tip, I also tried to get Disk Utility to create a read/write 50Gb HFS disk image on the external HD, but that failed too.

So what I'm converging on now is figuring out (by experimentation and the filthy internet) that the characters that cause problems on FAT32 are: \ : ? * < > | ", and so find . -name '*[<:|>/\\\*"?]*' finds all of the problematic files so I can rename them.

[Edit: Actually, it looks like there are occasionally files that have non-printable characters in their filenames; in particular application packages often have a file called Icon^M. So flipping the find command around to find . -name "*[^a-z A-Z0-9!#$%&\'()+,.\-;=@\[\]^_\`{}~]*" seems to work better.]

1 Comments:

Blogger kelinci said...

Great post .
kelinci

8:50 PM  

Post a Comment

<< Home