Startseite
» Gewusst wie
»
Nextcloud-Daten auf ein externes Laufwerk verschieben, ohne den Speicherplatz zu beschädigen
Nextcloud-Daten auf ein externes Laufwerk verschieben, ohne den Speicherplatz zu beschädigen
Bei einer herkömmlichen Linux-Installation sollte das externe Laufwerk dauerhaft eingebunden werden. Kopieren Sie das gesamte Datenverzeichnis, während Nextcloud offline ist, und erstellen Sie anschließend einen symbolischen Link vom ursprünglichen Pfad zum neuen Speicherort. Ändern Sie den Pfad nicht einfach direkt datadirectory: config.phpNextcloud verwaltet den lokalen Speicher über absolute Pfade. Eine direkte Pfadänderung kann daher zu verwaisten Dateien und Freigaben führen.
Dieses Beispiel geht von einer Paket- oder Archivinstallation aus. Docker-, Snap- und Appliance-Installationen verwenden unterschiedliche Pfadzuordnungen; passen Sie die Einbindung an die jeweilige Bereitstellung an, anstatt diese Hostpfade blind zu kopieren.
Was ist bestätigt und was hängt von Ihrem Server ab?
Punkt
Was ist zu tun?
Bestätigt: Nextcloud verwendet den absoluten Pfad zur Identifizierung des lokalen Speichers. Ein unachtsamer Vorgang kann dazu führen, dass Dateien oder Freigaben verloren gehen.
Halten Sie den konfigurierten Pfad mit einem symbolischen Link stabil; erhalten Sie alle Inhalte, einschließlich .ncdata.
Die Konfiguration ist abhängig von der jeweiligen Situation: Datenpfad, HTTP-Benutzer, Dateisystem und Dienstnamen variieren.
Überprüfen Sie Ihre effektive Konfiguration und vergewissern Sie sich, dass die Festplatte die erforderlichen Linux-Eigentumsrechte und Berechtigungen beibehält.
Festplattenabhängig: Zuverlässiges Booten und die Stromversorgung können nicht gewährleistet werden.
Binden Sie die Festplatte per UUID ein, testen Sie die Einbindung nach einem Neustart und verhindern Sie, dass Nextcloud startet, wenn die Datenfestplatte fehlt.
Die Funktion „Externer Speicher einbinden“ der Dateien-App fügt einen zweiten Speicherort hinzu; das primäre Datenverzeichnis wird dabei nicht verschoben. Verwenden Sie diese Funktion für einen zusätzlichen Ordner oder eine Freigabe und migrieren Sie das Datenverzeichnis erst dann, wenn die serverseitigen Dateien und Metadaten auf dem Laufwerk gespeichert werden müssen.
1. Nextcloud sichern und Quellpfad ermitteln
Sichern Sie die Datenbank, config/das Datenverzeichnis, benutzerdefinierte Apps und Designs. Stellen Sie sicher, dass die Datenbanksicherung wiederherstellbar ist; das bloße Kopieren von Dateien stellt keine vollständige Wiederherstellung dar.
Ermitteln Sie den Datenpfad in config/config.phpoder mit occ config:system:get datadirectory, und identifizieren Sie dann den HTTP-Benutzer. In den Beispielen wird www-dataund verwendet /var/www/nextcloud/data; ersetzen Sie diese Werte durch Ihre tatsächlichen Werte. Formatieren Sie kein Laufwerk, das benötigte Dateien enthält.
Abbildung: Eine Ansicht des Festplattendienstprogramms zeigt Details zum externen Laufwerk und Dateisystem an, die vor dem Einbinden in Nextcloud überprüft werden müssen.
2. Montieren Sie das Laufwerk an einer stabilen Bahn
Führen Sie den Befehl aus lsblk -fund notieren Sie sich die Dateisystem-UUID der Partition. Namen wie z. B. /dev/sdb1können sich ändern, verwenden Sie daher die UUID in der Mount-Konfiguration.
Für einen Linux-Server mit ext4 erstellen Sie einen Mountpunkt und fügen Sie eine Zeile wie diese hinzu /etc/fstab, wobei Sie die Beispiel-UUID durch die tatsächliche UUID ersetzen:
Verwenden Sie den bereits auf der Partition vorhandenen Typ; diese Zeile formatiert ihn nicht. Stellen Sie sicher, dass das Dateisystem die für Nextcloud erforderlichen Besitzverhältnisse und Berechtigungen beibehält.
Montieren und überprüfen Sie es, bevor Sie Daten darauf speichern:
sudo mkdir -p /srv/nextcloud-disk
sudo mount /srv/nextcloud-disk
findmnt /srv/nextcloud-disk
Prüfen Sie, ob die Ausgabe die externe Partition identifiziert. Falls Sie ` nofailsystemd drop-in` verwenden, beschränken Sie auch die Web-/PHP-Dienste auf die Einbindung; andernfalls kann eine fehlende Festplatte ein leeres Mountpunktverzeichnis hinterlassen, das Schreibvorgänge empfängt. Ein Systemd-Drop-in kann `systemd drop-in` verwenden RequiresMountsFor=/srv/nextcloud-disk. Lassen Sie das Laufwerk angeschlossen, während Nextcloud ausgeführt wird.
Beispiel: Ein UUID-Eintrag in der Dateisystemtabelle stellt eine persistente Mount-Konfiguration dar und nicht etwa eine Gerätenamen-Abkürzung.
3. Nextcloud in den Wartungsmodus versetzen und die Daten kopieren.
Der Wartungsmodus blockiert Anmeldungen, stoppt aber nicht alle geplanten Aufgaben. Um zu verhindern, dass während des Kopiervorgangs Dateien geändert werden, sollten Sie den Nextcloud-Cronjob oder den zugehörigen Systemd-Timer anhalten, Synchronisierungsclients stoppen und Web-/PHP-Dienste beenden.
Wenn der Scheduler deaktiviert und die Web-/PHP-Dienste gestoppt sind, kopieren Sie das Datenverzeichnis als Root, um Eigentumsrechte, Berechtigungen, ACLs und versteckte Dateien zu erhalten:
Der abschließende Schrägstrich kopiert den Verzeichnisinhalt. Behalten Sie die alte Kopie bei; prüfen Sie sie rsyncauf Fehler und stellen Sie sicher, .ncdatadass sie im Stammverzeichnis des neuen Verzeichnisses vorhanden ist.
Illustration: Eine Terminalkopieansicht stellt die Übertragung des gesamten Datenverzeichnisses dar, während Nextcloud gestoppt ist.
4. Den alten Pfad mit einem symbolischen Link beibehalten.
Die Fehlerbehebungsanleitung von Nextcloud empfiehlt, den ursprünglichen Pfad mit dem neuen Verzeichnis zu verknüpfen. Nach der Überprüfung der Kopie benennen Sie das alte Verzeichnis für das Rollback um und erstellen die Verknüpfung:
Prüfen Sie, ob der Pfad korrekt aufgelöst wird /srv/nextcloud-disk/data. Der Webbenutzer muss übergeordnete Verzeichnisse durchlaufen und .ncdataauf das Zielverzeichnis lesen und schreiben können.
sudo -u www-data test -r /var/www/nextcloud/data/.ncdata
sudo -u www-data test -w /var/www/nextcloud/data
Schlägt eine Überprüfung fehl, korrigieren Sie die Besitzverhältnisse oder die Berechtigungen des übergeordneten Verzeichnisses für Ihren Webbenutzer. Stellen Sie sicher, dass das Verzeichnis nicht für alle Benutzer beschreibbar ist. Einige Webserver benötigen symbolische Links. Ist dies nicht möglich, bearbeiten Sie die Datei nicht oc_storagesmanuell: Nextcloud stuft diese Methode als nicht unterstützt ein und warnt davor, dass dadurch die Datenbank beschädigt werden kann.
Abbildung: Die Terminalansicht zeigt, dass der ursprüngliche Datenpfad mit dem Verzeichnis des externen Laufwerks verknüpft ist.
5. Starten Sie das System neu und überprüfen Sie die Einstellungen, bevor Sie die Rollback-Kopie entfernen.
Starten Sie web/PHP und aktivieren Sie den Scheduler erneut. Überprüfen Sie die Einbindung und den symbolischen Link und deaktivieren Sie anschließend den Wartungsmodus.
Melden Sie sich an, öffnen Sie vorhandene Dateien und Freigaben und laden Sie eine kleine Datei hoch oder herunter. Überprüfen Sie die Nextcloud- und Webserver-Protokolle und starten Sie den Server anschließend in einem Wartungsfenster neu, um sicherzustellen, dass die Festplatte vor dem Start von Nextcloud eingebunden wird.
Bewahren Sie data.pre-movedie Datenbanksicherung auf, bis ein Neustart und die normale Synchronisierung erfolgreich verlaufen. Falls die Verschiebung fehlschlägt, aktivieren Sie den Wartungsmodus, beenden Sie die Anwendung und stellen Sie das ursprüngliche Verzeichnis und den ursprünglichen Dienststatus wieder her. files:scanEin fehlerhaftes Mounten kann nicht behoben werden.
Überprüfung
Überprüfen Sie, ob die Festplatte beim Systemstart eingebunden wird, der ursprüngliche Pfad korrekt aufgelöst wird, der Webbenutzer Lese- und Schreibzugriffe hat und vorhandene Dateien sowie ein kleiner Upload funktionieren. Falls Nextcloud nach einem Neustart fehlende Dateien meldet, beenden Sie die Anwendung und überprüfen Sie die Einbindung, bevor Sie Schreibvorgänge zulassen.