Apple Time Machine and Netatalk 3: Difference between revisions

From Wildsong
Jump to navigationJump to search
Brian Wilson (talk | contribs)
mNo edit summary
Brian Wilson (talk | contribs)
mNo edit summary
Line 1: Line 1:
This is really about setting up Time Machine to do OS/X backups.
This is really about setting up Time Machine to do OS/X backups.
OS/X can't use Samba with Time Machine, so that's not good enough.
OS/X can't use Samba with Time Machine, so that's not good enough.
== Update 2017 ==
I am now using docker image now that has netatalk and avahi in it. Much simpler once you find the right image on the Docker Hub.
It's on [[Laysan]] right now instead of [[Tern]], I did not see a reason to run a separate server just to support Timemachine. Laysan is a desktop so it is usually asleep at night but then, so are the Macs. Timemachine is resilient.
docker pull mbentley/timemachine
sudo mkdir /var/log/timemachine
docker run -d --restart=always \
  --net=host \
  --name timemachine \
  -v /volumes/timemachine:/opt/timemachine \
  -v timemachine-logs:/var/log/timemachine \
  mbentley/timemachine:latest
I mount a pair of 3TB drives formatted with btrfs as a single filesystem at /volumes/timemachine. This command will map that space to /opt/timemachine. You have to use --net=host so that this docker can use avahi discovery; otherwise your Macs will not be able to find it in Timemachine.


== Update 2014 ==
== Update 2014 ==

Revision as of 16:34, 26 April 2017

This is really about setting up Time Machine to do OS/X backups. OS/X can't use Samba with Time Machine, so that's not good enough.

Update 2017

I am now using docker image now that has netatalk and avahi in it. Much simpler once you find the right image on the Docker Hub. It's on Laysan right now instead of Tern, I did not see a reason to run a separate server just to support Timemachine. Laysan is a desktop so it is usually asleep at night but then, so are the Macs. Timemachine is resilient.

docker pull mbentley/timemachine
sudo mkdir /var/log/timemachine
docker run -d --restart=always \
  --net=host \
  --name timemachine \
  -v /volumes/timemachine:/opt/timemachine \
  -v timemachine-logs:/var/log/timemachine \
  mbentley/timemachine:latest

I mount a pair of 3TB drives formatted with btrfs as a single filesystem at /volumes/timemachine. This command will map that space to /opt/timemachine. You have to use --net=host so that this docker can use avahi discovery; otherwise your Macs will not be able to find it in Timemachine.

Update 2014

I built and used Netatalk 3 on Debian 6 but it turns out netatalk 2.2 works (in Debian 7). Since it is available in Debian 7 (aka Wheezy) you should upgrade your server and ignore the rest of this page!

Follow the instructions on this page instead: http://bullcreekstudio.com/uncategorized/debian-wheezy-mavericks-time-machine-server/

The outdated way

Build

Download source from http://sourceforge.net/projects/netatalk and build netatalk. Currently I am using 3.1.0

# install build prerequisites
sudo apt-get install build-essential libdb-dev
# download and unpack tar ball
# cd into source folder
./configure
make
sudo make install

Configure

Change the volumes to use extended attributes by editing /etc/fstab and add user_xattr to the options


This is my current afp.conf file

I used to start netatalk at boot by putting it in /etc/rc.local but then I installed the standard 2.2 package and removed it, and it left behind nice startup and config scripts that I recycled

apt-get install netatalk
apt-get remove netatalk

Edit /etc/init.d/netatalk Edit /etc/default/netatalk

bwilson@bellman:~$ cd /usr/local/etc
bwilson@bellman:/usr/local/etc$ cat afp.conf
;
; Netatalk 3.x configuration file
; manual: http://netatalk.sourceforge.net/3.0/htmldocs/

[Global]
log level = default:error
uam list = uams_guest.so uams_dhx.so
hosts allow = 192.168.123.108 192.168.123.109
vol preset = all_volumes
guest account = timemachine

[all_volumes]
file perm = 0664
directory perm = 0775
cnid scheme = dbd
valid users = julie bwilson

; [Homes]
; basedir regex = /home

[TimeMachine]
path = /green/timemachine
time machine = yes
valid users = timemachine