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:
Das /home-Verzeichnis liegt auf der Systempartition, es existiert also noch keine Home-Partition.
Eine leere Partition im ext4-Format steht zur Verfügung. Wenn dies nicht der Fall ist, muss man zunächst eine solche Partition erstellen.
Hinweis:
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“).