Raspberry Pi - Time Machine

Quelle: https://github.com/mr-bt/raspberrypi-timemachine

Mac HD vorbereiten - HD (apple+i)

  • user "everyone" -> "Lesen & Schreiben"
  • mit dem Zahnrad diese Rechte auf alle Unterodner anwenden
  • Haken setzen bei "Eigentümer auf diesem Volumen ignorieren"

dann im Mac Terminal die Platte finden

# diskutil list

Journaled abschalten, die Sternchen durch die gefundenen ziffern der HD tauschen

# diskutil disableJournal /dev/disk*s*
Journaling has been disabled for volume MyTimeMachine on disk*s*

Raspberry

hfsplus support

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get --assume-yes install hfsprogs hfsplus

platte finden

$ sudo fdisk -l

Device      Start       End   Sectors   Size Type
/dev/sda1      34    409633    409600   200M EFI System
/dev/sda2  409634 312317951 311908318 148.7G Apple HFS/HFS+

mount point erstellen

$ sudo mkdir -p /media/time_machine

prüfen, ob die HD beim anstecken schon gemounted wurde

$ sudo mount

unmount..

$ sudo umount /dev/sda2

im mount point mounten

$ sudo nano /etc/fstab

am Ende hinzufügen:

/dev/sda2 /media/time_machine hfsplus force,rw,user,noauto,x-systemd.automount 0 0

dann mounten

$ sudo mount -a

nachsehen, ob der mountpoint stimmt

$ sudo mount
...
/dev/sda2 on /media/time_machine type hfsplus (rw,nosuid,nodev,noexec,relatime,umask=22,uid=0,gid=0,nls=utf8,user)

netatalk

$ sudo aptitude 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

$ sudo apt-get install netatalk

$ whereis netatalk
netatalk: /usr/lib/netatalk /etc/netatalk /usr/include/netatalk /usr/share/netatalk

config

$ sudo nano /etc/nsswitch.conf

an's Ende der hosts-Zeile einsetzen: mdns4 mdns

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

afp.conf

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

am Ende hinzufügen:

[Global]
  mimic model = TimeCapsule6,106

[Time Machine]
  path = /media/time_machine
  time machine = yes

AppleVolumes.default

$ sudo nano /etc/netatalk/AppleVolumes.default

am Ende hinzufügen:

/media/time_machine "Time Machine" options:tm

Starten

$ sudo service avahi-daemon start
$ sudo service netatalk start

$ sudo systemctl enable avahi-daemon
$ sudo systemctl enable netatalk

falls folgender Fehler kommt:

Synchronizing state of avahi-daemon.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable avahi-daemon
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "de_DE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

dann, locale setzen:

$ sudo localedef -i de_DE -f UTF-8 de_DE.UTF-8

nun sollte alles laufen

Fehler

Falls der Mac sich nicht mit der HD verbinden kann, (Die Meldung sagt das die Rechte nicht reichen.) könnte ein setzen der Rechte auf dem raspberry helfen.

# sudo chmod 777 /media/time_machine

Falls das nicht hilft und weiterhin folgender Fehler kommt:

Backup-Volumen entfernen, und erneut hizufügen:

Den Raspberry herrunterfahren, die HD an den Mac stecken, und das .sparsebundle mounten:

Dann die Zugriffsrechte für das gesamte (gemountete sparsebundle) Medium neu festlegen:

Falls nicht bereits vorhanden, den eigenen Rasperian-User hinzufügen (gent). Dann allen Benutzern "Lesen & Schreiben" als Recht einräumen und diese Rechte (Klick aus Zahnrad unten) auf alle Unterordner/Dateien anwenden. Das dauert dann einige Minuten, aber anschließend sollte das Backup wieder laufen.