Startseite>Time Capsule ersetzen mit Netatalk auf dem RasPi
Aus Raspberry Pi Geek 02/2014

Time Capsule ersetzen mit Netatalk auf dem RasPi (Seite 3)

$ sudo apt-get install mdadm

Ein Dialog weist Sie darauf hin, dass Sie – falls Sie Ihr System direkt von einem Festplattenverbund starten möchten – weitere Konfigurationsschritte vornehmen müssten. Da der Festplattenverbund nur als Backupspeicher dient, ist diese Arbeit in unserem Fall unnötig.

Löschen Sie daher im Dialog die Zeile der für den Systemstart benötigten Verbünde ( Für das Wurzeldateisystem benötigte MD folgende Verbunde / MD arrays needed for the root file system ) komplett. Bejahen Sie dafür bei der Frage, ob das System nach dem Start alle RAID-Verbünde einhängen soll. Je nach System- und Festplattenkombination fallen weitere Fragen an. Belassen Sie am besten die vorgegebenen Antworten.

Während das System die Pakete einrichtet, meldet es einen Fehler im Zusammenhang mit dem Paket exim4. Dabei handelt es sich um einen bekannten Bug [5], der auftritt, falls die IPv6-Unterstützung auf dem System nicht aktiviert ist. Das hat aber keinen Einfluss auf die Installation von Mdadm.

Fahren Sie jetzt mit dem Partitionieren der Festplatten mit Fdisk wie oben beschrieben fort. Bei der Angabe zum Typ der Partition wählt das Programm die einzige Partition direkt automatisch aus und fordert Sie zur Eingabe eines Hex-Codes auf. Geben Sie hier fd ein, und quittieren Sie erneut mit [Eingabe]. Der Partitionstyp ändert sich zu Linux raid autodetect. Drücken Sie [W], um die Änderungen zu schreiben, und bestätigen Sie mit [Eingabe]. Wiederholen Sie die Prozedur für die zweite Festplatte.

Mit dem Befehl aus der ersten Zeile von Listing 4 erstellen Sie den Verbund. Dabei geben Sie als RAID-Level im Falle eines gespiegelten Festplattenverbunds, der für Sicherheit optimiert ist, eine 1 an, im Falle eines verteilten Verbunds, der für Geschwindigkeit und Kapazität optimiert ist, eine 0 [6].

Listing 4

 

$ sudo mdadm --verbose --create /dev/md0 --level=RAID-Level --raid-disks=2 /dev/sda1 /dev/sdb1
$ sudo cp -v /etc/mdadm/mdadm.conf{,.orig}
$ echo "DEVICE /dev/sd[a|b]1" | sudo tee -a /etc/mdadm/mdadm.conf
$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Das Tool macht Sie zur Sicherheit darauf aufmerksam, dass die Partitionen Teil eines RAID-Arrays sein könnten, weil der RAID-Typ auf autodetect steht. Bestätigen Sie mit [Y] (Continue creating raid?). Nach Abschluss prüfen Sie mit dem Befehl cat /proc/mdstat das korrekte Erstellen des Verbunds.

Schließlich sollten Sie die Konfiguration noch in der Konfigurationsdatei festschreiben. Erstellen Sie eine Sicherungskopie der Vorlagenkonfiguration, und ergänzen Sie die Datei um die Angabe der einzelnen RAID-Partitionen, sowie um die Information, wie sich der Verbund zusammensetzt (Listing 4, Zeile 2 bis 4).

Der angelegte RAID-Verbund md0 verhält sich gegenüber dem System wiederum wie eine gewöhnliche Festplatte. Zwar ist es prinzipiell möglich, eine Festplatte (und auch ein RAID-Laufwerk) ohne Partitionieren direkt zu formatieren und zu verwenden. Trotzdem entspricht es der gängigen Praxis, auch ein RAID in jedem Fall zu partitionieren.

Ab diesem Punkt gehen Sie analog zur Konfiguration mit einer einzelnen Festplatte vor. Anstelle von /dev/sda kommt aber in diesem Fall das Gerät /dev/md0 zum Einsatz.

Auf die Plätze …

Bevor Sie die Netatalk-Bibliothek installieren, bedarf es einer Anpassung der Zugriffsrechte des entsprechenden Ordners. Das Tool Find eignet sich ausgezeichnet zu diesem Zweck. Nutzen Sie den Befehl in Verbindung mit dem Befehl Chmod, um die Berechtigung aller Dateisystemobjekte der HFS+-Partition zu setzen (Listing 5, Zeile 1). Wiederholen Sie den Vorgang, um den Eigentümer aller Objekte auf root zu setzen (Listing 5, Zeile 2).

Listing 5

 

sudo find /var/timemachine -exec chmod 777 '{}' \;
sudo find /var/timemachine -exec chown nobody:nogroup '{}' \;

Starten Sie im Anschluss den Raspberry Pi neu, damit das System zum ersten Mal die Partition selbst einhängt. Folgen Sie den Angaben im Kasten “Marke Eigenbau”, falls Sie den Bau der Bibliothek selbst nachvollziehen möchten. Alternativ greifen Sie auf das vorbereitete Paket von der Heft-DVD zurück.

Marke Eigenbau

Um die Netatalk-Bibliothek erfolgreich zu bauen, benötigen Sie einige Pakete, die Sie mit dem Befehl aus Listing 6 installieren. Laden Sie die stabile Version der Netatalk-Bibliothek herunter – dieser Artikel bezieht sich auf die Version 3.1.0. Grundsätzlich eignet sich auch eine neuere Version, die Patch-Datei ist aber nur mit Version 3.1.0 getestet.

Vergewissern Sie sich, dass Sie sich im Home-Verzeichnis des Benutzers pi befinden, und erstellen Sie ein Verzeichnis zum Entpacken und Bearbeiten der Quelldateien (Listing 7, Zeile 1). Das Archiv laden Sie mittels Wget herunter (Zeile 2).

Entpacken Sie das Archiv, und betreten Sie das neue Verzeichnis (Zeile 3 und 4), und wenden Sie den Patch an (Zeile 5). Dieser bereitet die Quellen so vor, dass sie auf dem Raspberry fehlerfrei kompilieren. Dazu korrigiert er eine Abhängigkeit, die ohne Änderung am Kernel nicht gegeben wäre, passt Pfade an und generiert eine spezifische Konfiguration. Führen Sie den Patch-Befehl im Ordner netatalk-3.1.0/ aus, und passen Sie den Pfad zum Patch an. Anschließend führen Sie das Skript configure mit den passenden Parametern aus (Zeile 6).

Nach dem Durchlauf des Skripts kontrollieren Sie in der Ausgabe, dass Spotlight sowie sämtliche Options auf yes oder auto stehen. Bauen und installieren Sie das Paket mit make && sudo make install. Dann fügen Sie den Netatalk-Dienst dem automatischen Bootprozess hinzu und generieren die Cracklib-Wortliste sowie die AFP-Passwortdatei (Zeile 7 bis 10).

Mac OS X verwendet das Bonjour-Protokoll (Zeroconf), um Geräte im Netzwerk zu finden. Unter Linux übernimmt der Avahi-Daemon diese Aufgabe. Legen Sie dazu die Konfigurationsdatei /etc/avahi/services/afpd.service an, und befüllen Sie diese mit den Zeilen aus Listing 8.

Als Nächstes passen Sie die Zeile hosts: in der Datei /etc/nsswitch.conf dahingehend an, dass Sie die Liste hosts: file db um den Eintrag mdns ergänzen (Listing 7, Zeile 11 und 12).

Listing 6

 

$ sudo apt-get install libdb-dev libdbus-glib-1-dev libwrap0-dev python-dbus-dev libldap2-dev libgcrypt11-dev libacl1-dev tracker-miner-fs libkrb5-dev libafpclient-dev libafsauthent1 libevent-dev libafsrpc1 systemtap-sdt-dev libcrack2-dev gcc libssl-dev perl flex libmysqlclient-dev libtracker-sparql-0.14-dev libdbus-c++-dev libpam0g-dev python-dbus libopenafs-dev libtracker-miner-0.14-dev linux-headers-rpi-rpfv libavahi-client-dev

Listing 7

 

$ cd ~ && mkdir src && cd src
$ wget http://prdownloads.sf.net/netatalk/netatalk-3.1.0.tar.gz
$ tar -xvf netatalk-3.1.0.tar.gz
$ cd netatalk-3.1.0
$ patch -Np1 < Pfad/netatalk_3.1.0-1+rpi.patch
$ ./configure --prefix=/usr --disable-maintainer-mode --enable-fhs --with-cracklib --with-init-style=debian --enable-quota --with-shadow --enable-krbV-uam --with-cnid-dbd-backend --with-cnid-cdb-backend --with-tracker-pkgconfig-version=0.14 --with-cnid-default-backend=dbd LDFLAGS="-lafsauthent -lpthread"
$ sudo update-rc.d netatalk defaults
$ sudo create-cracklib-dict -o /usr/lib/cracklib_dict /usr/share/dict/words
$ sudo gzip /usr/lib/cracklib_dict.pwd
$ sudo afppasswd -c
$ cp -v /etc/nsswitch.conf{,.orig}
$ sed -i '/^hosts: /s/$/ mdns/' /etc/nsswitch.conf
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 7 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland