Nextcloud-Datenverzeichnis verschieben: sicherer Weg mit Bind Mount

Überarbeitet am 8. September 2026.

Das Datenverzeichnis einer Nextcloud kann mit der Zeit ziemlich groß werden. Irgendwann liegt deshalb der Gedanke nahe, die Daten auf eine andere SSD, HDD oder Partition zu verschieben. Genau das hatte ich in meiner alten Anleitung beschrieben – allerdings auf eine Art, die ich heute nicht mehr empfehlen würde.

Wichtig: Nextcloud warnt inzwischen ausdrücklich davor, bei einer bestehenden Installation einfach den Wert datadirectory in der config.php zu ändern. Das kann Beziehungen in der Datenbank beschädigen und wird bei Migrationen nicht empfohlen. Deshalb gehen wir hier einen anderen Weg: Die Daten werden physisch verschoben, Nextcloud selbst behält aber seinen bisherigen Datenpfad.

Dafür eignet sich unter Linux ein Bind Mount. Für Nextcloud sieht das Datenverzeichnis danach noch genauso aus wie vorher, obwohl die Dateien tatsächlich auf einem anderen Datenträger liegen.

Beispiel für diese Anleitung

In meinem Beispiel liegt Nextcloud unter:

/var/www/nextcloudCode-Sprache: JavaScript (javascript)

Das bisherige Datenverzeichnis ist:

/var/www/nextcloud/dataCode-Sprache: JavaScript (javascript)

Physisch sollen die Daten künftig hier liegen:

/mnt/nextcloud-data

Die Pfade musst du natürlich an deine Installation anpassen.

1. Vorher ein vollständiges Backup erstellen

Bevor ich mehrere hundert Gigabyte verschiebe, möchte ich einen Rückweg haben. Zu einem vollständigen Nextcloud-Backup gehören nicht nur die Dateien, sondern auch die Konfiguration und die Datenbank. Bei eigenen Apps oder Themes sollten auch diese gesichert werden.

Gerade bei solchen Arbeiten würde ich nicht darauf vertrauen, dass „schon nichts passiert“.

2. Wartungsmodus einschalten

Während des Kopierens dürfen keine Benutzer Dateien verändern. Deshalb schalten wir Nextcloud zuerst in den Wartungsmodus:

sudo -E -u www-data php /var/www/nextcloud/occ maintenance:mode --onCode-Sprache: JavaScript (javascript)

Ob der Wartungsmodus aktiv ist, lässt sich mit folgendem Befehl prüfen:

sudo -E -u www-data php /var/www/nextcloud/occ statusCode-Sprache: JavaScript (javascript)

3. Zielverzeichnis anlegen

sudo mkdir -p /mnt/nextcloud-data

Wichtig ist natürlich, dass der neue Datenträger vorher korrekt eingebunden ist und nach einem Neustart automatisch gemountet wird. Sonst landet die Nextcloud später möglicherweise versehentlich wieder auf dem Root-Dateisystem.

4. Daten mit rsync kopieren

Statt mv verwende ich lieber rsync. Damit bleibt das Original zunächst erhalten und Besitzer, Rechte, ACLs, Extended Attributes und Zeitstempel können übernommen werden.

sudo rsync -aHAX --numeric-ids --info=progress2 \
  /var/www/nextcloud/data/ \
  /mnt/nextcloud-data/Code-Sprache: JavaScript (javascript)

Der abschließende Schrägstrich hinter data/ ist hier wichtig: Wir kopieren den Inhalt des Verzeichnisses in das neue Ziel.

5. Kopie kontrollieren

Bevor das alte Verzeichnis angefasst wird, prüfe ich wenigstens grob Größe und Inhalt:

sudo du -sh /var/www/nextcloud/data
sudo du -sh /mnt/nextcloud-data

sudo ls -la /mnt/nextcloud-data | headCode-Sprache: JavaScript (javascript)

Bei einer großen Installation kann man zusätzlich einen zweiten rsync-Lauf durchführen. Wenn nichts mehr übertragen wird, sind Quelle und Ziel auf Dateiebene weitgehend synchron.

6. Altes Verzeichnis als Rückfallebene behalten

Jetzt benennen wir das bisherige Datenverzeichnis zunächst nur um und legen einen leeren Mountpunkt an:

sudo mv /var/www/nextcloud/data /var/www/nextcloud/data.backup
sudo mkdir /var/www/nextcloud/data
sudo chown www-data:www-data /var/www/nextcloud/dataCode-Sprache: JavaScript (javascript)

Das alte data.backup würde ich noch nicht löschen. Erst wenn die Nextcloud einige Zeit sauber läuft und das normale Backup geprüft wurde, kann man darüber nachdenken.

7. Neues Datenverzeichnis per Bind Mount einhängen

sudo mount --bind /mnt/nextcloud-data /var/www/nextcloud/dataCode-Sprache: JavaScript (javascript)

Jetzt prüfen wir, ob der Mount wirklich aktiv ist:

mountpoint /var/www/nextcloud/data
findmnt /var/www/nextcloud/dataCode-Sprache: JavaScript (javascript)

Für PHP und Nextcloud lautet der Pfad weiterhin /var/www/nextcloud/data. Genau das ist der Vorteil: Wir müssen den Wert datadirectory nicht ändern.

8. Bind Mount dauerhaft in /etc/fstab eintragen

Der manuelle Mount wäre nach einem Neustart weg. Deshalb kommt er zusätzlich in die /etc/fstab:

/mnt/nextcloud-data /var/www/nextcloud/data none bind 0 0Code-Sprache: JavaScript (javascript)

Danach kann man die fstab testen, ohne den Server neu zu starten:

sudo mount -a

Wenn dabei eine Fehlermeldung erscheint, sollte sie zuerst behoben werden. Eine kaputte fstab möchte man nicht erst beim nächsten Reboot entdecken.

9. Nextcloud prüfen und Wartungsmodus beenden

sudo -E -u www-data php /var/www/nextcloud/occ statusCode-Sprache: JavaScript (javascript)

Wenn Nextcloud das Datenverzeichnis ohne Fehler erreicht, kann der Wartungsmodus wieder ausgeschaltet werden:

sudo -E -u www-data php /var/www/nextcloud/occ maintenance:mode --offCode-Sprache: JavaScript (javascript)

Danach melde ich mich normal an, öffne einige Dateien und teste auch einen Upload. Ein komplettes occ files:scan --all ist bei diesem Verfahren normalerweise nicht nötig, weil sich der für Nextcloud sichtbare Pfad nicht geändert hat.

Und was ist mit Plesk oder open_basedir?

Gerade bei Plesk ist der Bind-Mount-Weg angenehm: PHP greift weiterhin auf den bisherigen Pfad unter /var/www/nextcloud/data zu. Dadurch muss man nicht zwangsläufig einen neuen physischen Pfad wie /mnt/nextcloud-data in open_basedir freigeben.

Das hängt natürlich von der jeweiligen Plesk- und PHP-Konfiguration ab. Wer open_basedir verwendet, sollte außerdem beachten, dass Nextcloud laut aktueller Hardening-Dokumentation Zugriff auf /dev/urandom benötigt.

Bei einer neuen Installation ist es einfacher

Wenn du Nextcloud komplett neu installierst, ist die Sache einfacher: Dann solltest du das Datenverzeichnis direkt außerhalb des Webroots anlegen und bei der Installation als Datenpfad auswählen. Nextcloud selbst empfiehlt genau das.

Bei einer bereits laufenden Instanz gefällt mir der Bind Mount dagegen besser, weil Nextcloud seinen bekannten Pfad behält. Trotzdem gilt: Erst Backup, dann Wartungsmodus, dann kopieren – und das alte Verzeichnis nicht sofort löschen.

Weiterführend: Nextcloud: Migration auf einen anderen Server, Nextcloud: Backup und Nextcloud: Hardening und Security.

Wie ist deine Meinung?
Schreib gern einen Kommentar unter dem Artikel oder diskutiere mit anderen im Matrix-Kanal: #dasnetzundich:matrix.org

Schreibe einen Kommentar