Partitionen Root und Home verschmelzen
Neulich bin ich auf ein interessantes aber relativ simples Problem mit meinen Partitionen gestoßen: Mein Root-Partition /
war einfach zu klein angelegt. Wie empfohlen, hatte ich bei der Installation von Linux jeweils eine Partition für Swap-Speicher, Root- und Home-Verzeichnis angelegt, mich bei dem Root aber deutlich verschätzt…
Da ich sowie nicht (mehr) der Meinung bin, dass eine Abgrenzung der Daten-Partitionen sinnvoll ist, wollte ich Root und Home nun verschmelzen. Für alle, die dasselbe vorhaben: Hier ein kleiner Guide.
Vorbereitungen
Zuerst sollte natürlich ein gründliches Backup aller wichtigen Dateien gemacht werden. Es gibt keine Garantie, dass alles am Ende glücklich verläuft, d.h. ihr könntet im schlimmsten Fall eure Daten verlieren und dem sollte man vorbeugen!
Außerdem wird ein bootfähiger USB-Stick nötig sein. Dafür könnt ihr mit Unetbootin (habe hiermit gute Erfahrungen gemacht) und einer Linux Distribution eurer Wahl einen solchen erstellen. Ich hatte Linux-Mint verwendet.
Die einfachste Möglichkeit, eurer /home
zu behalten ist, diese auf den Root zu kopieren. Ihr solltet daher sichergehen, dass auf /
genügend Platz für alles in /home
zur Verfügung steht.
Wir brauchen auch eine Übersicht, welche Partitionen sich auf unserer Platte befinden und wie genau unsere betreffenden Partitionen heißen (in meinem Fall /dev/sda7
und /dev/sda8
). Diese liefert uns z.B. GParted.
Zusätzlichen Speicher dem Root hinzufügen
Wenn ihr dasselbe Problem mit dem fehlenden Speicher im /
Verzeichnis habt, müssen wir dieses zunächst aufstocken. Da wir keine Veränderungen an aktiv verwendeten Partitionen vornehmen dürfen, brauchen wir den bootfähigen Stick. Wir booten den Stick und öffnen GParted (sollte installiert sein).
Hier rechtsklicken wir die /home
Partition und wählen „resize/move“. In diesem Fenster verkleinert man die Partition so, dass neben der Root-Partition Speicher freigegeben wird. Danach wählen wir „resize/move“ auf der Root-Partition und vergrößern diese um den freigewordenen Bereich. Über „Edit → Apply All Operations“ werden unsere Kommandos ausgeführt.
Das Home-Verzeichnis schieben
Haben wir auf Root genügend Platz, den /home
Ordner aufzunehmen, öffnen wir ein Terminal, um dies zu tun. Dies kann auch auf dem Boot-Stick geschehen, wenn man vorher die entsprechenden Partitionen mounted.
$ cd / $ sudo su $ mkdir home2 $ mv home/* home2
Damit haben wir alle Nutzerdaten nach /home2
auf dem Root verschoben. Am besten man überprüft dies noch einmal manuell, bevor es weiter geht!
Volume annektieren und fstab aktualisieren
An dieser Stelle solltet ihr euch wirklich sicher sein, dass der Kopiervorgang funktioniert hat oder ihr zumindest eine ordentliche Sicherheitskopie eurer Daten habt, denn folgende Schritte lassen sich nicht mehr rückgängig machen!
Wir starten wieder den Boot-Stick und das darauf befindliche GParted. Zuerst sollte die alte /home
Partition per „Rechstklick → delete“ gelöscht werden. Danach rechtsklicken wir die /
Partition und wählen „resize/move“, um den neu gewonnenen Speicher zu annektieren. Ausgeführt wird wieder per „Edit → Apply All Operations“.
Zuletzt müssen wir noch die Datei /etc/fstab
aktualisieren. Diese enthält die zu mountenden Partition bei Systemstart. Haben wir die Root-Partition noch im Boot-Stick gemounted, machen wir das gleich hier. Die Datei fstab
sollte nach Bearbeitung in etwa so aussehen:
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda7 during installation UUID=58f28e97-90f9-4003-a38f-1b2411501290 / ext4 defaults,errors=remount-ro 0 1 # /boot/efi was on /dev/sda2 during installation UUID=48E6-AFD4 /boot/efi vfat umask=0077 0 1 # swap was on /dev/sda6 during installation UUID=68e5e1ef-b862-413c-9fef-1755861f6945 none swap sw 0 0 # /home was on /dev/sda8 during installation #UUID=9c7b92f5-7d52-4c0f-bad0-101d1860aad1 /home ext4 defaults,acl 0 2
Letztere Zeile entfällt, da wir keine /home
Partition mehr haben. Dafür muss dem /
stellvertretend das „defaults“ hinzugefügt werden. Möglicherweise haben sich eure UUIDs durch das Verschieben/Vergrößern der Partitionen geändert. Mit $ blkid
könnt ihr das überprüfen und nötigenfalls korrigieren.
Zuletzt muss nur das /home2
wieder in /home
umbenannt werden. Ein Neustart sollte uns sodann zeigen, ob alles reibungslos verlaufen ist.