ubuntuusers.de

Home umziehen

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Oft wird der Platz für die Daten zu eng auf der Festplatte. Ein Ausweg ist, die persönlichen Daten der einzelnen Benutzer auf eine extra Partition zu legen. Im Folgenden wird von dieser Situation ausgegangen:

Hinweis:

Man kann hier statt ext auch ein anderes Linux-Dateisystem benutzen, welches Rechte unterstützt. FAT32 und NTFS sind damit explizit ausgeschlossen.

Vorgehensweise

Als erstes sollte man ein Backup seines /home-Verzeichnisses anlegen; sicher ist sicher. Dann sollte überprüft werden, ob die ausgewählte Partition groß genug ist, um die Benutzerdaten aufnehmen zu können. Den Platz, den das Home-Verzeichnis benötigt, kann man im Terminal [1] mit dem Befehl

du -sh /home 

Ausgabe z.B.

2,5G    /home

herausfinden. Die neue Partition muss in diesen Beispiel also mindestens 2,5 Gigabytes groß sein.

Abmelden von der grafischen Benutzeroberfläche

Hinweis:

Für alle, die im Umgang mit der Konsole noch nicht so sicher sind, bietet es sich an, die unten folgenden Befehle abzuschreiben oder diese Seite auszudrucken, von jetzt an muss auf der Konsole gearbeitet werden. Es ist nicht möglich, diese Aktion innerhalb der graphischen Umgebung durchzuführen!

Um ungewollte Nebeneffekte zu vermeiden, muss man sich nun aus der grafischen Oberfläche (GNOME, KDE, Xfce etc.) abmelden, und mit Strg + Alt + F3 zu einer Virtuelle-Konsole wechseln, siehe Terminal (Abschnitt „Virtuelle-Konsole“) [1]. Dort meldet man sich mit dem üblichen Benutzernamen und Passwort an. Da alle nun folgenden Befehle root-Rechte erfordern, verleiht man sich diese temporär durch Eingabe von

sudo -s
cd / 

Neue Partition einhängen

Mit

fdisk -l 

erhält man eine Liste aller vorhandenen Partitionen. Hier merkt man sich die Bezeichnung der neuen Partition, etwa /dev/sda5 und bindet sie mit

mkdir /mnt/tmp
mount /dev/sda5 /mnt/tmp 

am Mountpunkt /mnt/tmp ein. Hierbei und bei allen folgenden Befehlen ist natürlich /dev/sda5 durch die korrekte Bezeichnung der neuen Partition zu ersetzen.

Daten kopieren

Mit einem der beiden folgenden Befehle startet man den Kopiervorgang. Dieser Schritt erfordert je nach Größe des Homeverzeichnisses viel Zeit.

# rsync kopiert nicht nur die Daten, sondern überprüft zusätzlich ob die Daten korrekt geschrieben wurden.
# Dies dauert geringfügig länger, garantiert jedoch eine einwandfreie Durchführung des Kopiervorganges.
rsync -avxH --progress /home/ /mnt/tmp 

Hinweis:

Bei dem Aufruf von rsync muss darauf geachtet werden, dass das Zeichen / (Slash/Schrägstrich) am Ende von /home/ steht, ansonsten wird nicht nur der Inhalt des Ordners kopiert, sondern der Ordner kopiert sich selber, dies kann unerwünschte Auswirkungen beim Kopieren haben!

# Soll es schnell gehen, so kann auf den Standardbefehl cp zurückgegriffen werden. Hier ist allerdings nicht
# garantiert, dass die Daten auch korrekt kopiert wurden.
cp -avx /home/* /mnt/tmp 

Danach kann die Partition testweise in das /home-Verzeichnis eingebunden werden:

mount /dev/sda5 /home 

Hinweis:

Durch den Mount-Befehl wird der ursprüngliche Inhalt (Original) des /home-Verzeichnisses unsichtbar und es ist nur mehr die neu gemountete Partition (Kopie) sichtbar.

Durch Eingabe von

du -sh /home; mount|grep /home 

überprüft man, ob alles geklappt hat. Die Ausgabe sollte etwa so aussehen:

2,5G    /home
/dev/sda5 on /home type ext4 (rw)

Neue Home-Partition verwenden

Nun kann das alte /home-Verzeichnis gelöscht werden:

umount /home
rm -rf /home/* 

Wichtig: Die Partition muss vorher defintiv ausgehängt sein. Dies ist der Fall, wenn nach dem umount-Befehl keine Meldungen ausgegeben werden.

Damit die neue Partition beim Systemstart eingebunden wird, ist sie in der Datei /etc/fstab einzutragen. Um dies korrekt zu machen muss die UUID der neuen Partition mit blkid bestimmt werden.

blkid 
 
[...]
/dev/sda5: UUID="f72aac23-092f-4484-b35c-f222c106d716" TYPE="ext4" 
[...]

Die so bestimmte Identifikationsnummer der Partition muss nun in die /etc/fstab eingetragen [2] werden. (Siehe oben: Link: Einen Editor öffnen) Die Position innerhalb von fstab ist dabei nicht so wichtig, sinnvoll ist es als letzte Zeile.

# /dev/sda5
UUID=f72aac23-092f-4484-b35c-f222c106d716  /home   ext4   defaults   0 2

Dieser Schritt kann auch schon ausgeführt werden, bevor man sich auf die Konsolenebene begibt und das Home-Verzeichnis umzieht. Da /etc/fstab bei jedem Systemstart neu eingelesen wird, kann man sie problemlos aus dem laufenden System editieren.

Man öffnet die Datei fstab in einem Editor mit Root-Rechten[2][3] und legt den Eintrag für die neue Home-Partition an. Danach macht man die Abfrage der UUID im Terminal (Befehl: sudo blkid) und fügt sie in die Datei fstab, an der passenden Stelle des neuen Eintrags für die /home, ein. fstab speichern und schließen.

Hat man /home umgezogen und den Inhalt des Home-Verzeichnisses gelöscht, befindet sich der Eintrag der neuen /home schon in der fstab und das System kann neu gestartet werden.

Zusatz bei verschlüsseltem Nutzerverzeichnis

Ist nun nach dem Neustart das Homeverzeichnis auf der neuen Partition, wurde jedoch komplett neu und leer angelegt, dann war das alte Benutzerverzeichnis gegebenenfalls softwareseitig verschlüsselt. Entweder man berücksichtigt folgende Schritte gleich nach dem Umzug oder wechselt noch einmal in die Konsole, löscht die neu angelegten Inhalte und erstellt folgende symbolischen Links als Nutzer $USER:

sudo ln -s /home/.ecryptfs/$USER/.Private ~/.Private
sudo ln -s /home/.ecryptfs/$USER/.ecryptfs ~/.ecryptfs
sudo chown $USER:$USER ~ 

Abschluss

Danach startet man das System neu.

reboot 

Tipps

  • Für alle, die noch nicht so sicher mit der Konsole sind:

Wem das mit dem Löschen aus der Konsole heraus und ohne graphische Oberfläche zu heikel ist, der löscht das alte /home-Verzeichnis einfach erst nach erfolgreichem Neustart. Dies ist jedoch nicht möglich, wenn die Home-Partition eingehängt ist. Also muss von einer Live-CD gebootet werden. Man hängt dann die Systempartition ein und löscht die Inhalte des home-Ordners – aber nicht den Ordner selbst. /home muss nämlich beim Booten als Mountpunkt zur Verfügung stehen.

  • Die fstab kann auch von der grafischen Oberfläche aus vom Ordner /etc in das Homeverzeichnis kopiert werden. Danach kann man ein Terminal öffnen und mit sudo fdisk -l und sudo blkid die UUID der neuen Partition herausfinden. Diese kann dann kopiert und mittels normalem Texteditor der fstab-kopie hinzugefügt werden.

Von der konsole ohne grafische Oberfläche aus gibt man dann nach einander die folgenden Befehle ein.

zum löschen der fstab:

rm /etc/fstab 

Davon ausgehend, dass der Benutzername max ist:

cp /home/max/fstab /etc/fstab 

um die Kopie, die nun um die neue Partition erweitert wurde an den richtigen Ort zu platzieren.

Zum Schluss zum Überprüfen:

cat /etc/fstab 

Wenn die Ausgabe aussieht, wie erwartet, hat alles funktioniert und es geht wie oben beschrieben mit dem Kopieren der Daten weiter. Es geht dann nach dem Löschen vom alten /home-Verzeichnis direkt mit dem reboot weiter. Auf diese Weise muss die ziemlich lange UUID nicht abgeschrieben und anschließend abgetippt werden, da man sie ja markieren, kopieren und schließlich einfügen kann.

Alternative

Möchte man nicht /home/* umziehen, sondern lediglich die Home-Verzeichnisse einzelner Benutzer (z.B. umbenennen), findet man eine entsprechende Anleitung im Artikel Homeverzeichnis (Abschnitt „Homeverzeichnis-aendern“).

Diese Revision wurde am 31. August 2021 08:04 von tuxifreund erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System