Transformer le Raspberry Pi en Time Machine



Pour ceux qui ont un Mac, vous connaissez Time Machine qui permet de faire des sauvegardes incrémentales de votre système vers un disque dur ou une Time Capsule. Nous allons voir comment transformer notre Raspberry Pi Home Server en une Time Capsule.

Transformer le Raspberry Pi en Time Machine

Dans l‘article de préparation du disque dur nous avions créé une partition HFS+. C’est le format qui doit être utilisé pour pouvoir sauvegarder vos données depuis le Mac. Nous allons voir comment la préparer et comment connecter le Mac vers le Raspberry Pi.

  1. Installer le service avahi si ce n’est pas déjà (voir l’article sur AirPlay)
    apt-get install avahi-daemon libavahi-client-dev libdb5.3-dev db-util db5.3-util libgcrypt11 libgcrypt11-dev
  2. Télécharger Netatalk 3.0 (avec wget par exemple). A l’écriture de cet article,il semble que la version 3.1 ne fonctionne pashttp://sourceforge.net/projects/netatalk/files/netatalk/3.0/netatalk-3.0.tar.gz/download
  3. Lancer la configuration, la compilation et l’installation
    cd netatalk-3.0
    ./configure --with-init-style=debian --with-zeroconf
    make
    make install
  4. Installer les packages contenant les outils pour les partitions HFS
    apt-get install hfsplus hfsutils hfsprogs
  5. Créer la partition HFS+
    mkfs.hfsplus /dev/sda1
  6. Désactiver le journaling sur la partition HFS+ sinon l’enregistrement Time Machine ne fonctionnera (et le disque ne sera pas trouvé)
    1. Aller dans le home
    2. Créer un fichier disable.c en y copiant le contenu suivant
      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <sys/types.h>
      #include <sys/mman.h>
      #include <fcntl.h>
      #include <byteswap.h>
      int main(int argc, char *argv[])
      {
              int fd = open(argv[1], O_RDWR);
              if(fd < 0) {
                       perror("open");
                       return -1;
              }
              unsigned char *buffer = (unsigned char *)mmap(NULL, 2048, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
              if(buffer == (unsigned char*)0xffffffff) {
                       perror("mmap");
                       return -1;
              }
              if((buffer[1024] != 'H') && (buffer[1025] != '+')) {
                       fprintf(stderr, "%s: HFS+ signature not found -- aborting.n", argv[0]);
                       return -1;
              }
              unsigned long attributes = *(unsigned long *)(&buffer[1028]);
              attributes = bswap_32(attributes);
              printf("attributes = 0x%8.8lxn", attributes);
              if(!(attributes & 0x00002000)) {
                       printf("kHFSVolumeJournaledBit not currently set in the volume attributes field.n");
              }
              attributes &= 0xffffdfff;
              attributes = bswap_32(attributes);
              *(unsigned long *)(&buffer[1028]) = attributes;
              buffer[1032] = '1';
              buffer[1033] = '0';
              buffer[1034] = '.';
              buffer[1035] = '0';
              buffer[1036] = 0;
              buffer[1037] = 0;
              buffer[1038] = 0;
              buffer[1039] = 0;
              printf("journal has been disabled.n");
              return 0;
      }
    3. Compiler le programme
      gcc disable.c
    4. Désactiver le journal
      ./a.out /dev/sda1
  7. Créer un user timemachine. Mémorisez le mot de passe que vous allez choisir il sera demandé sous Time Machine pour accéder au disque
    adduser timemachine
  8. Créer le point de montage de la partition
    mkdir /media/usbdrive/timemachine
  9. Modifier les droits du point de montage avec le user et le groupe créé à l’étape 7
    chown timemachine:timemachine /media/usbdrive/timemachine
  10. Monter la partition /dev/sda1 avec le user timemachine en lecture/écriture. Ajouter la ligne suivante dans /etc/fstab
/dev/sda1  /media/usbdrive/timemachine        hfsplus force,rw,uid=timemachine,gid=timemachine   0       0
  • Vous pouvez tester le bon fonctionnement du montage
    mount /dev/sda1

    La commande mount doit vous afficher la ligne suivante (à la suite des autres points de montage)

    /dev/sda1 on /media/usbdrive/timemachine type hfsplus (rw,relatime,umask=22,uid=1001,gid=1002,nls=utf8)
  • A ce stade, le disque est prêt. Il reste à le rendre disponible sur le réseau. Pour cela, on commence par configurer netatalk. Editer le fichier /usr/local/etc/afp.conf pour définir où se trouve le répertoire pour Time Machine
    [Global]
    
uam list = uams_guest.so, uams_dhx.so, uams_dhx2.so,
    [Time Machine Raspberry]
    path = /media/usbdrive/timemachine

    time machine = yes
  • Créer le fichier /etc/avahi/services/afpovertcp.service. Le Raspberry Pi va apparaitre avec l’icône d’un serveur Mac.
    <?xml version="1.0" standalone='no'?><!--*-nxml-*-->
    <!DOCTYPE service-group SYSTEM "avahi-service.dtd">
    <service-group>
      <name replace-wildcards="yes">%h</name>
      <service>
        <type>_afpovertcp._tcp</type>
        <port>548</port>
      </service>
      <service>
        <type>_device-info._tcp</type>
        <port>548</port>
        <txt-record>model=Xserve</txt-record>
      </service>
    </service-group>
  • Relancer les services netatalk et avahi
    update-rc.d netatalk defaults
    service netatalk restart
    service avahi-daemon restart
  • Maintenant dans le finder, vous devez voir votre Raspberry Pi

    Le Raspberry Pi dans le Finder

    Le Raspberry Pi dans le Finder

  • Ouvrir les préférences Time Machine, choisir le disque

    Choix du disque sous Time Machine

    Choix du disque sous Time Machine

  • Saisir le user timemachine et son mot de passe

    Saisie du user et mot de passe pour Time Machine

    Saisie du user et mot de passe pour Time Machine

  • Et voilà, la sauvegarde est en cours !

    Sauvegarde Time Machine en cours

    Sauvegarde Time Machine en cours

Voilà. Une belle Time Capsule, certes sans le beau logo d’Apple mais pas au prix d’Apple non plus ! 😉

Vous aimerez aussi...

  • Etienne

    Bonjour, merci pour tous ces articles précieux. Bien qu’ayant désactivé la journalisation je n’arrive pas à voir le disque monté selon les explications données. la vérification de mount indique uid=1001,gid=1001 et non 1002 est-ce la source du problème ? si oui comment y remédier ?

    merci

    • Etienne

      Au fait pour enlever la journalisation (et la remettre) on peut aussi passer par l’utilitaire de disque de MacOS (Activer le menu fichier avec Alt)

    • Etienne

      Problème résolu, certainement un caractère indésirable dans afp.conf. Après avoir modifié time machine = yes en time machine = no puis de nouveau time machine = yes cela a marché.

  • Bonjour,

    L’uid doit etre celui du user créé à l’étape 7. Il n’a pas forcement la valeur 1001.

    Si le disque n’est pas visible : sous linux ou mac os ? Est-ce qu’il est bien reconnu par linux (voir le résultat de la commande dmesg une fois le disque branché) ?

    • Etienne

      Le disque est visible sous Linux. Il a 2 partitions une FAT et une HFS+. En ajoutant /mnt/musique (FAT) dans netatalk ca marche, par contre /mnt/video (HFS+) n’est pas visible sur le mac. Si ce seul partage est configuré dans netatalk.conf message connexion impossible. Une idée ?

      • Bizarre on dirait qu’il y a un truc qui ne s’est pas fait aux étapes 12, 13 ou 14 … Les services netatalk et avahi tournent bien ?

      • Etienne

        message warning sur la commande sudo update-rc.d netatalk defaults

        update-rc.d: using dependency based boot sequencing

        update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match netatalk Default-Stop values (1)

        Les services tournent

  • silco

    Bonsoir j’ai démarré le tuto et je suis tombé sur une erreur des la premiere commande j’ai cette erreur:

    E: Unable to locate package libdb5.3-dev

    E: Couldn’t find any package by regex ‘libdb5.3-dev’

    E: Unable to locate package db5.3-util

    E: Couldn’t find any package by regex ‘db5.3-util’

    C’est normale ?

    • Non ce n’est pas normal. As tu tenté un « apt-get update » avant ?

    • Chid Gilovitz (@chidakash)

      I had the same error; I went ahead and tried to configure netatalk anyway, and it failed becuase it couldn’t find a database. So I ran the ‘apt-get install avahi-daemon libavahi-client-dev libdb5.3-dev-util db5.3 db-util libgcrypt11 libgcrypt11-dev’ command again and it found the packages in question and installed them without any problems.

      • Thanks for the tip. I will update the post with an instruction to rerun the apt-get in case of a missing package error

  • silco

    J’ai fait apt-get update ça a pas marché j’ai regarder sur la toile est pas d’info non plus. Et toujours la même erreur de plus je comprends pas le BY REGEX.

    • Ca c’est vraiment très bizarre si l’update ne fonctionne pas !

      Pour le REGEX c’est une recherche du package dans la liste des packages avec une expression régulière ? 🙂 Aucune idée d’où ca vient.

      Tu as tenté le reboot je suppose ?

  • silco

    Par contre je suis sous linux et pas sous debian sa doit joué nan?

    • Debian est une distribution Linux. Je bloque sur le plantage de l’update. Pas d’idée …

      • silco

        Faudrait pouvoir editer ces commentaires car j’ai aussi oublié de dire que le reboot n’avait rien changer. Quand je disais linux je pensais à lubuntu mais apres je sais pas si cela joue.

  • silco

    Bonsoir, je viens de démarrer ce tuto mais arrivé à l’étape 11 : « mount /dev/sda1 » voici ce que me revoie le terminal :

    « [mntent]: warning: no final newline at the end of /etc/fstab

    mount: unknown filesystem type ‘hfsplus’ »

    J’ai mis dans le fichier fstab # au début de la ligne mais ça n’a rien changé.

    Si quelqu’un a une idée ce ne serait pas de refus merci.

    • Pour le message d’alerte, il faut que tu ajoutes une ligne vide à la fin de ton fichier ()
      Pour le type hfsplus, tu es certain d’avoir installer les paquets de l’étape 4 ?

  • silco

    Merci pour le ligne et j’ai refais le 4 :

    root@raspberrypi:/home/pi# apt-get install hfsplus hfsutils hfsprogs

    Lecture des listes de paquets… Fait

    Construction de l’arbre des dépendances

    Lecture des informations d’état… Fait

    hfsplus est déjà la plus récente version disponible.

    hfsprogs est déjà la plus récente version disponible.

    hfsutils est déjà la plus récente version disponible.

    J’ai aussi rebooté mais cela ne donne rien toujours la même réponse.

  • guiguidu31300

    Bonjour,

    j’ai un gros problème : j’ai suivi à la lettre toutes les instructions et je n’arrive pas à me connecter sur ma Raspberry depuis mon Mac ( Mountain Lion )

    J’ai regardé dans les logs et voici l’erreur :

    Feb 20 17:51:42.703963 netatalk[3649] {netatalk.c:280} (N:Default): Netatalk AFP server starting

    Feb 20 17:51:42.793079 cnid_metad[3651] {cnid_metad.c:518} (N:AFPDaemon): CNID Server listening on localhost:4700

    Feb 20 17:51:42.839812 afpd[3650] {status.c:791} (I:AFPDaemon): signature is F3BDC9EA3C2A0016DD7D5FF4660FC733

    Feb 20 17:51:42.844418 afpd[3650] {auth.c:108} (I:AFPDaemon): uam: "DHX2" available

    Feb 20 17:51:42.844629 afpd[3650] {auth.c:108} (I:AFPDaemon): uam: "DHCAST128" available

    Feb 20 17:51:42.844768 afpd[3650] {status.c:510} (I:AFPDaemon): servername: TimeMachineRas

    Feb 20 17:51:42.845036 afpd[3650] {afp_config.c:109} (N:AFPDaemon): Netatalk AFP/TCP listening on 192.168.1.8:548

    Feb 20 17:51:42.888048 afpd[3650] {afp_avahi.c:97} (I:AFPDaemon): hostname: TimeMachineRas

    Feb 20 17:51:42.888346 afpd[3650] {afp_avahi.c:114} (I:AFPDaemon): Registering server 'TimeMachineRas' with Bonjour

    Feb 20 17:51:42.904176 afpd[3650] {afp_avahi.c:312} (I:AFPDaemon): Successfully started avahi loop.

    Feb 20 17:51:42.904570 afpd[3650] {cnid.c:54} (I:AFPDaemon): Registering CNID module [last]

    Feb 20 17:51:42.904721 afpd[3650] {cnid.c:54} (I:AFPDaemon): Registering CNID module [dbd]

    Feb 20 17:51:42.904844 afpd[3650] {cnid.c:54} (I:AFPDaemon): Registering CNID module [tdb]

    Feb 20 17:51:48.171499 afpd[3656] {dsi_tcp.c:199} (I:DSI): AFP/TCP session from 192.168.1.3:62424

    Feb 20 17:51:48.177210 afpd[3650] {main.c:179} (I:AFPDaemon): child[3655]: exited 1

    Feb 20 17:51:48.189732 afpd[3650] {main.c:181} (I:AFPDaemon): child[3656]: done

    Feb 20 17:51:48.201384 afpd[3657] {dsi_tcp.c:199} (I:DSI): AFP/TCP session from 192.168.1.3:62425

    Feb 20 17:51:48.215253 afpd[3657] {uams_dhx2_passwd.c:263} (I:UAMS): DHX2 login: pi

    Feb 20 17:51:49.540654 afpd[3659] {dsi_tcp.c:199} (I:DSI): AFP/TCP session from 192.168.1.3:62427

    Feb 20 17:51:49.548820 afpd[3650] {main.c:179} (I:AFPDaemon): child[3658]: exited 1

    Feb 20 17:51:49.559559 afpd[3650] {main.c:181} (I:AFPDaemon): child[3659]: done

    Feb 20 17:51:50.458562 afpd[3660] {dsi_tcp.c:199} (I:DSI): AFP/TCP session from 192.168.1.3:62428

    Feb 20 17:51:50.476704 afpd[3660] {uams_dhx2_passwd.c:263} (I:UAMS): DHX2 login: pi

    Feb 20 17:52:14.951448 afpd[3657] {auth.c:242} (N:AFPDaemon): AFP3.3 Login by pi

    Feb 20 17:52:14.966111 afpd[3657] {netatalk_conf.c:1145} (E:Default): lstat(obj->options.configfile, &st) failed: Permission denied

    Feb 20 17:52:14.971340 afpd[3657] {auth.c:856} (N:AFPDaemon): AFP logout by pi

    Feb 20 17:52:14.976033 afpd[3657] {dsi_stream.c:479} (E:DSI): dsi_stream_read: len:0, unexpected EOF

    Feb 20 17:52:14.976248 afpd[3657] {afp_dsi.c:507} (N:AFPDaemon): afp_over_dsi: client logged out, terminating DSI session

    Feb 20 17:52:14.976540 afpd[3657] {afp_dsi.c:105} (N:AFPDaemon): AFP statistics: 0.56 KB read, 0.42 KB written

    Feb 20 17:52:14.976704 afpd[3657] {dircache.c:616} (I:AFPDaemon): dircache statistics: entries: 0, lookups: 0, hits: 0, misses: 0, added: 0, removed: 0, expunged: 0, evicted: 0

    Feb 20 17:52:14.982243 afpd[3650] {main.c:181} (I:AFPDaemon): child[3657]: done

    Feb 20 17:52:17.918154 afpd[3660] {auth.c:242} (N:AFPDaemon): AFP3.3 Login by pi

    Feb 20 17:52:17.929399 afpd[3660] {netatalk_conf.c:1145} (E:Default): lstat(obj->options.configfile, &st) failed: Permission denied

    Feb 20 17:52:17.934331 afpd[3660] {netatalk_conf.c:1145} (E:Default): lstat(obj->options.configfile, &st) failed: Permission denied

    Dans les dernières lignes, j’ai une erreur qui concerne l’authentification et la ligne indique une permission refusée.

    Mais mon mot de passe est correct et j’ai testé avec un nom d’utilisateur ( pi et timemachine ) et aucun des 2 ne fonctionne. J’ai cherché un autre tuto ou même un réponse et rien.

    Savez-vous d’où cela vient ?

    Merci d’avance.

    • Bonsoir. Avez-vous :
      - Essayé de vous connecter en ssh avec le user timemachine pour vérifier que le user est bon ?
      - Avez-vous changé les droits sur le point de montage dans fstab pour que ce soit en accord avec le user qui se connecte ? (uid / gid forcé)
      - La partition montée est bien en lecture/écriture (rw avec la commande mount)
      - Une fois connecté sur le pi en ssh avec le user timemachine, pouvez-vous créer un fichier vide sur la partition HFS ?
      - Avez-vous désactivé le journaling avec le programme C ? Sinon ça ne passera pas
      - Le mac voit le Raspberry dans le finder ?

      Courage ! 🙂

      • guiguidu31300

        Bonsoir,

        merci pour votre réponse rapide.

        - La connexion en SSH avec l’utilisateur timemachine fonctionne bien

        - Le point de montage est bien configuré pour forcer l’uid et le gid de timemachine

        - J’ai réussi à créer un dossier avec l’dentifiant timemachine via le SSH

        - La partition HFS+ n’a plus son journal ( vérifié avec Utilitaire de disque )

        - Le Mac voit bien la Raspberry mais lorsque je me connecte, l’attente est 10 sec avec un cercle qui tourne en bas, puis un message : Echec de la connexion

        Je précise que je suis sous Mountain Lion et que ma Raspberry Pi est sous Rapsbian avec tout le système à jour.

        Merci et bonne soirée.

        • Qu’est ce que la commande mount retourne ?
          Et que contient le fichier afp.conf ? J’ai déjà eu des soucis d’authentification à cause de lui mais sous ArchLinux

          • guiguidu31300

            Commande mount :

            /dev/root on / type ext4 (rw,noatime,data=ordered)

            devtmpfs on /dev type devtmpfs (rw,relatime,size=240516k,nr_inodes=60129,mode=755)

            tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=49756k,mode=755)

            tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)

            proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

            sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)

            tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=99500k)

            devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620)

            /dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro)

            /dev/sdb1 on /mnt/TimeMachine type hfsplus (rw,relatime,umask=22,uid=1003,gid=1005,nls=utf8)

            Dernière ligne pour le disque dur TimeMachine

            Fichier afp.conf :

            ;

            ; Netatalk 3.x configuration file

            ;

            [Global]

            ; Global server settings

            hostname = TimeMachineRas

            afp listen = 192.168.1.8

            log file = /var/log/netatalk.log

            log level = default:info

            uam list = uams_guest.so, uams_dhx.so, uams_dhx2.so

            ;[Homes]

            ;basedir regex = /home

            ;cnid scheme = dbd

            ; Display each user home directory in this format

            ;home name = Home: $u

            ;[Time Machine]

            ; Our Time Machine volume

            path = /mnt/TimeMachine

            time machine = yes

            Merci 🙂

          • As-tu essayé d’enlever le ; devant [Time Machine]
            Ci dessous mon fichier :
            [Global]
            log file = /var/log/netatalk.log
            uam list = uams_guest.so, uams_dhx.so, uams_dhx2.so,
            [Time Machine Raspberry]
            path = /media/usbdrive/timemachine
            time machine = yes

          • guiguidu31300

            Je viens de modifier le fichier et toujours aucun résultat.

            J’ai donc essayer de modifier mon fichier pour permettre de voir plus précisément le problème. Voici le log avec maxdebug :

            Feb 20 22:16:35.367168 afpd[3138] {afp_dsi.c:619} (D5:AFPDaemon): options.configfile, &st) failed: Permission denied

            Feb 20 22:16:35.367783 afpd[3138] {netatalk_conf.c:1190} (D5:AFPDaemon): load_volumes: END

            Feb 20 22:16:35.367929 afpd[3138] {afp_dsi.c:626} (D5:AFPDaemon): ==> Finished AFP command: AFP_GETSRVPARAM -> AFP_OK

            Donc il y a un problème avec le chargement du volume -> La ligne juste après plante peut-être à cause de cela ?

            Je ne sais pas où se trouve le fichier source « netatalk_conf.c » pour analyser le code source. Je vais essayer de le chercher.

            Merci et bonne soirée 🙂

          • afp a bien été redémarré ? On sait jamais … 😉
            Dans les sources de netatalk j’aurais plutôt regardé afp_dsi.c à la ligne 619 car je pense que c’est plutot lui qui génère l’erreur

          • guiguidu31300

            La ligne 619 du afp_dsi.c n’a pas l’air fausse :

            LOG(log_debug, logtype_afpd, "<== Start AFP command: %s", AfpNum2name(function));

            A part la fonction « AfpNum2name » qui peut l’être je ne vois pas.

            De toute façon, je n’ai pas changé le code source donc je ne vois pas pourquoi cela ne marcherai pas….

            Qu’appelles-tu « redémarrer le serveur AFP », le service netatalk ?

            Je le redémarre à chaque fois grâce à la commande :

            service netatalk restart

            Merci et bonne soirée 😉

          • Oui ces commandes :
            service netatalk restart
            service avahi-daemon restart

            Je sèche un peu. Il doit y avoir une config qui bloque qq part. Ca doit pas venir des sources si tu as bien pris celles derrière le lien de l’article

          • guiguidu31300

            Bon je pense que je vais repartir avec une configuration à zéro et on verra bien 😉

            Merci 🙂

          • Y a un truc de droits qq part mais je sèche.
            Bon courage !

          • guiguidu31300

            J’ai oublié ligne justement qui fait tout planté: Elle indique « no volume set »

            Je viens de regarder le code source :

            int load_volumes(AFPObj *obj, void (*delvol_fn)(const AFPObj *obj, struct vol *$

            {

            EC_INIT;

            int fd = -1;

            struct passwd *pwent = NULL;

            struct stat st;

            int retries = 0;

            struct vol *vol;

            LOG(log_debug, logtype_afpd, "load_volumes: BEGIN");

            if (Volumes) {

            if (!volfile_changed(&obj->options))

            goto EC_CLEANUP;

            have_uservol = 0;

            for (vol = Volumes; vol; vol = vol->v_next) {

            vol->v_deleted = 1;

            }

            } else {

            LOG(log_debug, logtype_afpd, "load_volumes: no volumes yet");

            EC_ZERO_LOG( lstat(obj->options.configfile, &st) );

            obj->options.volfile.mtime = st.st_mtime;

            }

            En gros, « Volumes » n’est pas défini ou alors à une valeur « false » -> Il faut que je vérifie

            Merci encore 🙂

  • thomas

    Bonsoir,

    Je suis sur mac os x mountain lion, mon raspberry pi est sur raspbian.

    J’arrive à visualiser mon raspberry dans le finder ainsi que dans la liste des disques time machine.

    Lorsque je veux me connecter sur « Time Machine Raspberry » avec mon login timemachine et mon mdp, il me jettte et écrit « Time Machine ne peut pas accéder au disque de sauvegarde « Time Machine Raspberry » L’opération n’a pas pu s’achever. (OSStatus erreur 2). »

    Si je me connecte en FTP sur le raspberry avec l’utilisateur timemachine je peux créer un dossier dans le répertoire /media/usbdrive/timemachine.

    De même en ssh je peux créer un dossier sur /media/usbdrive/timemachine avec la commande « mkdir toto » . Mais si je veux créer un dossier avec la commande sudo mkdir toto il me dit : « timemachine is not in the sudoers file. This incident will be reported. »

    Dans le fichier log /var/log/netatalk.log j’ai :

    Apr 03 22:25:11.804270 afpd[2545] {netatalk_conf.c:195} (W:AFPDaemon): volume « Time Machine Raspberry » does not support Extended Attributes or read-only volume

    Si tu as quelques pistes là dessus je suis preneur 🙂

    Merci d’avance

    • guiguidu31300

      J’ai eu la même erreur et je te conseil de suivre ce tuto qui a fonctionner pour moi tant dis que ce tuto n’as pas fonctionner :

      http://goo.gl/ZWjxV

      Bonne soirée

      • thomas

        Bonsoir guiguidu31300,

        En effet le tuto fonctionne à merveille, j’arrive à me connecter et sauvegarder mon mac avec time machine. Je pense qu’il y a un problème dans le tuto de pihomeserver au niveau des autorisations des users.

        Merci

        • Je tente de remettre en place la sauvegarde chez moi mais ni mon tuto ni celui de guiguidu31300 ne fonctionnent. Si je trouve une solution je mets tout ca à jour !

      • Rah ca m’énerve ! J’avoue que je compare les deux et je comprends pas d’où ça vient ! Surtout que chez moi ça fonctionne à merveille !

        Il manque un détail qui fait la différence mais pas moyen de trouver. Heureusement que le tuto de macg est nickel 😉

        • guiguidu31300

          Je pense que thomas a raison et que cela vient du fait que la gestion des droits n’est pas gérée dans les fichiers de config de ce tuto 🙂

          • fredo

            effectivement,

            sudo vi /etc/netatalk/AppleVolumes.default
            /media/TimeMachine « TimeMachine » allow:afp cnidscheme:dbd options:usedots,upriv,tm

            bien mettre l’utilisateur !

  • ThoGia

    Bonjour,

    J’ai un nouveau problème. J’ai donc suivi votre installation de Time Machine. Je remarque maintenant que lorsque je reboot le raspberry pi, Time Machine (sur Mac OS X) dit ne plus avoir les droits pour faire sa sauvegarde sur le disque.
    J’ai donc remarqué que la partition HFS+ est monté en lecture seule, à chaque redémarrage, comment c’est possible ?

    Merci.

    • En principe ca vient d’un arret mal fait du Raspberry Pi. Du coup au démarrage suivant il monte la partition en read only. Tant que la partition ne sera pas controlee elle restera en read only.
      Au cas, pour la remettre en rw il faut la démonter et lancer fsck.hfsplus dessus. Ca permet de la remonter en rw

  • ThoGia

    Merci beaucoup, sa fonctionne.

    Du coup, imaginons une coupure de courant chez moi, le raspberry pi s’est donc mal éteint, et redémarre de lui même. Il est impossible d’éviter le montage en lecture seule de la partition HFS+ ?

    • Effectivement c’est le soucis. Mais dans ce cas j’imaginerai un service qui au boot teste si la partition est en ro et si c’est le cas, la demonte, la check et la remonte.
      Il y a peut etre aussi moyen de forcer un check à chaque boot mais c’est moins « propre » je trouve

  • Arnaud

    Bonjour,

    Merci pour ce tuto qui fonctionne à merveille 🙂

    Néanmoins, depuis que j’ai effectué cette manip, raspberry apparaît comme un serveur et j’ai perdu mes partages samba … Une idée ?

    • Bonsoir,

      Chez moi j’ai ajouté le montage samba dans les applications ouvertes au démarrage de la session ce qui fait apparaitre le montage samba dans le finder

      • Arnaud

        A nouveau moi,

        erreur de débutant, j’avais oublié comment monter un disque réseau :/ (Finder -> Aller -> Se connecter au serveur …)

        Vous pouvez enlever mon commentaire précédent inutile…

        bonne soirée 🙂

        • Et pour l’avoir automatiquement au démarrage, il suffit de glisser le lecteur du finder à la fenêtre d’ouverture de session du user dans le panneau de config. Du coup plus besoin de faire la manie à chaque fois 😉

Handpicked links

Mise en cache objet de 2358/2780 objets utilisant disk Mise en cache utilisant disk: enhanced Mise en cache de base de données 23/95 requêtes dans 0.161 secondes utilisant disk Served from: pihomeserver.fr @ 2017-09-15 20:03:48 by W3 Total Cache -->