So verschieben Sie Ihr Linux-Home-Verzeichnis auf ein anderes Laufwerk

Möchten Sie den Speicherort Ihres Linux-Home-Ordners auf ein anderes Laufwerk verlegen? Hier folgt eine detaillierte Anleitung, die auf jeder Distribution anwendbar sein sollte. Durch die Verlagerung des Home-Ordners wird eine Neuinstallation von Linux vereinfacht, da Ihre persönlichen Dateien nicht beeinträchtigt werden.

Warum ist eine separate Speicherung des Home-Ordners empfehlenswert?

Bei der Einrichtung eines neuen Rechners oder dem Hinzufügen einer zusätzlichen Festplatte kann es sinnvoll sein, den Home-Ordner auf einem anderen Speichermedium als dem standardmäßigen Laufwerk zu lagern.

Eine gängige Konfiguration moderner PCs sieht den Einsatz einer mittelgroßen Solid State Drive (SSD) für das Betriebssystem und einer großzügiger dimensionierten Solid State Hybrid Drive (SSHD) oder einer traditionellen Festplatte (HDD) als Hauptspeicher für persönliche Daten vor. Alternativ könnte eine bereits vorhandene Festplatte durch eine zusätzliche HDD erweitert werden, um mehr Speicherkapazität zu schaffen. Unabhängig von den individuellen Beweggründen, hier ist eine einfache und schnelle Methode, um Ihr Home-Verzeichnis zu verlegen.

Bei der Neuinstallation eines Linux-Systems wird in der Regel die Option angeboten, ein separates Home-Verzeichnis einzurichten. Hierzu muss man meistens in den Partitionierungsoptionen eine separate Partition erstellen und diese unter „/home“ mounten. Sollten Sie jedoch bereits eine Linux-Distribution installiert haben, können Sie diese Anleitung nutzen, um Ihr aktuelles Home-Verzeichnis ohne Datenverlust oder Neuinstallation des Betriebssystems zu verlagern.

Bevor wir beginnen, sollten Sie eine Datensicherung durchführen.

Identifizierung des Laufwerks

Nachdem Sie ein neues Laufwerk in Ihren Linux-Rechner eingebaut oder Linux auf einem von mehreren Laufwerken eines neuen Rechners installiert und neu gestartet haben, gibt es anfänglich kaum eine Anzeige, die die Existenz des neuen Datenträgers bestätigt.

Der Befehl fdisk listet die Laufwerke und deren Partitionen auf.

sudo fdisk -l

Überprüfen Sie die Ausgabe, bis Sie das neue Laufwerk gefunden haben. Das erste Laufwerk trägt die Bezeichnung /dev/sda, das zweite /dev/sdb, und so weiter, wobei der letzte Buchstabe jeweils inkrementiert wird. /dev/sde wäre somit das fünfte Laufwerk im System.

In diesem Beispiel handelt es sich bei dem neuen Laufwerk um das zweite, das in das System eingebaut wird. Wir suchen also nach einem Eintrag für /dev/sdb.

Wie hervorgehoben, ist /dev/sdb das gesuchte Laufwerk. Es gibt keine Zeile, die eine Partition beschreibt, da es sich um ein brandneues Laufwerk handelt. Wir müssen die Partition noch erstellen. Dies ist mit fdisk möglich. Wenn Ihre Festplatte nicht /dev/sdb ist, ersetzen Sie /dev/sdb durch die tatsächliche Laufwerkskennung Ihrer neuen Festplatte.

sudo fdisk /dev/sdb

Nach der Aufforderung zur Befehlseingabe, drücken Sie „p“. Dies zeigt die Partitionstabelle der Festplatte an. Zwar existiert noch keine Partition, jedoch erhalten wir nützliche Informationen über das Laufwerk. Dies gibt uns die Möglichkeit sicherzustellen, dass wir mit dem richtigen Laufwerk arbeiten.

Die Ausgabe bestätigt, dass es sich um ein 1-TB-Laufwerk handelt, was unseren Erwartungen entspricht. Wir können also fortfahren.

Erstellung einer Partition

Drücken Sie „n“ für eine neue Partition, anschließend „p“ für eine primäre Partition. Wenn Sie nach der Partitionsnummer gefragt werden, geben Sie „1“ ein.

Wir erstellen eine einzige Partition, die die gesamte Festplatte umfasst. Wenn nach dem ersten Sektor gefragt wird, drücken Sie die Eingabetaste, um den Standardwert zu akzeptieren. Dasselbe gilt für die Frage nach dem letzten Sektor.

Obwohl fdisk bestätigt, dass eine 1-TB-Linux-Partition mit der Nummer 1 erstellt wurde, sind die Änderungen noch nicht auf der Festplatte geschrieben. Erst nach der Bestätigung durch den Befehl werden die Änderungen vorgenommen. Sind Sie mit Ihrer Auswahl zufrieden, drücken Sie „w“, um die Änderungen zu schreiben.

Die Partition wurde auf /dev/sdb geschrieben. Lassen Sie uns überprüfen, was passiert ist. Wir führen fdisk erneut auf /dev/sdb aus.

sudo fdisk /dev/sdb

Drücken Sie „p“, um die Partitionstabelle anzuzeigen. Nun wird die Partition für das Laufwerk angezeigt. Da es sich um die erste Partition auf diesem Laufwerk handelt, heißt sie /dev/sdb1. Eine zweite Partition würde /dev/sdb2 heißen, und so weiter.

Wir wollen keine Änderungen an der Partition vornehmen, daher beenden wir mit „q“.

Dateisystem auf der Partition erstellen

Wir müssen ein Dateisystem auf der Partition erstellen. Dies geschieht mit dem Befehl mkfs. Beachten Sie, dass Sie im Befehl die Partitionsnummer angeben müssen. Achten Sie darauf, /dev/sdb1 (die Partition) und nicht /dev/sdb (das Laufwerk) einzugeben.

sudo mkfs -t ext4 /dev/sdb1

Das Dateisystem wird erstellt und Sie gelangen zurück zur Eingabeaufforderung.

Einbindung des neuen Laufwerks

Um das neue Laufwerk nutzen zu können, muss die Partition an einem Mount-Punkt im Dateisystem eingebunden werden. Genauer gesagt, mounten wir nicht das Laufwerk oder die Partition selbst, sondern das Dateisystem auf der Partition, indem wir es in die Verzeichnisstruktur Ihres Systems integrieren.

Der /mnt-Punkt eignet sich gut dafür. Es handelt sich lediglich um einen temporären Mount-Punkt, der es uns ermöglicht, Daten auf das neue Laufwerk zu kopieren. Wir verwenden den Befehl mount, um das Dateisystem der ersten Partition auf /dev/sdb unter /mnt einzubinden.

sudo mount /dev/sdb1 /mnt

Bei erfolgreicher Ausführung werden Sie ohne Fehlermeldung zur Befehlszeile zurückgeleitet. Sehen wir nach, ob wir zum Verzeichnis auf dem neu gemounteten Dateisystem wechseln können.

cd /mnt

Ja, das ist möglich. Betrachten wir den Inhalt.

ls -ahl

Wir befinden uns in unserem neuen Dateisystem. Das Standardverzeichnis „lost+found“ wird nicht benötigt, daher können wir es entfernen.

sudo rm -rf lost+found

Kopieren des Home-Ordners

Nun müssen wir den gesamten Inhalt des alten Home-Verzeichnisses in das neu gemountete Dateisystem kopieren. Die Verwendung der Optionen „r“ (rekursiv) und „p“ (erhalten) stellt sicher, dass alle Unterverzeichnisse kopiert und Dateibesitzer, Berechtigungen und andere Attribute beibehalten werden.

sudo cp -rp /home/* /mnt

Sobald der Kopiervorgang abgeschlossen ist, prüfen Sie mit „ls“, ob Ihre Daten im neuen Dateisystem korrekt angeordnet sind. Ist alles vorhanden und korrekt, als wäre /mnt Ihr Home-Verzeichnis?

ls
ls dave

Auf einem Testsystem wie diesem kann die Überprüfung etwas oberflächlich sein. Als zusätzliche Sicherheit benennen wir das alte /home-Verzeichnis um und behalten es, bis Sie sicher sind, dass es gelöscht werden kann.

sudo mv /home /home.orig

Nun erstellen wir ein neues, leeres Home-Verzeichnis.

sudo mkdir /home

Wir nutzen dieses neue leere Home-Verzeichnis als Mount-Punkt für das Dateisystem auf der neuen Festplatte. Wir müssen es von /mnt aushängen und wieder unter /home einhängen. Beachten Sie, dass der Befehl zum Aushängen „umount“ lautet und kein „n“ nach dem „u“ hat.

sudo umount /dev/sdb1
sudo mount /dev/sdb1 /home/

Überprüfung des neuen Home-Verzeichnisses

Betrachten wir nun die Attribute der Partition /dev/sdb1:

df /dev/sdb1

Angezeigt werden der Name des Dateisystems, die Größe der Partition sowie der belegte und verfügbare Speicherplatz. Wichtig ist, dass der Mount-Punkt /home ist. Wir sollten nun wie gewohnt auf das alte /home-Verzeichnis zugreifen können.

Von jedem Punkt im Dateisystem sollten wir mit der Tilde-Verknüpfung (~) zu /home zurückkehren können.

cd /
cd ~
pwd
ls

cd /home
ls
cd dave
ls
ls -a

Wir können sowohl mit expliziten Befehlen als auch mit der Tilde-Verknüpfung (~) zwischen verschiedenen Stellen des Dateisystems und /home hin- und herwechseln. Die erwarteten Ordner, Dateien und Punktdateien sind vorhanden. Es sieht alles gut aus.

Sollte etwas fehlen, können wir es aus dem Verzeichnis /home.orig kopieren, auf das wir weiterhin über das Stammverzeichnis Zugriff haben. Aber es sieht alles in Ordnung aus.

Nun müssen wir /dev/sdb1 so einrichten, dass es beim Start des Rechners automatisch gemountet wird.

Bearbeitung von fstab

Die Datei „fstab“ enthält Beschreibungen der Dateisysteme, die beim Booten des Systems eingehängt werden. Bevor wir Änderungen daran vornehmen, erstellen wir eine Sicherungskopie, auf die wir bei Problemen zurückgreifen können.

sudo cp /etc/fstab /etc/fstab.orig

Jetzt können wir die fstab-Datei bearbeiten.

sudo gedit /etc/fstab

Fügen Sie am Ende der Datei eine Zeile hinzu, um unser neues /home-Verzeichnis einzuhängen. Wenn Ihre Laufwerks- und Partitions-IDs von den hier verwendeten abweichen, ersetzen Sie /dev/sdb1 durch Ihre tatsächlichen Werte.

Geben Sie den Namen der Partition am Anfang der Zeile ein und drücken Sie die Tabulatortaste.
Geben Sie den Mount-Punkt /home ein und drücken Sie die Tabulatortaste.
Geben Sie die Dateisystembeschreibung ext4 ein und drücken Sie die Tabulatortaste.
Geben Sie Standardwerte für die Mount-Optionen ein und drücken Sie die Tabulatortaste.
Geben Sie die Ziffer 0 für die Dateisystem-Dump-Option ein und drücken Sie die Tabulatortaste.
Geben Sie die Ziffer 0 für die Dateisystemprüfungsoption ein.

Speichern Sie die fstab-Datei.

Neustart des Systems

Wir müssen einen Neustart durchführen, um zu bestätigen, dass alles planmäßig verlaufen ist und Sie problemlos auf Ihr neues /home-Verzeichnis zugreifen können.

Sollte es Probleme geben, haben Sie das alte /home-Verzeichnis und die fstab-Datei noch als Sicherheitskopie, welche bei Bedarf wiederhergestellt werden können. Dank der Vorsichtsmaßnahmen, die wir getroffen haben – das Kopieren des /home-Verzeichnisses und der fstab-Datei – kann der vorherige Zustand des Systems jederzeit wiederhergestellt werden.

sudo reboot now

Abschlusskontrollen

Nach dem Neustart überprüfen wir lediglich, ob sich Ihr /home-Verzeichnis tatsächlich auf der neuen Festplatte befindet und das System (wundersamerweise) nicht auf das alte /home-Verzeichnis zurückgesetzt hat.

df /dev/sdb1

Ausgezeichnet, es ist unter /home gemountet. Mission erfüllt.

Wenn Sie sich vollkommen sicher sind, dass Sie die Sicherheitskopie Ihres alten /home-Verzeichnisses nicht mehr benötigen, können Sie es löschen:

cd /
sudo rm -rf home.orig/

Und sollten Sie bemerken, dass etwas vom alten /home nicht in das neue /home kopiert wurde, können Sie es selbstverständlich aus der vor dem Start erstellten Sicherung wiederherstellen.

Ein eigenes Zuhause

Nachdem Sie Ihr /home-Verzeichnis vom Rest der Partition des Betriebssystems separiert haben, können Sie Ihr Betriebssystem neu installieren, während Ihre Daten unversehrt bleiben. Sie müssen lediglich die Datei fstab anpassen, um Ihr zweites Laufwerk unter /home einzuhängen.

Da sich alle Ihre Dotfiles im /home-Verzeichnis befinden, werden Ihre Einstellungen, Präferenzen und Daten beim Starten Ihrer verschiedenen Anwendungen automatisch übernommen.

Dadurch werden Neuinstallationen vereinfacht und das Risiko von Upgrade-Problemen minimiert.