Time Machine + Samba + Snow Leopard: Making It Work

When I upgraded my MacBook Pro to Snow Leopard towards the end of last year, I restored just about everything - files, settings etc - from my previous Time Machine volume (directly connecting the disk via USB). I'd been backing up over Samba to a DIY fake Time Capsule built from a pair of USB disks and a Linksys NSLU2 running Debian. Because I wanted to make sure the restore had worked, I didn't set up Time Machine again on my new Snow Leopard installation because I didn't want to wipe my previous backup, just in case.

Fast-forward a year or so and you'll find me still backup-less (yeah I know, living dangerously), so I finally found the time and patience to get Time Machine set up again - this time on Snow Leopard, but still wanting to back up over Samba to my DIY fake Time Capsule.

It turns out that Snow Leopard is a lot less forgiving than its predecessor when it comes to which remote disks and shares it will recognise as targets, and I had to try a whole bunch of different nonsense before I found the right configuration. I thought I'd plug the guide that worked for me, in the hope that someone might save their afternoon as I failed to do.

Background: I'm running Snow Leopard 10.6.4 on a late-2008 MacBook Pro; my desired Time Machine target is a standard Samba share, with a password, pointing at a fat USB disk in such a way that the entire volume is shared. I normally back up over wifi but used a combination of direct USB and wired Ethernet connection to save time during the setup.

So, the guide that worked for me was this one (cached (PDF), if it's offline). Bizarrely, it's written for Leopard, but the steps proved to be the only ones I needed to get going on Snow Leopard. I found various guides that required me to do all kinds of underhanded shit, like creating .com.apple.timemachine.supported files on the volume, files named after my MAC address and so on, but none of that proved necessary. The key, it seems, is creating the sparsebundle using Disk Utility rather than the command line hdiutils.

When you've got it running, don't forget to add the mounted Time Machine volume as an exception in Spotlight so it doesn't get indexed. Good luck!