Einbindung einer Partition
Einbindung (nach Standardinstallation) eines auf separater Platte abgelegten Homeverzeichnisses und Ignorierung der standardmäßigen /home
Danksagung
Ulf hat mir bei der Einbindung meiner M.2-NVMe auf dem neuen PC, die mir auf meinem alten Rechner schon als Homeverzeichnis diente, sehr geholfen und diesen Beitrag auch gegengelesen. Da ich schon einmal das Problem (nach einer Neuinstallation) hatte, die NVMe (das darauf befindliche /home) in meine Installation einzubinden, habe ich mich entschlossen, dieses Wiki zu erstellen. Erstens hilft es mir (in ähnlichen Fällen) und zweitens könnte es auch Dir helfen; das ist (jedenfalls für mich) ja nicht gerade eine gar so einfache Situation ...
Problem
Nach einem Umzug aller meiner Festplatten von meinem schon etwas betagten PC auf einen leicht neueren, aber dennoch deutlich besseren des Herstellers Lenovo, Typ ThinkStation, war durch die standardmäßig ausgeführte Installation auf die Samsung-SSD Evo 860 ein Home-Verzeichnis entstanden, das ich nicht nutzen möchte. Vielmehr möchte ich die Daten des /home auf meiner 1000 GB großen Samsung M.2-SSD NVMe 907 Evo nutzen; die sind da ja schon gespeichert.
Vorab zu erledigen
- erstelle eine Sicherung der Datei fstab (Pfad:
/etc/
) auf eine externe Platte (nur für alle Fälle) - sichere Dein
/home
ebenso auf eine externe Festplatte - sichere ebenso Dein Root-Verzeichnis (
/
) auf eine externe Platte
Konsolenbefehl um eingehängte Platten und Ihre Bezeichnung (/dev/sdXY), samt deren Dateisystem zu erkennen
Dieser Befehl erfordert eine Abfrage als Root / Administrator, also wird ein 'sudo' vorangestellt.
[$] holger@linux:~> sudo fdisk -l
Auszug aus der Befehlsausgabe bezüglich der Tumbleweed-Installation - das ist die erste der beiden SSDs (/dev/sda:
Festplatte /dev/sda: 465,76 GiB, 500107862016 Bytes, 976773168 Sektoren Festplattenmodell: Samsung SSD 860 Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: gpt Festplattenbezeichner: 42892C69-2FAC-4A7A-932C-D0EFDAB74739
Wie man sieht, liegen das Root- und Homeverzeichnis standardmäßig noch auf der zweiten Partition, der /dev/sda2. So ist das auch normal nach einer Neuinstallation.
Gerät Anfang Ende Sektoren Größe Typ /dev/sda1 2048 1050623 1048576 512M EFI-System /dev/sda2 1050624 972578815 971528192 463,3G Linux-Dateisystem [Root- mit Homeverzeichnis] /dev/sda3 972578816 976773134 4194319 2G Linux Swap
und hier noch die (einzige) M.2-NVMe-SSD, - daher /dev/nvme0n1 - , deren Daten als standardmäßiges /home eingebunden werden sollen (weitere vorhandene Platten, die mit diesem Befehl auch ausgegeben wurden, interessieren hier nicht):
Festplatte /dev/nvme0n1: 931,51 GiB, 1000204886016 Bytes, 1953525168 Sektoren Festplattenmodell: Samsung SSD 970 EVO 1TB Einheiten: Sektoren von 1 * 512 = 512 Bytes Sektorgröße (logisch/physikalisch): 512 Bytes / 512 Bytes E/A-Größe (minimal/optimal): 512 Bytes / 512 Bytes Festplattenbezeichnungstyp: gpt Festplattenbezeichner: 7BB9DC1D-D2CA-450C-980A-1A681E6C9225 Gerät Anfang Ende Sektoren Größe Typ /dev/nvme0n1p1 2048 1953525134 1953523087 931,5G Linux-Dateisystem
Diese NVMe hat nur eine Partition (da eine reine Datenplatte) angelegt; ersichtlich an der Bezeichnung /dev/nvme0n1p1
Anzeige der Fstab-Datei im Verzeichnis /etc mit dem Joe-Editor (Konsole)
Da wir uns nicht zum Root / Administrator gemacht haben, können wir die Datei fstab jetzt nur betrachten, aber nicht verändern (wie wir sehen, ist die M.2-NVMe ist noch gar nicht eingetragen; das wäre dann der Eintrag in der 13. Zeile)
[$] holger@linux:~> joe /etc/fstab
Hier die Ausgabe:
I /etc/fstab Row 12 Col 1 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 / btrfs defaults 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /var btrfs subvol=/@/var 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /usr/local btrfs subvol=/@/usr/local 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /srv btrfs subvol=/@/srv 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /root btrfs subvol=/@/root 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /opt btrfs subvol=/@/opt 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /home btrfs subvol=/@/home 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /.snapshots btrfs subvol=/@/.snapshots 0 0 UUID=3ff503e4-c0b5-4aa5-b05f-1baae11a05cc swap swap defaults 0 0 UUID=4D34-0A88 /boot/efi vfat utf8 0 2
Der von mir fett markierte Eintrag in der Mitte der Tabelle ist das Home, welches bei der Neuinstallation angelegt wurde, das ich aber nicht nutzen möchte.
Eintrag der M.2-NVMe in die Fstab-Datei[1]
Um eine Festplatte in die Fstab-Datei eintragen zu können, müssen wir zunächst einmal ihre UUID[2] kennen ...
Konsolenbefehl zur Abfrage der UUID der NVMe und ihrer (in diesem Fall einzigen) Partition
Auch dieser Befehl erfordert Root-Rechte
[$] holger@linux:~> sudo blkid /dev/nvme0n1p1 /dev/nvme0n1p1: UUID="fd5c4324-c81e-4a50-8cc4-3bff056a79dd" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="73caaf90-e07a-487e-a65b-7d335bd52a39"
Wichtig ist hier, daß wir ganz gezielt auch die Partition dieser NVMe (oder einer anderen Platte) abfragen. Hätten wir nur die Platte ohne Partition angegeben (/dev/nvme0n1 - ohne den Zusatz 'p1' = Partition 1), wäre uns nicht die UUID, sondern die PARTUUID ausgegeben worden; und die wäre falsch.
Übrigens könnte ich mir auch die UUIDs aller eingehängten Platten ausgeben lassen; in diesem Fall lasse ich die Pfadangabe (/dev/hdXY, bzw. /dev/sdXY, oder /dev/nvme0nXpY) einfach weg und würde (in meinem Fall - mit zwei SSDs, einer NVMe und zwei HDDs) diese Ausgabe erhalten):
[$] holger@linux:~> sudo blkid /dev/sda1: UUID="4D34-0A88" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="84539456-ddc2-45e3-b86a-c0bcbbe6fb4a" /dev/sda2: UUID="339387e9-84da-4bbf-a079-c80d1c9c2676" UUID_SUB="66e5a10d-435c-4851-be42-c67a32668b5d" BLOCK_SIZE="4096" TYPE="btrfs" PARTUUID="fda76e04-d395-46ba-99b4-95e520986b7c" /dev/sda3: UUID="3ff503e4-c0b5-4aa5-b05f-1baae11a05cc" TYPE="swap" PARTUUID="bc44119e-3706-419b-9f22-3271aba1544b" /dev/sdb1: LABEL="Wiederherstellung" BLOCK_SIZE="512" UUID="EEB65AE4B65AACB9" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="3ff1b7ac-2c0b-47eb-ad75-2c598e76bedf" /dev/sdb2: UUID="7461-6130" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="0f372f67-eafd-4304-8646-c4e1ea8dd8cf" /dev/sdb3: PARTLABEL="Microsoft reserved partition" PARTUUID="61cba859-1739-4128-88c1-be5374cc1d2a" /dev/sdb4: BLOCK_SIZE="512" UUID="38EA6AC4EA6A7DCE" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="2074fe84-b054-43eb-a5ff-e17537688194" /dev/sdc1: UUID="93279354-b851-48a3-bddf-1b73fc632b5f" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="6844e9e5-b135-4765-a6e5-3d90e8da396a" /dev/sdd1: UUID="93279354-b851-48a3-bddf-1b73fc632b5f" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="fffeb90e-0725-11eb-818e-ed0fef3c7d45" /dev/nvme0n1p1: UUID="fd5c4324-c81e-4a50-8cc4-3bff056a79dd" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="73caaf90-e07a-487e-a65b-7d335bd52a39"
Nun kennen wir also die UUID unserer NVMe-Partition und nutzen den Joe-Editor, diesmal, um die Fstab-Datei zu bearbeiten.
Öffnen und Bearbeiten der Fstab-Datei (liegt im Verzeichnis /etc) mit dem Joe-Editor
Zunächst machen wir uns für die Dauer der Bearbeitung zum Superuser / Administrator mit dem Befehl:
[$] holger@linux:~> sudo su [sudo] Passwort für root:
und öffnen dann mit dem Joe-Editor die Datei 'fstab'
[#] linux:/home/holger # joe /etc/fstab
Hier die geöffnete Datei:
I /etc/fstab Row 12 Col 1 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 / btrfs defaults UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /var btrfs subvol=/@/var UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /usr/local btrfs subvol=/@/usr/local UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /srv btrfs subvol=/@/srv UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /root btrfs subvol=/@/root UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /opt btrfs subvol=/@/opt UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /home btrfs subvol=/@/home UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /.snapshots btrfs subvol=/@/.snapshots UUID=3ff503e4-c0b5-4aa5-b05f-1baae11a05cc swap swap defaults UUID=4D34-0A88 /boot/efi vfat utf8
Nun navigieren wir mit den Pfeilrichtungstasten ganz links, unterhalb des letzten Eintrages und fügen die UUID der NVMe ein (zuvor durch Markieren mit der Maus in den Zwischenspeicher und dann mittels mittlerem Mausklick an der gewünschten Stelle hineinkopieren). Nun sieht unsere Fstab-Datei folgendermaßen aus:
I /etc/fstab Row 12 Col 1 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 / btrfs defaults UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /var btrfs subvol=/@/var UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /usr/local btrfs subvol=/@/usr/local UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /srv btrfs subvol=/@/srv UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /root btrfs subvol=/@/root UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /opt btrfs subvol=/@/opt UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /home btrfs subvol=/@/home UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /.snapshots btrfs subvol=/@/.snapshots UUID=3ff503e4-c0b5-4aa5-b05f-1baae11a05cc swap swap defaults UUID=4D34-0A88 /boot/efi vfat utf8 UUID=fd5c4324-c81e-4a50-8cc4-3bff056a79dd
Aber halt, da fehlt ja noch was! Wir nehmen eine beliebige Bezeichnung für das /home, welches unter der NVMe genutzt werden soll, z.B. '/home.old', entscheiden uns für ein Dateisystem (in unserem Fall 'ext4' und stellen noch ein 'defaults' hintenan. Diese Daten werden ebenfalls in die nun unterste Zeile eingetragen. Das ist das Resultat:
I /etc/fstab Row 12 Col 1 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 / btrfs defaults UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /var btrfs subvol=/@/var UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /usr/local btrfs subvol=/@/usr/local UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /srv btrfs subvol=/@/srv UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /root btrfs subvol=/@/root UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /opt btrfs subvol=/@/opt UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /home btrfs subvol=/@/home UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /.snapshots btrfs subvol=/@/.snapshots UUID=3ff503e4-c0b5-4aa5-b05f-1baae11a05cc swap swap defaults UUID=4D34-0A88 /boot/efi vfat utf8 UUID=fd5c4324-c81e-4a50-8cc4-3bff056a79dd /home.old ext4 defaults
Speichern im Joe-Editor der Änderungen an der Fstab-Datei
Diese Änderungen müssen natürlich auch gespeichert werden. Das geschieht im Joe-Editor mit zwei Tastaturkürzeln, gefolgt von einer Bestätigung oder Verneinung; diese sind:
- Strg+K (Vorbereitung zum Verlassen des Editors)
- q (Quit, also 'Abschluß' / 'quittieren')
Nun erscheint ganz unten im Editor der Text
File /etc/fstab has been modified. Save it (y,n,^C)? und wir bestätigen entweder mit
- y für Ja, wenn wir die Änderung übernehmen wollen, oder
- n für Nein, wenn wir keine Änderungen übernehmen wollen.
Danach ist die Bearbeitung der Datei durch den Editor beendet und wir haben den Editor wieder verlassen, erkenntlich an folgendem Promt:
[#] linux:/home/holger #
Erstelle das Verzeichnis /home.old
Da wir ja nun in der Fstab die NVMe als /home.old eingetragen haben, müssen wir dieses Verzeichnis natürlich auch noch anlegen. Das geschieht mit dem Befehl (wir sind ja noch Administrator, benötigen also kein vorangestelltes 'sudo'):
[#] holger@linux: # mkdir home.old
'mkdir' steht für 'make directories', zu Deutsch: 'Erstelle Verzeichnisse / Ordner' ...
Die beiden Home-Verzeichnisse müssen neu eingebunden werden
Nun haben wir zwei Homeverzeichnisse; das standardmäßig, bei der Installation erstellte '/home', und das mit unserem Befehl 'mkdir' erstellte '/home.old'. Noch liegen die Daten unserer alten Installation auf der NVMe, die bislang als '/home.old' eingebunden ist. Das ändern wir nun, indem wir mit dem Joe-Editor (immer noch als Administrator) die Fstab-Datei erneut öffnen, wie oben unter dem Punkt 'Öffnen und Bearbeiten der Fstab-Datei (liegt im Verzeichnis /etc) mit dem Joe-Editor' schon erklärt, und nun beide Homeverzeichnisse umbenennen:
[#] holger@linux: # joe /etc/fstab
Hier wieder die Ausgabe des Joe-Editors mit der noch zu ändernden fstab:
I /etc/fstab Row 13 Col 1 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 / btrfs defaults 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /var btrfs subvol=/@/var 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /usr/local btrfs subvol=/@/usr/local 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /srv btrfs subvol=/@/srv 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /root btrfs subvol=/@/root 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /opt btrfs subvol=/@/opt 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /home btrfs subvol=/@/home 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /.snapshots btrfs subvol=/@/.snapshots 0 0 UUID=3ff503e4-c0b5-4aa5-b05f-1baae11a05cc swap swap defaults 0 0 UUID=4D34-0A88 /boot/efi vfat utf8 0 2 UUID=fd5c4324-c81e-4a50-8cc4-3bff056a79dd /home.old ext4 defaults 0 0
Und nun navigieren wir auf beide Homeverzeichnisse und änderen deren Namen (in diesem Fall ein Austausch der Bezeichnungen). Das sieht dann so aus:
I /etc/fstab Row 13 Col 1 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 / btrfs defaults 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /var btrfs subvol=/@/var 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /usr/local btrfs subvol=/@/usr/local 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /srv btrfs subvol=/@/srv 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /root btrfs subvol=/@/root 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /opt btrfs subvol=/@/opt 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /home.old btrfs subvol=/@/home 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/x86_64-efi btrfs subvol=/@/boot/grub2/x86_64-efi 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /boot/grub2/i386-pc btrfs subvol=/@/boot/grub2/i386-pc 0 0 UUID=339387e9-84da-4bbf-a079-c80d1c9c2676 /.snapshots btrfs subvol=/@/.snapshots 0 0 UUID=3ff503e4-c0b5-4aa5-b05f-1baae11a05cc swap swap defaults 0 0 UUID=4D34-0A88 /boot/efi vfat utf8 0 2 UUID=fd5c4324-c81e-4a50-8cc4-3bff056a79dd /home ext4 defaults 0 0
Wir speichern die Änderungen in der Fstab-Datei wie weiter oben unter dem Punkt 'Speichern im Joe-Editor der Änderungen an der Fstab-Datei' beschrieben Nun hat die NVMe-Platte die Zuweisung für das '/home' und wird künftig automatisch als das /home für den (oder die) angelegten Benutzer angesprochen. Somit habe ich auch wieder Zugriff auf die Daten meines alten Homeverzeichnisses von der Installation meines alten PC.