Ich versuche, Partitionierungsinformationen wiederherzustellen mitTestDisk. Um dies auszuprobieren, kopierte ich alle Daten von der Originalfestplatte auf ein anderes physisches Laufwerk mitddwie folgt:
$ dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror,sync
Das Ausführen von TestDisk auf dem Originallaufwerk sieht folgendermaßen aus:
Disc /dev/sda - 500 GB / 465 GiB - CHS 969021 16 63
Warning: the current number of heads per cylinder is 16
but the correct value may be 255
You can use the Geometry menu to change this value.
It's something to try if
- some partitions are not found by TestDisk
- or the partition table can not be written because partitions overlaps.
Und nachdem Sie ohne Änderungen fortgefahren sind, gibt „Schnellanalyse“ Folgendes aus:
Disk /dev/sda - 500 GB / 465 GiB - CHS 969021 16 63
Partition Start End Size in sectors
* HPFS - NTFS 2 0 33 205 3 19 204800 [System-reserviert]
P HPFS - NTFS 205 3 20 203174 9 41 204593152 [W764]
P Linux 203176 10 11 305359 3 51 103000064
L Linux 313112 6 7 373707 2 50 61079552
HPFS - NTFS 373707 2 51 969022 15 47 600078336 [DATA]
HPFS - NTFS 373707 2 58 969020 15 63 600076329
Wenn ich die TestDisk-Schnellanalyse auf dem Testlaufwerk ausführe, wird Folgendes angezeigt:
Disk /dev/sdb - 500 GB / 465 GiB - CHS 969021 255 63
Partition Start End Size in sectors
HPFS - NTFS 0 32 33 12 223 19 204800 [System-reserviert]
HPFS - NTFS 12 223 20 12748 53 41 204593152 [W764]
Linux 12748 86 11 19159 202 51 103000064
Linux 19646 68 7 23448 74 50 61079552
HPFS - NTFS 23448 74 51 60801 112 47 600078336 [DATA]
Die Datenträger sind nicht von derselben Marke. Das Testlaufwerk ist eine SSD. Es scheint, als ob die Partitionierungsinformationen nicht auf das Testlaufwerk kopiert wurden. Warum?
Die Ausgabe vonsfdiskist für beide Scheiben gleich. Hier für /dev/sda
:
$ sudo sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors
/dev/sda1 : start=376696782, size=600076386, Id= 7, bootable
/dev/sda2 : start= 0, size= 0, Id= 0, bootable
/dev/sda3 : start= 0, size= 0, Id= 0, bootable
/dev/sda4 : start= 0, size= 0, Id= 0, bootable
Hier ist die Ausgabe vongetrenntDas Disc-Modell ist unterschiedlich, die anderen Daten sind jedoch gleich:
$ sudo parted /dev/sda print
Model: Disk Name (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File systems Flags
1 193GB 500GB 307GB primary ntfs boot
Die Geometrie (wie vom Kernel gesehen) für die S-ATA-Festplatte ...
$ sudo sfdisk -g /dev/sda
/dev/sda: 969021 cyclinders, 16 heads, 63 sectors/track
... und für die SSD-Platte
$ sudo sfdisk -g /dev/sdb
/dev/sdb: 60801 cyclinders, 255 heads, 63 sectors/track
Antwort1
Schließlich konnte ich die Ausgabe von TestDisk auf dem zweiten Laufwerk reproduzieren. Ich habe einfach die Geometrieeinstellungen auf die des Originallaufwerks geändert. Ich habe Folgendes getan:
Suchen Sie die Geometrieeinstellungen des Originallaufwerks:
$ sudo sfdisk -g /dev/sda
/dev/sda: 969021 cyclinders, 16 heads, 63 sectors/track
Öffnen Sie TestDisk, wählen Sie die „Testdisk“ aus und nehmen Sie im Geometry
Menü die oben genannten Einstellungen vor. Keine Angst – die Einstellungen sind nicht dauerhaft.
Wählen Sie dann Quick analyze
und das Ergebnis sollte dasselbe sein wie beim Originallaufwerk. Diesmal wurden die gewünschten Linux-Partitionen wie beim Originallaufwerk erkannt. Diesmal konnte ich die Partitionstabelle sicher schreiben, da nur die „Testdiskette“ angewendet wurde.
Weiterführende Literatur, sehr hilfreich:Wie mounte ich eine verschlüsselte Home-Partition?