Using a Linux server for your Mac

Time Machine Server

One great feature introduced in Mac OS X 10.5 (Leopard) is Time Machine.

Time Machine is a backup/restore system. As a lot of backup systems it creates an incremental backup. You can create your backup to an attached hard drive, a Time Capsule or an Xserve.

If, like me, you would like to backup your Mac on a Linux server, there is a solution. It's not perfect yet, but so far (I'm using it for a week now) it's working quite well.

I followed the instruction written on how to create a Time Machine Server on Debian (it's in french), which is mostly a translation of this article on how to create a Time Machine Server on Ubuntu (in english).

It's quite easy, you just have to follow instructions. Some tips:

  • On my Debian installation there's a problem with cracklib2-dev package, I just had to install libcrack2-dev instead.

  • Don't copy/paste the XML file from the tutorial's french version (the blog's style sheet messed up the quotes).

  • If you have to manually create a sparse bundle disk image, it seems that the size is the size of your "virtual" backup drive. For instance, I have 300 GB available on my server, I selected 200 GB as image size, so Time Machine should not use all the space available on my server but restrict itself to 200 GB (I hope so, it's not clear as Time Machine is still telling me that my hard drive is about 1.3 TB with 300 GB available, but the sparse bundle disk image is telling me that there is 200 GB with 100 GB available (I already have 100 GB of backup)).

  • On Debian, doing an update will erase your home made netatalk package. In order to prevent that you can use the following command (see Preventing Debian package upgrades):

    # echo "netatalk hold" | dpkg --set-selections
    

I said it was not perfect because from time to time Time Machine failed while backuping, so I have to launch a new backup (ok, it's just 2 clicks). The other problem is that my home folder is encrypted with FileVault. In that case Time Machine does not backup my home folder when I'm connected. When I logoff, FileVault do some stuff then my home folder is backuped. But now with a remote backup, the backup part is not done anymore. I have to connect with an other account and launch a backup.

iTunes Server

Like a lot of Mac users, I'm using iTunes to listen to my music. The overall software is quite good but there are several things that are just wrong. By default iTunes is only able to read mp3 and Apple's own audio codecs. I convert all my CDs to FLAC because it's a lossless and open source codec.

The other problem I have is that my MacBook has a small hard drive so I can't keep all my music on it (especially if encoded in FLAC).

The solution is to use Firefly and have it sharing my music on my local network. The music is decoded by Firefly then sent over the network, so iTunes doesn't have to know how to decode the original file.

Installing Firefly on Debian is quite easy:

$ sudo apt-get install mt-daapd

Then edit /etc/mt-daapd.conf in order to configure it a bit. There is also a web interface to configure Firefly, connect on your server on port 3689 with your web browser (the main thing you have to set is the directory where your music is).

Now open iTunes, you should see a Firefly share in the left panel:

Firefly

Some drawbacks with this method. On iTunes you only see remote playlists, so some functionalities are not working anymore (changing songs metadata, genius, sound check, creating your own local playlist from the remote one, copying a song to your iPod/iPhone (retrieving a song in local)).

Comments Add one by sending me an email.

  • From Laurent ·
    I confirm that the size of the sparse bundle image you have to create is the max size your backup will use on the server. I reached the 200 GB limit I have set and TimeMachine started removing old backups.
  • From Laurent ·
    With the new Mac OS X update (10.5.7), my FileVaulted home folder is now backuped again when logging off.