Si comme moi vous disposez d’un ordinateur sous macOS, d’un NAS « maison » et que vous souhaitez profiter de l’utilitaire de sauvegarde d’Apple « Time Machine » sans dépenser inutilement de l’argent dans le périphérique éponyme d’Apple, ce tuto est fait pour vous ! 🙂
Dans ce billet, nous allons voir ensemble comment compiler et configurer netatalk 3, un logiciel permettant le partage de dossier via le protocol apfd utilisé par macOS et permettant également de simuler le fonctionnement d’une Time Machine de Apple et donc l’utilisation de l’utilitaire de sauvegarde éponyme.
Ce tutoriel s’adresse à toute personne disposant d’un PC/NAS/Server sous Debian.
Installation de Netatalk 3
Malheureusement, Netatalk 3 n’est prévu que pour la prochaine version de Debian et n’est donc pas intégré a Jessie, nous allons donc devoir compiler nous même le logiciel afin de procéder à son installation.
Rassurez-vous, c’est très simple ! 🙂
Commençons par l’installation des outils de compilation (build-essentials) et tout un ensemble de dépendances :
apt install build-essential libevent-dev libssl-dev libgcrypt11-dev libkrb5-dev libpam0g-dev libwrap0-dev libdb-dev libtdb-dev avahi-daemon libavahi-client-dev libacl1-dev libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libio-socket-inet6-perl tracker libtracker-sparql-1.0-dev libtracker-miner-1.0-dev
Ensuite, on télécharge et compile Netatalk :
git clone https://github.com/adiknoth/netatalk-debian
cd netatalk-debian
debuild -b -uc -us
Ce qui devrait vous générer ces 3 fichiers :
libatalk-dev_3.1.X_amd64.deb
libatalk16_3.1.X_amd64.deb
netatalk_3.1.X_amd64.deb
Pour l’installation, on commence par supprimer toutes anciennes version de Netatalk :
apt-get remove netatalk
Et on installe nous packages créés juste au dessus :
dpkg -i libatalk16_3.1.X_amd64.deb netatalk_3.1.X_amd64.deb
Et voilà 🙂 Netatalk est maintenant installé, il ne reste plus qu’a configurer celui-ci !
Configuration de Netatalk 3
La configuration est on ne peut plus simple.
Je ne vais pas couvrir toutes les options possible ici, la documentation de Netatalk est là pour ça 😉
Voici la configuration que j’utilise sur mon serveur de fichier :
# cat /etc/netatalk/afp.conf
[Global]
spotlight = no
mimic model = TimeCapsule6,116
hosts allow = 10.10.0.0/24 # indiquez ici le réseau qui accedera a la TimeMachine
log file = /var/log/netatalk.log
hostname = Files # le hostname de votre serveur, sera utile pour identifier votre TM sous macOS
log level = default:error
zeroconf = yes
uam list = uams_dhx2_passwd.so uams_guest.so
[Backups]
path = /data/shares/backup
valid users = maiko
[Home]
basedir regex = /date/shares/chrooted_usersdirs
[Medias]
path = /data/shares/media
valid users = @users
[TimeMachine]
path = /data/shares/TimeMachine
time machine = yes
vol size limit = 1024000
valid users = @users
Dans cette configuration, mon utilisateur, maiko, est le seul à pouvoir accéder au partage afp Backups. Les utilisateurs du groupe unix users peuvent accéder au dossier Medias ainsi qu’a la Time Machine. Pour finir, tout utilisateur unix du serveur peut acceder a son dossier utilisateur (sa home). Les partages de dossiers utilisateurs, backups et medias existe déjà en partage samba pour mes ordinateurs sous Windows et Linux.
Utilisation de la Time Machine sur macOS
Pour commencer, il faut dire à macOS d’utiliser un partage réseau pas vraiment reconnu une vrai Time Machine. C’est très simple, il suffit d’une ligne à taper dans un terminal :
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Ensuite, il suffit de lancer Time Machine et de sélectionner notre partage afp tout neuf :
Cliquez sur le nom de votre partage : « Time Machine » et ensuite sur « Utiliser le disque ».
Et voilà, il ne reste plus qu’a attendre que Time Machine effectue sa première sauvegarde. Celle-ci peut prendre plusieurs heures et est dépendante de la taille des données à sauvegarder.
N’hésitez pas a poster vos questions en commentaires si nécessaire.
Bonjour et merci pour ce petit guide 🙂
Il y a cependant une petite coquille, pas très grave mais pour les vrai débutants ca peut les bloquer.
Ainsi lors de l’installation des paquets, il faut modifier le paquets:
systemtap-sdt-de
Par:
systemtap-sdt-dev
Encore merci 🙂
Bonjour Aguay,
C’est corrigé !
Merci,
Maiko
Bonjour,
après la première sauvegarde avez vous constaté des lenteurs pour les sauvegarde incrémentales???
Bonjour Palouf34,
Non, pas du tout. La première sauvegarde peut être assez lente suivant la quantité et le type de donnée a sauvegarder mais les incrémentales ne posent aucun souci chez moi.
Si vous faites énormément de modification dans énormément de fichier, la durée de sauvegarde sera plus longue. Aussi, êtes-vous connecté en Wifi ou Ethernet ?
mon mac est connecté en wifi et ethernet avec priorité à l’ethernet….
le temps de préparation est super long….
Bonjour j’ai une erreur qui apparaît et que je n’arrive pas a faire partir, le disque apparaît bien dans Time Machine sur mes Mac même sur ceux où je n’ai pas taper la commande dans le terminal mais lorsque je clique sur utiliser le disque on me demande de me connecter j’entre alors les identifiants sur serveur ce qui fonctionne, ensuite j’ai un message disant « Time Machine ne parvient pas à se connecter au disque de sauvegarde. L’opération n’a pas pu s’achever. (OSStatus erreur 2) ».
Auriez vous une idée de comment résoudre ce problème ?
Voilà la configuration de netatalk:
[Global]
;hosts allow = 10.10.0.0/24 # indiquez ici le réseau qui accedera a la TimeMachine (je n’ai pas cette ligne dans le fichier de configuration car je ne savais pas quoi mettre)
spotlight = no
mimic model = TimeCapsule6,116
hostname = TimeMachine bureau
vol preset = default_for_all
log file = /var/log/netatalk.log
uam list = uams_dhx2.so,uams_clrtxt.so
seroconf = yes
[Homes]
basedir regex = /home
[TimeMachine]
path = /media/dorian/Time Machine/
time machine = yes
vol size limit = 500000
valid users = @users
Merci.
Bonjour Dorian,
Avec beaucoup de retard, je me permet de te répondre.
A première vue je dirais que le problème se situe sur la ligne que tu n’a pas incluse, le « hosts allow ». Il te suffit de remplacer « 10.10.0.0/24 » par les IPs utilisées dans ton réseau local. Ex: 192.168.1.0/24, etc.