zur Startseite

Druckausgabe von https://privat.albicker.org
Iveco Daily 4x4, Hunde und multithematisches Blog - Bernhard Albicker

Festplattenverwirrung

veröffentlicht am 24.08.2018

Da hab ich also 2 Festplatten im Rechner. Eine war bisher im Einsatz: Betriebssystem, SWAP und Home-Laufwerk mit meinen ganzen Daten. Diese hab ich zunächst komplett kopiert, dann ein neues Betriebssystem aufgespielt und nun wollte ich von der ersten Platte auf die zweite zugreifen und ein paar neue Daten auf deren /home-Laufwerk kopieren. Ging nicht - das zweite /home-Laufwerk war nicht zu finden :(

Zwei Festplatten - die Vorgehensweise

Festplatten ausbauen und kopieren

Zunächst hab ich also beide Platten (identische 2TB-Modelle von WD) aus dem Rechner ausgebaut, in meine ICY-Box gesteckt und über Nacht mit der copy-Funktion den gesamten Platteninhalt, also die Boot-Partitionen, Betriebssystem, Auslagerungsspeicher, Swap und Home-Partition exakt kopiert. Die zweite Platte war also ein Spiegelbild der ersten.

Icy-Box zum rechnerunabhängigen Kopieren von Festplatten

Neues Betriebssystem auf Platte 2

Im zweiten Schritt habe ich dann auf meine kopierte Platte ein neues Betriebssystem aufgespielt. Dabei wurden die ersten 3 Partitionen neu formatiert:

Partitionen auf meiner Festplatte

Nach dem Neustart nach Abschluß der Installation startete das System ganz normal, und ich konnte auf alle meine Daten zugreifen. Soweit alles gut.

Probleme beim Betrieb beider Platten

Einbau der zweiten Platte, Auswahl des Betriebssystems

Nachdem das neue System also lief, hab ich den Rechner wieder heruntergefahren und die andere (erste, ursprüngliche Betriebs-)Platte wieder eingebaut.

Wenn man nun beim Systemstart ins UEFI wechselt, kann man dort die Boot-Reihenfolge ändern und so wahlweise ins alte oder neue System starten. Auch das funktionierte (abgesehen von einigen Ärgernissen, darüber später mehr).

Wo ist die zweite /home-Partition?

Wenn ich nun im 1. Betriebssystem im Dateimanager die vorhandenen Laufwerke anschaute, so konnte ich neben den eingebundenen Partitionen auf dieser Platte selbst die zusätzlichen “Laufwerke” der anderen Platte sehen, aber nur die 100MB-EFI-Partition und die 70GB-Root(Betriebssystems)Partition.
Die interessierten mich aber nicht wirklich, denn ich wollte ja sicherstellen, daß die beiden /home-Laufwerke dieselben Daten aufwiesen, also mußte ich das jeweils andere (“fremde”) /home-Verzeichnis einbinden können, um die Daten synchronisieren zu können.

Diese (andere /home-)Partition war aber nicht sichtbar.

Die UUID und das Clonen von Festplatten

UUID steht für Universally Unique Identifier und bezeichnet nach einem bestimmten Standard formatierte Identifikationsnummern.

Wird eine Partition auf einer Festplatte angelegt, so wird ihr eine solche UUID als Identifikationsnummer zugeordnet. Darüber greift das Betriebssystem, aber auch der Bootloader etc. auf die jeweiligen Dateisysteme zu, die UUID hat also die Funktion einer Adresse.

Im hier beschriebenen Fall wurden nun durch die Installation des neuen Betriebssystems die ersten 3 Partitionen auf der zweiten, also der kopierten, Platte neu angelegt (das Dateisystem neu erstellt) und formatiert, dadurch wurden diesen Partitionen neue UUIDs zugeteilt. In der Folge waren sie vom alten Betriebssystem aus als “weitere Datenträger” sichtbar.
Die /home-Partition hatte ich aber nicht angetastet, sondern nur ins neue System als /home-Partition eingebunden - deren UUID hat sich also nicht geändert.

Wenn nun beide Platten im Rechner aktiv sind, dann kennt jedes System sein /home-Laufwerk unter derselben Adresse - aber unter dieser Adresse (UUID) gibt es wiederum zwei physikalische Datenträger - das kann also nicht gut gehen.

UUID der /home-Partition auf der geclonten Platte ändern

Das Dateisystem auf meinen Linux-Partitionen ist EXT4. Um die UUID einer Partition zu ändern, ist der Befehl

sudo tune2fs -U NEUER_UUID /dev/sdaX

durchzuführen, dabei kann NEUER_UUID folgende Werte einnehmen:

/dev/sdaX habe ich hier zu /dev/sdb4 gesetzt, ich wollte ja die UUID der /home-Partition (4. Partition) der zweiten (neuen) Platte ändern.

Zum Abschluß mußte ich dann noch die Zuordnung der UUID zur /home-Partition auf der zweiten Platte in der Datei /etc/fstab anpassen … und dann hat alles funktioniert wie es sollte: ich konnte aus dem alten Betriebssystem auf die /home-Partition des neuen Betriebssystems auf der zweiten Platte zugreifen, Dateien vergleichen, anpassen etc.

Nützliche Befehle

Ein paar Basisinformationen über die Plattenaufteilung liefert der Befehl parted:

~ $ sudo parted -l
Modell: ATA WDC WD20EZRZ-00Z (scsi)
Festplatte  /dev/sda:  2000GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: gpt
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Dateisystem     Name                  Flags
 1      1049kB  106MB   105MB   fat32           EFI System Partition  boot, esp
 2      106MB   69,9GB  69,8GB  ext4
 3      69,9GB  87,1GB  17,2GB  linux-swap(v1)
 4      87,1GB  2000GB  1913GB  ext4

Um nun zu sehen, welche Platten und welche Partionen sich wie identifizieren, ist der Befehl fdisk ganz nützlich:

 ~ $ sudo fdisk /dev/sda

Willkomen bei fdisk (util-linux 2.27.1).
Änderungen werden im Speicher behalten, bis Sie sich entscheiden sie zu schreiben.
Nutzen sie den Schreibbefehl vorsichtig.

Befehl (m für Hilfe): p
Medium /dev/sda: 1,8 TiB, 2000398934016 Bytes, 3907029168 Sektoren
Einheiten: sectors von 1 * 512 = 512 Bytes
Sektorengröße (logisch/physisch): 512 Bytes / 4096 Bytes
I/O Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Typ der Medienbezeichnung: gpt
Medienkennung: DCEF5F53-7346-41BD-A8BB-8D191BEBBFF3

Gerät          Start       Ende   Sektoren Größe Typ
/dev/sda1       2048     206847     204800  100M EFI System
/dev/sda2     206848  136521727  136314880   65G Linux filesystem
/dev/sda3  136521728  170076159   33554432   16G Linux Swap
/dev/sda4  170076160 3907028991 3736952832  1,8T Linux filesystem

und davon ausgehend kann man dann Partition für Partition die Details ausgeben:

Befehl (m für Hilfe): i
Partitionsnummer (1-4, Vorgabe 4): 1

         Device: /dev/sda1
          Start: 2048
            End: 206847
        Sectors: 204800
           Size: 100M
           Type: EFI System
      Type-UUID: C12A7328-F81F-11D2-BA4B-00A0C93EC93B
           UUID: B93F87C1-F743-44F1-8E8A-5FABB3A9B69B
           Name: EFI System Partition

“Auf einen Schwung” lassen sich Partitionstypen und zugehörige UUIDs mittels lsblk ausgeben:

~ $ sudo lsblk -f
NAME   FSTYPE   LABEL UUID                                 MOUNTPOINT
sr0                                                        
loop2  squashfs                                            /snap/core/5145
loop0  squashfs                                            /snap/core/4917
sda                                                        
├─sda4 ext4           4d4aca0b-e659-4d1e-b5f2-58722822a2a7 /home
├─sda2 ext4           dfa4fbec-535e-457f-839d-e4ac6c8f01d9 /
├─sda3 swap           5947e1f2-24a8-430f-9d54-3e74e4cf515c [SWAP]
└─sda1 vfat           EDCA-1CFF                            /boot/efi