Linux: /var auf eine andere Partition verschieben

Im Folgenden wollen wir an einem Beispiel das Verzeichnis /var auf einen neuen Mount-Punkt (eine neue Festplatten-Partition) verschieben. Dabei kommt es nicht darauf an, ob /var im Vorfeld bereits auf einem eigenen Mount-Punkt war oder ob es unter dem Mount-Punkt / besteht.

Als Voraussetzung sehe ich eine bereits mit gparted erstellte Partition, die man verwenden will (hier im Beispiel /dev/sdb1). Dies wird im Laufe der Schritte manuell eingehängt.

Vorab besorgen wir uns die UUID der Festplatten-Partition, die wir verwenden wollen:

blkid | grep sdb1

Die Ausgabe sieht in etwa wie folgt aus:

/dev/sdb1: UUID="f3bdcbdc-4db9-6fe8-3f63-8bb80231a639" TYPE="ext4" PARTUUID="XXXXXXXX-XX"

Die UUID können wir schon mal in die Zwischenablage kopieren. Anschließend hängen wir die Partition vorab auf einem Temporären Mount-Punkt ein:

sudo mkdir /mnt/tmp
sudo mount /dev/sdb1 /mnt/tmp

Vorerst prüfen wir, dass die Festplatte wie gewünscht eingehängt wurde:

sudo df -h /mnt/tmp

Die Ausgabe sollte in etwa wie folgt aussehen:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       2T    0    2T    0%   /mnt/tmp

Als nächstes müssen wir den Inhalt des var Verzeichnisses auf die neue Platte kopieren:

sudo rsync -aqxP /var/* /mnt/tmp

Als nächstes ändern/ergänzen wir die /etc/fstab um einen passenden Eintrag:

sudo vi /etc/fstab
UUID=f3bdcbdc-4db9-6fe8-3f63-8bb80231a639   /var        ext4    defaults        0       2

War /var im Vorfeld bereits auf einer Partition, muss man den vorigen Eintrag für /var angleichen. Andernfalls kann man die Zeile einfach übernehmen und nur die eigene UUID aus Schritt 1 einsetzen. Sollte nicht ext4genutzt gewesen sein, muss man natürlich auch das abändern.

Nach dem Speichern der Datei fehlt nur noch ein reboot:

sudo reboot now

Kommt vor dem Reboot was dazwischen muss man den Command sudo rsync -aqxP /var/* /mnt/tmp erneut ausführen um sicherzustellen, dass alle Dateien auf dem aktuellen Stand sind!