Wenn der Speicherbedarf der MicroSD eines Raspberry Pi, auf dem eine Nextcloud installiert ist, nicht ausreicht, kann man diesen via Festplatte oder USB-Stick problemlos erweitern.
Folgendes Beispiel zeigt eine Möglichkeit anhand einer neuen vorformatierten SSD und eines Raspberry Pi 3 Modell B.
Festplatte einbinden
Hierzu wird die Festplatte über einen entsprechenden USB-Adapter an den Raspberry Pi angeschlossen und via
1 |
ls -l /dev/sd* |
identifiziert. Die angeschlossene SSD wird im Beispiel unter /dev/sda vom System ausgemacht. Die Ausgabe sieht dann in etwa so aus:
1 |
brw-rw---- 1 root disk 8, 0 Jan 31 07:30 /dev/sda |
Im Nachgang partitioniert man die Festplatte mit fdisk.
1 |
sudo fdisk /dev/sda |
Mit
1 |
n |
wird „add a new partition“ gewählt und mit
1 |
p |
eine primäre Partition erstellt. Im Normalfall wird hier mit
1 |
1 |
die Position (1) bestätigt und die Werte mit
1 |
w |
auf die Festplatte geschrieben.
Das Partitionieren der SSD mit dem Linux-Dateisystem ext4 erledigt man im Anschluss über:
1 |
sudo mkfs.ext4 /dev/sda1 |
Nun wird die Festplatte dauerhaft in das System eingebunden. Dazu erstellt man ein Mountverzeichnis ssd unter /media.
1 |
cd /media |
1 |
sudo mkdir ssd |
Mit
1 |
sudo mount /dev/sda1 /media/ssd |
wird nun die SSD gemountet.
Damit das Ganze auch einen Reboot überlebt, muss z.B. mit blkid die UUID der SSD ermittelt werden.
1 |
blkid |
Ausgabe:
1 |
/dev/sda1: UUID="ccd6f834-9ea0-46cb-8167-518478e8d78d" TYPE="ext4" PARTUUID="187cc1bb-01" |
Die /etc/fstab wird im Anschluss um den entsprechenden Eintrag mit der UUID der SSD erweitert.
1 |
sudo nano /etc/fstab |
1 |
UUID=ccd6f834-9ea0-46cb-8167-518478e8d78d /media/ssd ext4 defaults 0 0 |
Jetzt kann das System zum Testen neu gestartet werden.
1 |
sudo reboot |
Die Festplatte sollte nun dauerhaft über /media/ssd erreichbar sein.
Im Nachgang beginnt der gefährliche Teil, mit dem Verschieben bzw. kopieren des Datenverzeichnisses der Nextcloud auf die SSD.
An dieser Stelle möchte ich darauf hinweisen, stets ein Backup anzufertigen, falls wirklich mal etwas schief geht!
Um das Datenverzeichnis einzubinden, steigt man in das Installationsverzeichnis der Nextcloud ab
1 |
cd /var/www/html/nextcloud |
und schaltet mit
1 |
sudo -u www-data php occ maintenance:mode --on |
den Wartungsmodus ein, um zu verhindern, dass während dieses Vorgangs Daten auf die Nextcloud geschrieben werden.
Datenverzeichnis kopieren
Dann wird das Datenverzeichnis einfach von der MicroSD auf die Festplatte kopiert.
1 |
sudo cp -rp /var/www/html/nextcloud/data /media/ssd |
Dieses bekommt dann die entsprechenden Rechte.
1 |
sudo chown -R www-data:www-data /media/ssd |
In der Konfigurationsdatei der Nextcloud wird nun über
1 |
sudo nano /var/www/html/nextcloud/config/config.php |
der entsprechende Pfad zum Datenverzeichnis wie folgt geändert.
1 |
'datadirectory' => '/media/ssd/data', |
Nach einem erneuten Neustart des Webservers
1 |
sudo service apache2 restart |
und dem Abschalten des Wartungsmodus
1 |
sudo -u www-data php occ maintenance:mode --off |
sollte alles wie gewünscht laufen.
Hinweis
Das alte Datenverzeichnis /var/www/html/nextcloud/data ist noch vorhanden und kann sofern alles funktioniert im Anschluss gelöscht werden.
Hallo,
tja, fstab editieren und den Reboot kaputt machen, Super…viel Spass beim Reparieren
Genau deshalb sollte man ein Backup machen!
Danke für die Beschreibung. Mir wird allerdings nicht ganz klar was und warum hier kopiert wird. Aufgabe Speicher voll. Was ist mit data gemeint? Die bisherigen Benutzer*innendaten? Dann nur der Inhalt der microsd? Warum nicht auch der Inhalt des bisherigen Speichers? Die Fotos etc.? Oder ist mit data eine Ebene gemeint die die weitere Speicherung/Upload/Download „koordiniert“ und dann auf einen anderen Bereich der neuen SSD diese Daten „schreibt“? Es wird auch nicht klar auf welcher Nextcloud-Basis du arbeitest. Welche Version? VM? raspian? oder nextcloudpi? O.K Terminal geht immer. Ist ncp-config bei deiner Nextcloud Konfiguration nicht vorhanden? Auch keine web ui? So geht es jedenfalls einem blutigen Anfänger wie mir.
Hallo Thorsten,
bei einer normalen Installation von Nextcloud auf dem Raspberry Pi liegt das System und die eigentlichen Daten, die man in der Cloud ablegt, auf der SD/MicroSD. So ist man mit Karten von ca. 32GB schnell an der physikalischen Grenze. Man kann nun die MicroSD ersetzen oder das System lt. Anleitung erweitern. Das System verbleibt aber nach wie vor auf der Karte.
Ich arbeite immer mit der neuesten Nextcloud-Version (in dem Fall war es v18). Diese Anleitung ist aber auch auf ältere Releases 1:1 anwendbar. Natürlich kann man an einem vServer aber auch Homeserver das Datenverzeichnis genauso auslagern.
ncp-config ist, wie Du schon vermutet hast, bei mir nicht vorhanden. Ob das nachinstalliert werden kann und dann auch noch funktioniert, kann ich nicht sagen. Ich fahre meine Updates lieber manuell und weiß somit was auf dem System geschieht.
Die Cloud ist über ein Webinterface erreichbar.
Ich denke, Du solltest dich erst einmal mit den Grundlagen zur Nextcloud beschäftigen. Die Fragen wie etwas dann genau funktioniert, wirst du dann oft schon selbst beantworten können.
Viel Spaß!
Ich als noob habe jetzt durch den fstab Edit meinen Reboot kaputt gemacht und komme nicht mehr auf die Festplatte.
Wie kann ich den Edit ohne Backup reparieren?
Ist das auf dem Raspberry Pi passiert?
Ja genau
Na dann sollte es relativ gut zu reparieren sein. Du steckst einfach die MicroSD in den PC und editierst die Datei /media/deinbenutzername/rootfs/etc/fstab (falls Du Linux nutzt). Hier müsste der zuletzt hinzugefügte Eintrag entfernt oder editiert werden, damit das System wieder hoch fährt (Bsp.: UUID=ccd6f834-9ea0-46cb-8167-518478e8d78d).