DSM: Apps wie AudioStation, CloudStation oder PhotoStation auf ein anderes Volumen verschieben

DSM: Apps wie AudioStation, CloudStation oder PhotoStation auf ein anderes Volumen verschieben

Synology speichert die Daten seiner Apps standardmäßig auf dem ersten Volumen (volume1). Genauer gesagt in /volume1/@appstore mit  Unterordnern für die jeweiligen Apps. Möchte man alle Daten auf ein anderes Volumen verschieben – beispielsweise um Festplatten auszutauschen – müssen neben den gemeinsamen Ordnern auch die Appstore-Daten der Apps verschoben werden. Ansonsten gehen alle Konfigurationseinstellungen verloren. Dieser Artikel zeigt, wie ihr besagte Daten auf ein anderes Volume verschieben könnt. Dazu ist aktivierter SSH-Zugriff auf euer NAS notwendig.

Vorbereitung: Paketdienste anhalten

In diesem Beispiel werden wir eine Migration von volume1 auf volume3 durchführen. Voraussetzung ist dementsprechend, dass ihr das neue Volume bereits angelegt habt. Verbindet euch per SSH auf euer Synology-NAS und stoppt alle aktiven Anwendungen. Dies ist per SSH über das Script /var/packages/${PaketName}/scripts/start-stop-status möglich, beispielsweise

/var/packages/AudioStation/scripts/start-stop-status stop

um die AudioStation zu beenden. Als bequemere Alternative empfehle ich die grafische Oberfläche, welche ihr im Browser über den Hostname bzw. die IP-Adresse eures NAS erreicht. Dort navigiert ihr zu Hauptmenü > Paketzentrum > Installiert und klickt jeweils eine Anwendung an

Nach einer Bestätigung dauert es einen Augenblick, bis der Dienst gestoppt wurde. Dieser Vorgang muss mit allen laufenden Apps wiederholt werden, die ihr verschieben möchtet.

Daten verschieben und Symlinks aktualisieren

Nun geht es an die eigentlichen Daten. Am sinnvollsten verschiebt ihr den gesammten @appdata Ordner mit folgendem Befehl:

mv /volume1/@appstore /volume3

Abhängig von der Anzahl eurer Apps und deren Datenmenge kann das Verschieben einige Sekunden in Anspruch nehmen.

Damit unsere Apps fortan den neuen Pfad verwenden, müssen wir deren symbolische Links aktualisieren. Diese befinden sich jeweils unter /var/packages/${PaketName}/target und zeigt auf den jeweiligen Hauptordner der App im /volume1/@appstore Verzeichnis. Für die AudioStation beispielsweise wie folgt:

NAS> ls -lh /var/packages/AudioStation/target
lrwxrwxrwx    1 root     root          31 Jan 25 19:12 /var/packages/AudioStation/target -> /volume1/@appstore/AudioStation

Mit folgendem Befehl aktualisieren wir ihn:

NAS> ln -f -s /volume3/@appstore/AudioStation /var/packages/AudioStation/target

Der Parameter f ist an dieser Stelle notwendig, um den alten Link zu überschreiben. Zur Kontrolle können wir mit dem vorherigen Befehl noch einmal überprüfen, ob der Verweis nun auf den richtigen Pfad zeigt:

NAS> ls -lh /var/packages/AudioStation/target
lrwxrwxrwx    1 root     root          31 May  7 19:48 /var/packages/AudioStation/target -> /volume3/@appstore/AudioStation

Das hat funktioniert, und muss für jedes installierte Paket wiederholt werden. AudioStation ist durch den jeweiligen Namen des Pakets in den Pfaden zu ersetzen – beispielsweise CloudStation oder PhotoStation. Abhängig davon, welche Apps man installiert hat und verwendet.

Anschließend kann man die Dienste über das Paketzentrum wieder starten. Hier erscheint möglicherweise die Fehlermeldung, dass der Vorgang fehlgeschlagen sei:

Dies kann ignoriert werden und liegt vermutlich am fehlenden Index, den wir später neu erstellen. Wie man im Paketmanager sieht, werden die Apps trotzdem gestartet. Anschließend sollte man sich jedoch tatsächlich Abmelden (Personen-Icon rechts oben) und wieder anmelden.

Pfade anpassen

Vor allem Mediendateien werden nach dem Verschieben nicht mehr gefunden, weil im alten Pfad gesucht wird. So findet beispielsweise die VideoStation keine Filme. Dieses Problem muss teilweise anwendungsspezifisch gelöst werden.

Audio Station

Dazu öffnen wir im Browser die Systemsteuerung > Medienbibliothek (unter Anwendung) > erster Tab Medienbibliothek. Hier auf den Button Neu indizieren klicken. Abhängig von der Anzahl der zu indizierenden Medien kann dies eine Weile dauern. Nach Abschluss des Vorgangs werden alle Medien wieder gefunden.

Solltet ihr oder eure Nutzer Playlists verwenden, müssen die Pfade zu den Titeln dort ebenfalls noch angepasst werden. Ansonsten findet DSM die Lieder nicht und verweigert das Abspielen. Die Wiedergabelisten befinden sich im Pfad /usr/syno/etc/preference/{Benutzername}/playlists als M3U-Dateien. Am schnellsten werden die alten Pfade mit sed ersetzt:

sed -i "s/..\/volume1\/music/..\/volume3\/music/" *.m3u

Dieses Beispiel ersetzt /volume1/music durch /volume3/music in allen M3U-Playlists des aktuellen Ordners.

Video Station

Hier habe ich keinen anderen Weg gefunden, als manuell die Pfade in der Datenbank zu ersetzen. DSM speichert die Medieninformationen in einer PostgreSQL-Datenbank. Bevor an dieser Veränderungen vorgenommen werden, empfiehlt sich das Anlegen eines Backups mit folgendem Befehl:

psql -U postgres mediaserver > mediaserver-backup.sql

Anschließend werden alle Pfade in der Datenbank ersetzt:

psql -d mediaserver -U postgres -c "update directory set path=replace(path, '/volume1/video/', '/volume2/video/');"

Leave a Reply