Mac OS X – Time Machine network backup without Time Capsule
From OS X 10.5 (Leopard) Apple introduced Time Machine: a great combination of rsync/rsnapshot and a beautiful user interface.
Time Machine works in two modes: 1. local volume on local area or 2. Time Capsule over network.
Now I don’t wanna buy another box with apple logo over it for much $$$ when I have a lot of file servers on my network.
Now I explain a few hoops to get this system to work:
First: persuade Time Machine to see the SMB share as a Time Machine destination by activating the unsupported network drives feature by this console command:
# defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Second: set up the file server with SMB dedicated share to Time Machine, create an appropriate disk image locally (see below) and copy it into share.
To create the disk image, you’ll need to find out two pieces of information about the computer you want to backup: its Computer Name and its Ethernet ID (Ethernet MAC address). The Computer Name is the one that you set in the Sharing System Preferences pane. For example my is “LeoBook2”.
You can get the Ethernet ID by this command (use wired mac nic even if you’ll be using wifi connection):
# ifconfig en0 | grep ether | sed s/://g | sed s/ether//
Compose image name following this syntax:
Computer Name, followed by an underscore, followed by the Ethernet ID without the colons, followed by .sparsebundle (Ex. “LeoBook2_000d9358ca26.sparsebundle”).
Now go to Terminal and type the following commands:
# hdiutil create -library SPUD -megabytes $DISK_SIZE -fs HFS+J -type SPARSEBUNDLE -volname "$DISK_IMAGE_NAME" "$DISK_IMAGE_NAME"
After you’ve run this command, you should end up with a disk image in your Home. It looks like a single file, but it’s actually a directory (just like a application). Don’t forget to copy this disk image to the appropriate share on your server. Just dragging and dropping from the Finder should work fine.
Now you are able to use the share as Time Machine backup volume.
Have a fun