Macberry Pi : configurer un Raspberry Pi et l'utiliser comme serveur Time Machine

Antoine Collin |

Le Raspberry Pi. Ce petit ordinateur annoncé en 2011 a été vendu à plus d'un million d'exemplaires depuis le début de sa commercialisation il y a un an. Nous vous l'avions présenté en juin 2012, nous vous proposons aujourd'hui une série d'articles qui va vous permettre d'intégrer facilement un Raspberry Pi dans un environnement Apple.






Installer et configurer un Raspberry Pi



La première chose à faire est d'acheter un Raspberry Pi. Nous avons besoin de la version B de l'appareil, qui est doté d'une prise RJ45 et vaut environ 35 €.



En plus de la carte elle-même, il nous faudra une carte SD pour le système (nous vous recommandons une carte SDHC Class 6 de 4 Go), une alimentation USB capable de fournir 700 mA au minimum (un chargeur d'iPhone est parfait pour cet usage), un câble microUSB et un câble RJ45 pour relier le Raspberry Pi au réseau. Dans notre cas, nous avons aussi investi dans un boîtier, mais un simple morceau de carton suffit amplement.





Pour l'installation initiale, il faudra aussi un clavier USB, un câble HDMI et un écran compatible, n'importe quel téléviseur LCD devrait suffire. Un Mac avec un lecteur de cartes SD est aussi indispensable pour l'installation.



L'installation initiale



Nos explications ont été écrites pour des personnes qui n'ont jamais utilisé de distribution Linux et n'importe quel néophyte devrait pouvoir mettre en place un serveur Time Machine. La première chose à faire est d'aller télécharger une image du système du Raspberry Pi. Nous avons utilisé la distribution Raspbian qui est proposée par la fondation à l'origine du projet. Il s'agit d'une variante de la distribution GNU/Linux Debian optimisée pour le processeur ARM du Raspberry Pi.



Une fois l'image téléchargée, nous allons utiliser un petit outil qui va installer le système sur la carte SD. Attention, cette dernière sera totalement effacée. Téléchargez RPi-sd card builder, un utilitaire qui va préparer la carte. Le fonctionnement est simple : vous choisissez l'image téléchargée précédemment, vous choisissez la carte SD et vous attendez. Avec une carte de 4 Go Class 6, l'installation prend moins de 5 minutes.





Maintenant, il faut placer la carte dans l'emplacement SD du Raspberry Pi, brancher un clavier USB, le câble HDMI et la prise microUSB. Après quelques secondes, le système devrait démarrer et vous allez arriver sur l'écran de configuration du Raspberry Pi.



La première chose à faire est d'utiliser tout l'espace de la carte SD, en utilisant le menu expand_rootfs. Il faut ensuite changer le mot de passe de l'utilisateur dans le menu change_pass, configurer le clavier dans configure_keyboard et activer l'accès SSH dans ssh.







Pour les amateurs, il est aussi possible d'overclocker le Raspberry Pi, mais nous n'en avons pas besoin dans notre cas.



Petite subtilité ici, il existe en fait plusieurs modèles de Raspberry Pi : la version A et la version B originales disposent de 256 Mo de RAM, partagée entre le système et le contrôleur vidéo, alors que la version B actuelle dispose de 512 Mo de RAM. Si vous avez un Raspberry Pi récent doté de 512 Mo de RAM, il n'y a rien à faire ici, alors que si vous avez un modèle doté de 256 Mo de RAM, il faut se rendre dans memory_split et définir une mémoire vidéo de 16 Mo. Comme nous n'allons pas utiliser la partie vidéo du Raspberry Pi, nous allons allouer le maximum de mémoire au système.



sudo reboot


Une fois le Raspberry Pi redémarré, il faut vous connecter avec le nom d'utilisateur pi et votre mot de passe. Nous allons ensuite taper une commande qui va nous permettre d'obtenir l'adresse IP du Raspberry Pi.



ifconfig


Une fois l'adresse obtenue, vous pouvez ranger le clavier et l'écran, la suite se fera sur votre Mac.



Détection du Raspberry Pi



Nous allons maintenant profiter d'une technologie intégrée à Mac OS X depuis Jaguar, Bonjour. Cette technologie permet à un périphérique de s'annoncer directement sur le réseau, ce qui va permettre d'éviter d'utiliser l'adresse IP du Raspberry Pi.



Première chose à faire, lancer le Terminal sur votre Mac et taper la commande suivante, en utilisant l'adresse IP obtenue précédemment.



ssh pi@adresse_ip


Entrez votre mot de passe et tapez ensuite la commande suivante. Elle va installer Avahi, une implémentation libre du protocole Bonjour, et les programmes nécessaires à son fonctionnement.



 sudo apt-get update 


sudo apt-get install libdb5.1-dev db5.1-util libgcrypt11-dev avahi-daemon libavahi-client-dev


Une fois Avahi installé, la commande suivante va permettre de lancer le programme à chaque démarrage.



sudo update-rc.d avahi-daemon defaults


Maintenant, nous allons utiliser Avahi pour que le Raspberry Pi soit accessible sur une adresse compréhensible et pas sur son adresse IP. La commande va créer un service qui va permettre au Raspberry Pi de s'annoncer pour un accès SSH. Pour ceux qui ne connaissent pas Nano, il suffit d'utiliser les commandes ^O pour sauver et ^X pour quitter.



sudo nano /etc/avahi/services/ssh.service


Dans ce fichier, il faut copier les données suivantes :



<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h SSH</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>


On va aussi en profiter pour changer le nom utilisé pour identifier le Raspberry Pi sur le réseau. Par défaut, il utilise le hostname raspberrypi, nous allons utiliser MacberryPi.



sudo nano /etc/hosts


Dans ce fichier, il faut changer la valeur qui suit 127.0.1.1 par le nom voulu.



sudo nano /etc/hostname


Ici, il faut mettre en début de fichier le nom voulu.



Une fois que c'est fait, il faut redémarrer et vérifier que le Raspberry Pi est accessible. La commande suivante permet de redémarrer le périphérique.



sudo reboot


Si tout s'est bien passé, l'accès SSH va être fermé et vous pourrez ensuite vous connecter après environ une minute avec la commande qui suit.



ssh pi@MacberryPi.local


Le Raspbbery Pi est donc accessible en SSH via l'adresse MacberryPi.local, ce qui évite de devoir déterminer l'adresse IP de l'appareil : c'est le Raspberry Pi lui-même qui va effectuer la correspondance et vous simplifier la vie.



Nous pourrions éteindre le Raspberry Pi avec la commande suivante, mais nous allons plutôt nous attaquer à le transformer en serveur Time Machine.



sudo halt




Un Raspberry Pi comme serveur de fichiers et serveur Time Machine



S'il est possible de partager le contenu de la carte SD du Raspberry Pi, nous vous conseillons tout de même d'utiliser une clef USB ou un disque dur dédié à cet usage, en fonction de vos besoins. Pour créer un espace accessible depuis tous vos appareils, une simple clef USB suffira, pour effectuer des sauvegardes Time Machine, un disque dur est évidemment requis, pour des questions de capacité.



MacBerry Pi



Le Raspberry Pi, spécialement dans ses premières versions, souffre d'un souci : des ports USB incapables de fournir les 500 mA de la norme. Concrètement, les disques durs 2,5" alimentés par le bus USB ne fonctionnent pas directement sur le Raspberry Pi, il est nécessaire d'utiliser une source d'alimentation externe comme un chargeur de smartphone ou un hub USB alimenté. Le meilleur choix reste bien évidemment un modèle 3,5", qui dispose de sa propre alimentation. Ne vous encombrez pas d'un modèle USB 3.0 : le Raspberry Pi se limite à l'USB 2.0.



La gestion du stockage



Avant d'installer les logiciels nécessaires, nous allons d'abord nous occuper du stockage. Il existe trois solutions : utiliser un disque dur formaté dans un système de fichiers adapté à Linux (ext4), utiliser le système de fichier HFS+ d'Apple ou utiliser un disque dur formaté en NTFS (via NTFS3G, comme sur Mac). Nous n'allons aborder que la seconde solution.



Branchez le disque dur au Raspberry Pi et connectez-vous, via une commande dans le Terminal. Pour simplifier les choses, nous supposons que vous avez formaté le disque dur en HFS+ depuis un Mac.



ssh pi@MacberryPi.local


Maintenant, nous allons installer les outils permettant de lire et écrire sur une partition en HFS+ depuis Linux.



sudo apt-get install hfsplus hfsutils hfsprogs


Une fois l'installation effectuée, nous allons monter la partition et modifier le système pour qu'elle soit chargée à chaque démarrage. Attention, le système cherchera le disque dur à chaque démarrage, ce qui peut poser des soucis s'il est débranché, en arrêtant le processus de démarrage. Dans ce cas, le plus simple est d'éteindre le Raspberry Pi et de le rallumer en branchant le disque dur.



sudo blkid


Cette commande va lister les périphériques et vous devriez obtenir un résultat de ce type. Il faut copier la valeur UUID, que nous allons utiliser pour identifier le disque dur.



/dev/sda1: UUID="2b629aaa-74c8-348b-b78a-6c11e2b9ca90" LABEL="Time Machine" TYPE="hfsplus"


Maintenant, créez un point de montage dans le dossier media, que nous allons appeler ici timemachine.



sudo mkdir /media/timemachine


Dans ce dossier, nous allons monter automatiquement notre disque dur, en allant modifier le fichier /etc/fstab. Attention, alors que la commande blkid donne l'UUID entre guillemets, il ne faut pas en mettre dans le fichier fstab. Il faut donc ajouter la seconde ligne de code à la fin du fichier fstab pour monter automatiquement le disque dur.



sudo nano /etc/fstab
UUID=votre_UUID /media/timemachine hfsplus rw,force,exec,auto,users 0 3


Maintenant, nous allons redémarrer le Raspberry Pi, nous reconnecter et vérifier que le disque dur est bien monté. Si tout se passe bien, les données déjà présentes sur le disque dur devraient apparaître.



sudo reboot
ssh pi@MacberryPi.local
cd /media/timemachine
ls


L'installation de Netatalk



Apple, pour le partage de fichiers, utilise son propre protocole, l'AFP. Une implémentation libre de ce dernier existe, elle est d'ailleurs utilisée dans beaucoup de NAS : il s'agit de Netatalk. Pour une prise en charge fonctionnelle de Time Machine sous Lion et Mountain Lion, il est nécessaire d'installer une version récente du logiciel, nous allons donc télécharger et compiler la dernière version de Netatalk (la 3.0.2 à l'heure où nous écrivons ces lignes). Le processus peut être long, le Raspberry Pi, rappelons-le, n'est pas un foudre de guerre.



cd ~/
wget http://sourceforge.net/projects/netatalk/files/netatalk/3.0.2/netatalk-3.0.2.tar.gz
tar xvzf netatalk-3.0.2.tar.gz
cd netatalk-3.0.2
./configure --with-init-style=debian --with-zeroconf
make
sudo make install


Une fois Netatalk compilé et installé, nous allons lancer le logiciel automatiquement au démarrage, avec la commande suivante.



sudo update-rc.d netatalk defaults


Partager un dossier via AFP



Nous allons maintenant partager un dossier du disque dur via AFP sur le réseau. Nous allons donc créer un utilisateur dédié (pour plus de sécurité) et un dossier, auquel nous allons lier le compte. C'est ce compte utilisateur qu'il faudra utiliser (avec son mot de passe associé) pour accéder au partage à travers le Finder.



cd /media/timemachine
mkdir AFP
sudo adduser afp
sudo chown afp /media/timemachine/AFP


La seconde étape consiste à configurer Netatalk pour que le dossier soit partagé.



sudo nano /usr/local/etc/afp.conf


Nous allons modifier le fichier pour qu'il ressemble à celui qui suit. La variable mimic model indique que le Raspberry Pi se fera ici passer pour un boîtier Time Capsule.



[Global]
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 = TimeCapsule

[default_for_all_vol]
cnid scheme = dbd


À la fin de notre fichier, nous allons ensuite ajouter notre partage. Vous devez entrer le nom du partage entre crochets et ajouter le chemin. Vous pouvez insérer plusieurs utilisateurs en modifiant la variable valid users et en en ajoutant d'autres : il suffit de les séparer par une espace. Puis il faut sauver (^O) et quitter (^X).



[Mon Premier partage AFP]
path = /media/timemachine/AFP
valid users = afp


Maintenant, vous pouvez redémarrer Netatalk et attendre que le partage apparaisse dans le Finder.



/etc/init.d/netatalk restart




Effectuer des sauvegardes Time Machine



Pour effectuer des sauvegardes Time Machine en réseau, le fonctionnement est totalement identique. Il faut créer un utilisateur (pour plus de sûreté), choisir ce que l'on veut partager et l'activer dans Netatalk.



cd /media/timemachine
mkdir timemachine
sudo adduser timemachine
sudo chown afp /media/timemachine/timemachine
sudo nano /usr/local/etc/afp.conf


La seule différence vient d'une variable à ajouter : time machine = yes.



[Mon Time Machine]
path = /media/USBstorage/timemachine
valid users = timemachine
time machine = yes


Comme auparavant, il faut redémarrer Netatalk pour que le partage apparaisse.



/etc/init.d/netatalk restart


Une fois que c'est fait, OS X devrait vous proposer votre Raspberry Pi dans la liste des disques durs disponibles pour une sauvegarde Time Machine.





Un point sur les performances



Avant de terminer, un point sur les performances. Le Raspberry Pi n'est pas un appareil très rapide, et son sous-système USB est lent : l'Ethernet et les prises USB 2.0 se partagent le même bus en interne et les performances sont donc limitées. Dans le meilleur des cas, vous atteindrez donc les limites de l'Ethernet à 100 mégabits/s de l'appareil (12,5 Mo/s) mais vous serez parfois en dessous, notamment dès qu'il faudra traiter des petits fichiers. Pour information, les performances sont généralement supérieures quand le disque dur est formaté en ext4 et nettement inférieures quand le disque dur est formaté en NTFS. Dans notre cas, le côté pratique du HFS+ est toutefois plus avantageux que le faible gain dû au passage en ext4.



Le Raspberry Pi n'est donc pas totalement viable pour effectuer des sauvegardes Time Machine, spécialement si vous avez beaucoup de données à sauver. Mais pour sauvegarder une machine comme un MacBook Air doté d'un SSD de 64 Go, les performances sont suffisantes. Il faut simplement bien prendre en compte que la sauvegarde initiale sera bien plus lente qu'avec un véritable boîtier Time Capsule ou avec un disque dur en local.



Dans un prochain article, nous verrons comment utiliser le Raspberry Pi pour partager une imprimante via AirPrint, pour l'utiliser avec un iPad, un iPhone ou même un Mac OS X récent.


avatar PA5CAL | 
Je pense maintenant avoir réussi à régler (non sans mal) les problèmes d'alimentation sur mes RasPi. Les soucis avec les périphériques USB se font beaucoup plus discrets. Néanmoins, ils n'ont toujours pas disparu. Un certain nombre de personnes travaillant sur la question avec des moyens appropriés (développeurs de systèmes ou d'OS notamment) ont mis en évidence une perte de packets de données par la pile USB de l'appareil, et semblent mettre en cause le firmware ou le hardware de ce dernier. À ce jour, la question n'est toujours pas réglée. https://github.com/raspberrypi/firmware/issues/19
avatar Link1993 | 
Attention, ceux qui lisent le tuto sur iphone, pour les outils de lecture hfs+, il faut retirer le tiret ! (Sais pas si c'est pareil sur la page web de macg) C'est : Sudo apt-get install hfsutils (Au lieu de hfsu-tils) Sinon, si vous cherchez un bon client ssh sur iphone, il y a server auditor, qui est gratuit mais tres efficace ! :) Sinon, (re)merci macg ! :D
avatar sekaijin | 
Merci pour ces articles. juste une petite note il n'est pas nécéssaire de se connecter sur Rasp et de tapper ifconfig. après le reboot directement de puis son mac se connecter en http sur son routeur ou sa box (en général http://168.0.0.1 par defaut) et dans l'interface on a la liste des machines connecté dont le raspberry on a donc son adresse Ip que l'ont peut utiliser Merci bien l'utilisation ownCloud me parait intéressante A+JYT
avatar Antoine Collin | 
@sekaijin : quand on a beaucoup de préiphériques IP, c'est pas si évident. Ici, j'ai plus de 20 trucs avec une adresse (à la maison, donc) et trouver le Raspberry est pas si évident.
avatar Anonyme (non vérifié) | 
bonsoir j ai tout suivis a la lettre mais mon disque dur ne ce map pas dans mon finder cela fait plusieur heure que je suis decus peut on utiliser un disque qui contient deja la sauvegarde timemachine en mac osx journalisée ?
avatar Berechit | 
Bonjour J'ai bien suivi le tuto mais je plante très vite lors de l'installation de Avahi et compagnie : j'obtiens l'erreur : Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main geoip-database all 20120809-1 404 Not Found et ce, pour tous les packages J'ai un RaspBerry avec une carte SD préchargée avec le système (un coup de flemme : je l'ai achetée avec l'UC) Y a-t-il une procédure de mise à jour des adresses pour apt-get ?
avatar Berechit | 
Bon, correctif : je me suis fais avoir comme un bleu : il a suffit d'un apt-get update pour tout avoir d'équerre. Faut que je me réveille !
avatar Anonyme (non vérifié) | 
quelqu'un peut m aider si je donne un accès ssh je bute sa m énerve peut on utiliser un disque qui contient deja la sauvegarde timemachine en mac osx journalisée ?
avatar Anonyme (non vérifié) | 
Moi, j'ai un soucis, j'ai essayé une première fois la manip mais mon disque dur n'était pas suffisant. J'ai donc décidé de recommencer. Nouveau disque, formatage et re-installation du système sur la carte et là, j'ai: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is: un nombre bizzard Please contact your system administrator. Add correct host key in /Users/aline/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/aline/.ssh/known_hosts:1 RSA host key for 192.168.1.17 has changed and you have requested strict checking. Host key verification failed. Que faire ?
avatar Antoine Collin | 
Dans le Finder, faire Aller -> Aller au dossier... et taper "/Users/Ton_utilisateur/.ssh" (sans les guillemets) Ensuite, il suffit de supprimer le fichier known_hosts
avatar macleon | 
j'ai un pb quand je monte mon disque : pi@Macberrypi ~ $ sudo mount -t hfsplus /dev/sdb1 /media/timemachine mount: warning: /media/timemachine seems to be mounted read-only. pi@Macberrypi ~ $ please Help me...
avatar macleon | 
J'ai resolu le pb en forcant le RW : sudo mount -o remount,rw,force /media/timemachine Please don't help me
avatar barzi | 
Il y a à priori une erreur dans la partie "Partager un dossier via AFP". La commande "mkdir AFP" devrait être "sudo mkdir AFP". C'est du moins ce que j'ai dû faire sur mon Raspi.
avatar Antoine Collin | 
Normalement, ça doit passer sans sudo, mais ça dépend un peu des droits sur le dossier.
avatar ragmaxone | 
merci pour ces articles!! question : voulant utiliser XBMC sans trop me compliqué la vie, j'ai installé RaspBMC et sur cette distrib' il y'a des erreurs (flags manquants, paquets introuvables...) à l'installation et au final ça ne fonctionne pas, soit le partage n'est pas actif, soit le Pi ne démarre pas :( quelqu'un aurait réussi à faire ces manip' sur cette distrib'?
avatar mit35boss | 
Je n'arrive pas à me connecter au dossier partagé par AFP sur mon mac. J'ai essayé login = afp + mot de passe rentré à l'étape "adduser" mais ça ne marche pas. Quelqu'un peut il me venir en aide ?
avatar PiRMeZuR | 
@mit35boss J'ai eu un problème similaire que j'ai résolu en utilisant l'utilisateur "pi" (mot de passe "raspberry" chez moi) déjà existant.
avatar PiRMeZuR | 
Je t'invite à venir en parler sur le forum UNIX, ou j'ai fait un bilan.
avatar Anonyme (non vérifié) | 
Salut, Comment faire marche arrière ? J'ai presque fini ce tuto mais après réflexion, je me suis rappelé que Time machine sauvegarde l'ensemble du Mac et non le ou les dossiers souhaités. Du coup, je voudrais simplement mettre un disque en partage, mais je préférais repartir propre. Merci.
avatar Anonyme (non vérifié) | 
Bonjour, quand je fais "mkdir AFP" le raspberry me dit Permission Denied avec un "sudo mkdir AFP" , il me dit Input/output error... Que faire ?
avatar Anonyme (non vérifié) | 
Salut à tous, et merci pour ce tuto. Pour que tout fonctionne j'ai du faire un "sudo /etc/init.d/netatalk restart" ;) Sinon je suggère d'ajouter également dans /usr/local/etc/afp.conf la ligne "hostname" comme ci-dessous : [Global] hostname = Time Capsule vol preset = default_for_all_vol Ça fait plus fini comme travail ;) Encore merci pour ce tuto ! à très vite !
avatar buluhab | 
Monter le hfs tout ça c'est bien, mais j'ai lu (ici: http://www.pihomeserver.fr/tag/hfs/) qu'il fallait désactiver la journalisation sur le disque (pour pouvoir le monter en lecture/écriture). Or pour Time Machine, il semble obligatoire d'avoir la journalisation activée. C'est risqué de la désactiver ?
avatar p13 | 

Pour les personnes ayant réussi la programmation, est-ce que cela fonctionne presque aussi bien qu'une time capsule traditionnelle ?

Mon usage en serai principalement sauvegarde time marche de mon mbp mi 2012 et stockage de fichier volumineux que je n'aurais pas forcement besoin en mobilité ( bibliothèque vidéo).

Merci pour vos retours

avatar leolelego (non vérifié) | 

Merci Macg ! J'avais un problème pour monter mon disque en hfsplus grace au fstab (surement des mauvaise options) !

Pages

CONNEXION UTILISATEUR