TimeMachine en een fileserver

Ik heb geen TimeCapsule maar een Gentoo Linux server met een kleine 3 TB ruimte en zowel Samba als AppleTalk in combinatie met Bonjour. Een deel van die ruimte wilde ik graag gebruiken voor TimeMachine backups, maar dat klonk eenvoudiger dan het uiteindelijk bleek te zijn. Bij deze een uitleg hoe je je Linux meterkast server kan gebruiken voor Time Machine backups.

Ik heb express AppleTalk (netatalk) en Bonjour (avahi-daemon) geinstalleerd omdat TimeCapsule daar ook gebruik van maakt dus dat leek me qua compatibiliteit de beste keuze. Daarnaast zie je op de Apple de linux files beginnend met een puntje (hidden / settings, .*) niet op een SMB volume, maar wel op een AppleTalk Volume. Omdat ik las dat je ook een aantal van deze bestanden aan moet maken leek AppleTalk me een betere keuze dan Samba. Bij de configuratie van AppleTalk (netatalk) en Bonjour (avahi-daemon) zijn de volgende files van belang:

In /etc/netatalk/AppleVolumes.default moet onderin de volgende regel staan:

/mnt/WD1TBlack/TimeMachine TimeMachine allow:YOURLINUXUSERNAME cnidscheme:cdb options:usedots,upriv

En in /etc/avahi/services/afpd.service:

<?xml version="1.0" standalone=’no’?><!–*-nxml-*–>

<!DOCTYPE service-group SYSTEM "avahi-service.dtd">

<service-group>

	<name replace-wildcards="yes">%h – afp</name>

	<service>

		<type>_afpovertcp._tcp</type>

		<port>548</port>

	</service>

	<service>

		<type>_device-info._tcp</type>

		<port>0</port>

		<txt-record>model=Xserve</txt-record>

	</service>

</service-group>

Ik heb gelezen dat je op het Volume (in mijn voorbeeld /mnt/WD1TBlack/TimeMachine) twee bestanden aan moet maken. Het lijkt er op dat dit bij mij automatisch is gedaan, maar voor de zekerheid zal ik het toch nog even noemen. Het eerste bestand is het (eerste) Mac Adres van de computer waarvan je wil gaan backuppen, zonder scheidingstekens (en0). Het andere bestand zou ervoor moeten zorgen dat TimeMachine kan werken met het volume. Voer -op je linux server- dus de volgende commando’s in (en vervang 112233445566 met jouw Mac Adres):

cd /mnt/WD1TBlack/TimeMachine
touch .112233445566
touch .com.apple.timemachine.supported

Zorg ervoor dat je je computer een naam hebt gegeven (in System Preferences –> Sharing). In principe zou je nu met TimeMachine aan de gang kunnen gaan ware het niet dat TimeMachine een error geeft dat hij de backup (sparsebundle) niet aan kan maken. Een oplossing is om zelf lokaal de sparsebundle lokaal (het werkt alléén lokaal) aan te maken en deze handmatig op het netwerk volume te plaatsen. Bijkomend voordeel is dat je dan ook de maximale grootte kan bepalen die de TimeMachine backup zal gebruiken.

Tik in de console van je Mac het volgende commando in:

hdiutil create -layout SPUD -size 150g -type SPARSEBUNDLE -fs 'Journaled HFS+' -volname "Backup of My MacBook Pro" ./NAAMCOMPUTER_112233445566.sparsebundle

Daarbij is 150g de grootte die de TimeMachine backup in beslag zal nemen (maximaal 150GB), NAAMCOMPUTER is de naam van je Mac zoals in Sharing Preferences is aangegeven en 112233445566 is wederom het eerste Mac Adres op je Mac (en0) zonder scheidingstekens. Zodra de sparsebundle is aangemaakt kan je hem naar je TimeMachine volume moven:

mv ./NAAMCOMPUTER_112233445566.sparsebundle /Volumes/TimeMachine

Om het nu helemaal af te maken moet je op je Mac nog zorgen dat netwerk volumes door Time Machine gebruikt kunnen worden. Standaard is dat niet mogelijk namelijk. Voer het volgende commando uit op je Mac:

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

En nu zal TimeMachine werken, op je Linux AppleTalk mount :)