Festplattenverwirrung
veröffentlicht am 24.08.2018 mit 903 Worten - Lesezeit: 5 Minute(n) in * HARDWARE * LINUX *
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:
- eine selbst erstellte UUID, es gibt auch online-Tools
random
- setzt einen zufälligen UUIDtime
- setzt einen aus der aktuellen Uhrzeit generierten UUID
/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
weitere Artikel
- Netzwerkgeschwindigkeit zwischen Linux-Rechnern messen mit iperf
- Linux-Systemwartung: Wenn swap den Rechner ausbremst
- Fujitsu Lifebook E449 - Umrüstung Win 11 nach Debian 12
- Debian Versionsupdate: Bullseye nach Bookworm
- Personalausweis zur Identifizierung nutzen unter Linux