In einer Welt, in der Daten immer wertvoller werden, ist ein zuverlässiges Backup-System unerlässlich. Für Mac-Benutzer bietet Time Machine eine einfache Möglichkeit, automatische Backups zu erstellen. Doch was, wenn man kein teures Time Capsule- oder NAS-Gerät kaufen möchte? Mit einem Raspberry Pi und Ubuntu kann man ein kostengünstiges, drahtloses Time Machine-Backup-System einrichten. In diesem Artikel führen wir 10 einfache Schritte durch, die den Prozess beschreiben. Es werden dabei wichtige Begriffe und Dienste erklärt, um ein tieferes Verständnis zu ermöglichen.
Voraussetzungen
Hardware
- Raspberry Pi (Modell 3 oder neuer empfohlen)
- MicroSD Karte (mindestens 16GB, besser wären aber 32GB oder mehr)
- Externe Festplatte oder USB-Stick (für die Backups)
- Netzwerkkabel (optional, für eine stabilere Netzwerkverbindung)
- Stromverbindung via USB-C
Software
- Raspberry Pi Imager
- Ubuntu Server (aktuelle LTS 24.04.1)
Warum Ubuntu und nicht Raspberry Pi OS?
Ubuntu bietet eine stabile und weit verbreitete Server-Umgebung mit umfangreichen Software-Repositories. Dies erleichtert die Installation von Diensten wie Samba und Avahi. Zudem bietet Ubuntu regelmäßige Updates und Langzeitunterstützung (LTS), was für ein zuverlässiges Backup-System wichtig ist.
Wichtige Begriffe und Dienste
- Time Machine: Die integrierte Backup-Software von macOS, die automatische und inkrementelle Backups erstellt.
- Samba: Eine Open-Source-Implementierung des SMB/CIFS-Protokolls, das Windows-Freigaben ermöglicht und von macOS für Netzwerkbackups verwendet wird.
- Avahi: Ein Linux-Dienst für die Netzwerkgerätesuche, ähnlich wie Bonjour von Apple. Er ermöglicht die automatische Erkennung von Geräten und Diensten im Netzwerk.
- UUID (Universally Unique Identifier): eine eindeutige Kennung für Partitionen, die beim Mounten von Laufwerken verwendet wird. Wenn du mehr zu UUIDs wissen möchtest, dann findest du es auf dieser Seite.
Schritt 1: Ubuntu auf dem Raspberry Pi installieren
- Choose Device:
- Im ersten Schritt wird das Raspberry Pi ausgewählt, welches betrieben wird
- Choose OS:
- Im zweiten Schritt wird das Betriebssystem gewählt. In diesem Fall wird Ubuntu Server 24.04.1 gewählt. Das versteckt sich unter dem Menüpunkt „other general-purpose OS“ und darauf „Ubuntu“
- Choose Storage:
- Im letzten Schritt wird die MicroSD Karte gewählt. Achtung: alle Daten auf der SD-Karte werden gelöscht.
Schritt 2: System vorbereiten und aktualisieren
1. Als Root-Benutzer anmelden
sudo su
2. System aktualisieren und benötigte Pakete installieren
apt update
apt upgrade -y
apt install -y samba avahi-daemon
Schritt 3: Benutzer und Berechtigungen einrichten
1. Neuen Benutzer „timemachine“ erstellen
adduser timemachine
- Folge den Anweisungen, um ein Passwort festzulegen. Achtung: die Tastatureingaben werden nicht dargestellt.
2. Samba-Passwort für den Benutzer setzen
smbpasswd -a timemachine
- Dadurch kann sich der Benutzer über das Netzwerk authentifizieren.
Schritt 4: Externe Festplatte vorbereiten
1. Festplatte anschließen und erkennen lassen
- S
chließe die externe Festplatte an den Raspberry Pi an.
2. Verfügbare Laufwerke anzeigen:
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
Notiere den Gerätenamen der Festplatte (z. B. /dev/sda)
3. Dateisystem prüfen
Wenn die Festplatte in APFS formatiert ist, muss sie neu formatiert werden, da Linux APFS nicht standardmäßig unterstützt.
Das kann vorkommen, wenn man die Festplatte vorher am Mac mit dem Tool Disk Utility (Festplattendienstprogramm) formatiert hat.
4. Festplatte in ext4 formatieren
Achtung: Dieser Schritt löscht alle Daten auf der Festplatte!
mkfs.ext4 /dev/sda1
5. Mount-Punkt erstellen und Berechtigungen setzen
mkdir -p /mnt/timemachine
chown -R timemachine: /mnt/timemachine
6. Festplatte mounten
mount /dev/sda1 /mnt/timemachine
Schritt 5: Automatisches Mounten einrichten
1. UUID der Festplatte ermitteln
ls -lha /dev/disk/by-uuid
- Suche die UUID, die auf Ihre Festplatte verweist (z. B. /dev/sda1)
2. Eintrag in /etc/fstab
hinzufügen
- Füge am Ende der Datei folgendes hinzu:
UUID=UUID-aus-Schritt-5-1 /mnt/timemachine ext4 defaults 0 2
3. Überprüfen, ob die Festplatte korrekt gemountet wird
mount -a
Schritt 6: Samba konfigurieren
1. Samba-Konfigurationsdatei bearbeiten
vim /etc/samba/smb.conf
2. Folgenden Abschnitt am Ende der Datei hinzufügen
[TimeMachine]
comment = Time Machine Backup
path = /mnt/timemachine
valid users = timemachine
read only = no
veto files = /.DS_Store/
delete veto files = yes
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:time machine = yes
fruit:metadata = stream
fruit:posix_rename = yes
fruit:zero_file_id = yes
fruit:model = MacBookAir7,2
fruit:advertise_fullsync = true
fruit:nfs_aces = no
Erklärung der Optionen:
vfs objects
: Aktiviert erweiterte Funktionen für macOS-Kompatibilität.fruit:time machine = yes
: Ermöglicht die Nutzung als Time Machine-Ziel.fruit:model
: Simuliert ein Apple-Gerät im Netzwerk.
3. Samba-Konfiguration überprüfen
testparm -s
4. Samba-Dienst neu starten
service smbd restart
Schritt 7: Avahi für die Netzwerkerkennung einrichten
1. Avahi-Service-Datei erstellen
vim /etc/avahi/services/samba.service
2. Folgenden Inhalt einfügen
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>9</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
<service>
<type>_adisk._tcp</type>
<port>9</port>
<txt-record>dk0=adVN=TimeMachine,adVF=0x82</txt-record>
<txt-record>sys=adVF=0x100</txt-record>
</service>
</service-group>
Erklärung:
_smb._tcp
: Macht den Samba-Dienst im Netzwerk sichtbar._device-info._tcp
: Simuliert ein Apple Time Capsule-Gerät._adisk._tcp
: Ermöglicht die automatische Erkennung als Time Machine-Ziel.
3. Avahi-Dienst neu starten
service avahi-daemon restart
Schritt 8: Dienste beim Systemstart sicherstellen
1. Cronjob für den Systemstart erstellen
crontab -e
2. Folgende Zeile hinzufügen
@reboot sleep 30 && mount -a && service avahi-daemon restart && service smbd restart
Erklärung:
@reboot
: Führt den Befehl beim Systemstart aus.sleep 30
: Wartet 30 Sekunden, um sicherzustellen, dass alle Systeme bereit sind.mount -a
: Mountet alle in /etc/fstab definierten Laufwerke.Dienste neu starten
: Stellt sicher, dass Samba und Avahi laufen.
Schritt 9: Verbindung vom Mac herstellen
- Time Machine öffnen:
- Gehe zu Systemeinstellungen > Time Machine.
- Backup-Volume auswählen:
- Klicke auf Backup-Volume auswählen…
- Das Raspberry Pi sollte als TimeMachine oder mit dem aus der Konfiguration vom Raspberry Pi Imager definierten Namen erscheinen
- Authentifizierung:
- Gebe den Benutzernamen timemachine und das entsprechende Passwort ein.
- Backup starten:
- Time Machine beginnt nun mit dem ersten Backup.
Tipps zur Fehlerbehebung
- Festplatte wird nicht erkannt: Überprüfe die Verkabelung und stelle sicher, dass die Festplatte korrekt formatiert und gemountet ist.
- Samba-Freigabe nicht erreichbar: Stelle sicher, dass die Firewall auf dem Raspberry Pi Samba-Verbindungen zulässt.
- Time Machine erkennt das Backup-Ziel nicht: Überprüfe die Avahi-Konfiguration und stelle sicher, dass der Dienst läuft.
- Langsame Backup-Geschwindigkeiten: Eine Verbindung über Ethernet (Netzwerkkabel) kann die Geschwindigkeit deutlich erhöhen.
Fazit
Mit einem Raspberry Pi und Ubuntu ist es möglichlich ein kostengünstiges und flexibles Time Machine-Backup-System einzurichten. Diese DIY-Lösung bietet nicht nur finanzielle Vorteile, sondern ermöglicht es auch, das System nach den eigenen Wünschen anzupassen und zu verstehen. Durch das Verständnis der verwendeten Dienste und Protokolle kann man das eigene Netzwerk besser verwalten und sichern.