Einbindung einer Partition

Aus lugvswiki
Zur Navigation springenZur Suche springen

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.