Transformer un vieux Power Mac en borne de sauvegarde Time Capsule

Aujourd’hui, on va parler Linux, vieilles machines et sauvegardes Time Machine. Que faire d’un vieux Mac en PowerPC qui traîne, abandonné, dans un coin ? Si on s’en servait comme « serveur » ? Je vais vous publier quelques papiers sur le sujet, en prenant des cas concrets. On va commencer par faire un serveur Time Machine.

Faire un serveur Time Machine, ce n’est pas trivial. Apple a modifié pas mal de choses avec Lion et Mountain Lion et une technique qui fonctionnait très bien avec les OS précédents est devenue obsolète. Concrètement, une bonne partie des tutoriaux qui utilisent Netatalk 2.x ne fonctionnent tout simplement pas avec Lion.

Je peux vous dire que c’est le cas : avant que ça fonctionne, j’ai testé plusieurs « pas à pas » et Mountain Lion n’a jamais vraiment apprécié.

Dans mon cas, j’ai utilisé une (très) vieille machine : un vénérable Power Mac G3 Blanc et Bleu de 1998. C’est un modèle à 300 MHz, avec seulement 128 Mo de RAM et un disque dur de 80 Go de 2,5 pouces sur l’interface ATA du lecteur optique. Ce n’est pas une machine très adaptée : elle n’accepte pas les disques durs de plus 120 Go et l’interface Ultra DMA a un bug, ce qui oblige à utiliser une interface à 16 Mo/s. Enfin, l’interface Ethernet de la machine est limitée à 100 mégabits/s.

Avec un Power Mac G4 plus récent, un Mac mini (bon choix) ou même un Xserve, il y a moyen de faire des choses intéressantes. Ce que j’ai ici, c’est surtout de la démonstration. Dans l’absolu, une machine avec des connecteurs SATA (ou une carte dédiée) et une interface à 1 gigabit/s est recommandée.

Pour le test, j’ai utilisé une distribution Linux, même si c’est a priori possible de faire la même chose avec Darwin pour les amateurs, on essayera peut-être un jour.

Première chose, installer Linux. Sur une plateforme PowerPC, on va installer une Debian PowerPC. Il suffit d’aller télécharger l’ISO « netinstall » pour PowerPC sur le site officiel.

Une fois l’ISO gravée, il faut booter dessus. Dans un monde idéal, il suffit de presser C au démarrage et ça démarre sur le CD. On va dire que ça marche, sinon il y a toujours la case Open Firmware.

Premier écran, on choisit Francais.
Puis France.
Puis Français (en fonction de votre clavier, ceci-dit).

Il faut ensuite donner un nom à la machine (dans mon cas PowerMacBlancBleu).
Pour le domaine, vous pouvez laisser le tout vide.

On entre ensuite un mot de passe root, important.

Le système va demander un nom d’utilisateur, important. j’ai choisi Tmuser. On entre aussi son mot de passe.

Passons à l’installation. Ne nous prenons pas la tête, on va utiliser le disque entier : Assisté – utiliser un disque entier.

On sélectionne le disque dur à utiliser (si on en a plusieurs) et on choisit Tout dans une seule partition, vu l’usage ce n’est pas un problème. Plus qu’à confirmer que c’est bon — attention, ça efface tout — et on passe à la suite.

On choisit maintenant le serveur le plus proche (la France a priori). Ensuite le serveur, puis éventuellement un proxy.

Maintenant, on va installer le strict minimum : Utilitaires standard du système et Serveur SSH.

Une fois que c’est fait, le système est installé, on a fini la première partie. Linux devrait démarrer sans soucis.

A partir de maintenant, on peut se passer de clavier, souris, etc. On va passer en SSH depuis un autre appareil, c’est plus simple.

Les outils pour la sauvegarde

On va donc se connecter en SSH sur la machine. C’est assez simple depuis le Terminal de Mac OS X. Si vous n’avez pas l’IP, des outils comme Fing sont efficaces sur iOS.

ssh root@IP_de_la_machine

On se connecte en root pour la configuration, c’est mal, mais c’est plus simple.

Première chose, installer les bibliothèques nécessaires pour le tout. On a besoin des outils de compilation, d’un client « Bonjour » open source, de ce qu’il faut pour chiffrer les mots de passe.

apt-get install build-essential
apt-get install libdb4.8-dev db4.8-util
apt-get install avahi-daemon libavahi-client-dev
apt-get install libgcrypt11 libgcrypt11-dev

Maintenant, on va créer un dossier à partager, qui contiendra la sauvegarde. On va lui donner les droits.

cd /home/tmuser
mkdir time
chown -R tmuser time

Pour la compatibilité, la dernière version stable de Netatalk 3.x est importante. Debian ne propose que la 2.1 sur Squeeze (suffisante pour Snow Leopard) et la 2.2 sur Sid (instable). On va donc télécharger directement les sources de la version 3.0.1 (la dernière actuellement disponible).

wget http://sourceforge.net/projects/netatalk/files/netatalk/3.0.1/netatalk-3.0.1.tar.gz
tar xvzf netatalk-3.0.1.tar.gz
cd netatalk-3.0.1

On va compiler le programme, ce qui peut prendre du temps selon la puissance de votre machine. Sur un pauvre G3 à 300 MHz, ça prend quelques minutes.

./configure --with-init-style=debian --with-zeroconf
make
make install

Normalement, c’est maintenant fonctionnel. Il reste à configurer le logiciel. Pour un usage « grand public », on va passer outre certaines sécurités, pour le côté pratique de la chose.

nano /usr/local/etc/afp.conf

On va maintenant copier les lignes suivantes dans le fichier de configuration.
Les paramètres uam list indique qu’on ne peut se connecter qu’avec un utilisateur défini (pas d’invités).
On permet ici de garder le mot de passe en mémoire, pour une (re)connexion plus rapide.
Le paramètre mimic model va afficher l’image d’un Power Mac dans le Finder, on peut aussi écrire Xserve, TimeCapsule, etc. Dommage qu’Apple ne propose pas le Power Mac G3…
Avec valid user, on indique l’utilisateur qui a le droit de se connecter.
On va placer le nom du lecteur partagé entre les crochets.
Ensuite le chemin du répertoire à partager.
Enfin, on active le support de Time Machine.

;
; Netatalk 3.x configuration file
; http://netatalk.sourceforge.net/3.0/htmldocs/afp.conf.5.html
;

[Global]
; Global server settings
vol preset = default_for_all_vol
log file = /var/log/netatalk.log
uam list = uams_dhx.so,uams_dhx2_passwd.so
save password = yes
mimic model = PowerMac

[default_for_all_vol]
cnid scheme = dbd
valid users = tmuser

[Mon Time Machine]
path = /home/tmuser/time
time machine = yes

On sauve (ctrl + o) puis on quitte (ctrl + x) et on relance le service.

service netatalk restart

Maintenant, on se rend dans le Finder sur le Mac et on vérifie que ça marche.

Une fois que c’est bon, on peut redémarrer le serveur et se (re)connecter en SSH pour simplement relancer le service. Deux commandes sont nécessaires pour que Netatalk se lance bien au démarrage.

/etc/init.d/netatalk start
update-rc.d netatalk defaults

Normalement, ça doit fonctionner. Si vous avez des soucis, posez vos questions dans les commentaires. Je ne suis pas un grand expert en Linux et certaines choses ne sont peut être pas faites dans les règles, mais ça fonctionne.