This is a text-only version of the following page on https://raymii.org:
---
Title : Build a $35 Time Capsule - Raspberry Pi Time Machine Backup Server
Author : Remy van Elst
Date : 29-08-2014
URL : https://raymii.org/s/articles/Build_a_35_dollar_Time_Capsule_-_Raspberry_Pi_Time_Machine.html
Format : Markdown/HTML
---
![timemachine1][1]
This is a simple guide on building a $35 Time Capsule with a Raspberry Pi. A
Time Capsule is a network attached storage device from Apple for use with their
Time Machine. Time Machine gives users a very easy and userfriendly way to
automatically create and restore (encrypted) backups. A Time Capsule is
basically an expensive NAS that only talks the AFP/netatalk protocol. The 2 TB
version [costs $299 at this time][2], a [Raspberry Pi only $35][3].
Recently I removed all Google Ads from this site due to their invasive tracking, as well as Google Analytics. Please, if you found this content useful, consider a small donation using any of the options below:
I'm developing an open source monitoring app called Leaf Node Monitoring, for windows, linux & android. Go check it out!
Consider sponsoring me on Github. It means the world to me if you show your appreciation and you'll help pay the server costs.
You can also sponsor me by getting a Digital Ocean VPS. With this referral link you'll get $200 credit for 60 days. Spend $25 after your credit expires and I'll get $25!
You will need the following:
* Raspberry Pi, Model B/B+
* USB Hard Disk / Big USB Dick
The Raspberry Pi can run either Raspbian or Arch, this guide works on both. The
USB storage works best if it is externally powered.
I've tested with 2 different Raspberry Pi's, one model B+, raspbian, with a
128GB USB disk (from Sandisk) and on Raspberry Pi Model B with Arch and a 1 TB
USB hard drive. I've got some spare disk lying around, if you don't you should
buy one. The total cost might be higher than $35 if you need to buy storage or
want a nice case and other accessories.
### Preparing the disk
Make sure the Pi is installed with your OS of choice (Raspbian or Arch). Plug
the USB drive in. We will first format it to a big EXT4 partition.
Install `cfdisk` first, or just use parted/fdisk if you know the drill.
Debian:
apt-get install cfdisk
Arch:
pacman -Sy cfdisk
Issue the `dmesg` command and look at the last few lines. Remove the USB storage
and re-attach it. Execute the `dmesg` command again and look for lines like
this:
[ 7793.698383] usb 1-2.4: USB disconnect, device number 11
[ 7798.233788] usb 1-2.4: new high-speed USB device number 12 using xhci_hcd
[ 7798.326648] usb-storage 1-2.4:1.0: USB Mass Storage device detected
[ 7799.331790] sd 3:0:0:0: [sdb] Attached SCSI removable disk
Here you can see that `/dev/sdb` is our newly attached disk. Change it to your
setup. Be carefull with this, any typo's might erase all your OS data. Format it
with cfdisk:
cfdisk /dev/sdb
Delete all partitions on there and create on big Linux (83) one. _Do note that
this will remove all data on the disk._
If you have a big disk (> 2 TB) you might need to create a GPT table on it. Use
`parted` for that:
parted /dev/sdb
mklabel gpt
unit s
mkpart primary 2048s 100%
name 1 BFS
quit
Now create an ext4 filesystem on it:
mkfs.ext4 /dev/sdb1
Proceed to mounting the disk.
### Mounting the disk
We add the disk to `/etc/fstab` to make sure it will still be mounted after a
reboot. Otherwise you might end up with a full Pi and we don't want that.
Edit `/etc/fstab`:
vim /etc/fstab
Add the following to it, change the disk device path if it is different:
/dev/sdb1 /mnt/data ext4 noexec,defaults 0 0
Create the actual mount folder:
mkdir -p /mnt/data
Mount it, via fstab:
mount -a
Now check the `df -h` command and see if it is actually mounted.
### Installing netatalk
`netatalk` is the program that talks the AFP protocol, which is wat Apple uses
for Time Machine. Install the daemon,
For Debian:
apt-get install netatalk
For Arch
pacman -Sy netatalk
Note that on Arch Linux Arm the AUR is included as a repo by default. If you run
it on regular arch you need to use `yaourt` to install netatalk or build
netatalk from the AUR yourself.
Make sure the service starts at boot:
Debian:
update-rc.d netatalk defaults
Arch:
systemctl enable netatalk
### Configuring Netatalk
Edit the file `/etc/afp.conf`:
vim /etc/afp.conf
Place the following contents. Edit the path's, user names and IP range:
[Global]
mimic model = TimeCapsule6,106
log level = default:warn
log file = /var/log/afpd.log
hosts allow = 196.168.1.0/24
[Homes]
basedir regex = /home
[TimeMachine]
path = /mnt/data/timecapsule/
valid users = tmuser wife remy
time machine = yes
[Shared Media]
path = /mnt/data/torrents/
valid users = wife remy
Do not use a symlink as the source of this file. netatalk will not work
correctly.
I also share a folder with my Transmission Torrents in there, that contains
about 400 GB of Linux iso's. The OS X machine is the only machine with a DVD
burner in the house, therefore I use that to burn them to disk.
The config file itself it pretty self explainatory.
Make sure the folders actually exist. Create them with:
mkdir -p /mnt/data/{timecapsule,torrents}
Restart the `netatalk` service:
Debian:
service netatalk restart
Arch:
systemctl restart netatalk
On Arch you might need to configure the Avahi service, on Arch Linux Arm it is
enabled by default. This provides Bonjour capabilities.
You might need to create a user or set the correct permissions on the folder.
I'll add the user `wife` to the Pi, put her in the `users` group and give the
`users` group write permissions on the folders we share via AFP.
Add the user `wife`:
useradd wife
Set the password for `wife`:
passwd wife
Create the `users` group:
groupadd users
Add the user to the `users` group:
usermod -aG users wife
Set the correct permissions on the time machine folder:
chown remy:users /mnt/data/timecapsule
chmod 775 /mnt/data/timecapsule
That's it. You can now configure Time Machine on OS X. Search for the folder, it
should pop up:
![timemachine2][5]
Enjoy your $ 35 Time Capsule. Consider making a donation with (a part of) the
money you saved. Or if you like this article and want to support me AND get $10
Digital Ocean credit (2 months free), use this link to order:
[1]: https://raymii.org/s/inc/img/timemachine1.png
[2]: http://store.apple.com/us/product/ME177/airport-time-capsule-2tb
[3]: http://www.raspberrypi.org/buy/
[4]: https://www.digitalocean.com/?refcode=7435ae6b8212
[5]: https://raymii.org/s/inc/img/timemachine2.png
---
License:
All the text on this website is free as in freedom unless stated otherwise.
This means you can use it in any way you want, you can copy it, change it
the way you like and republish it, as long as you release the (modified)
content under the same license to give others the same freedoms you've got
and place my name and a link to this site with the article as source.
This site uses Google Analytics for statistics and Google Adwords for
advertisements. You are tracked and Google knows everything about you.
Use an adblocker like ublock-origin if you don't want it.
All the code on this website is licensed under the GNU GPL v3 license
unless already licensed under a license which does not allows this form
of licensing or if another license is stated on that page / in that software:
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
Just to be clear, the information on this website is for meant for educational
purposes and you use it at your own risk. I do not take responsibility if you
screw something up. Use common sense, do not 'rm -rf /' as root for example.
If you have any questions then do not hesitate to contact me.
See https://raymii.org/s/static/About.html for details.