Hinweis: Ich schreibe diese Antwort, nachdem das OP Hilfe durch Kommentare, Versuche und Fehler erhalten hat. Im Hinblick auf andere Benutzer mache ich die Antwort breiter und wenig generischer.
Wenn diese beiden Festplatten zusammenarbeiten, könnten sie es sein
- gespiegelt im RAID1-Stil;
- oder verkettet, JBOD-Stil;
- oder gestreift im RAID0-Stil.
Die Fälle werden von den am einfachsten zu behandelnden Fällen geordnet. Ich werde Sie anweisen, wie Sie sie voneinander unterscheiden und wie Sie damit umgehen, um die Partitionen schließlich einzubauen.
Die Montage sollte zuerst erfolgen -o ro
, bis Sie sicher sind, dass Sie es richtig verstanden haben. In einigen Fällen mount
kann dies gelingen und Sie erhalten Zugriff auf die entschlüsselte Verzeichnisstruktur und / oder verschlüsselte Dateien. Wahnsinnige Daten und / oder Metadaten zeigen an, dass Sie es nicht richtig verstanden haben. Wenn Sie schreibgeschützt sind, stellen Sie sicher, dass die Bilder nicht beschädigt werden.
1. gespiegelt im RAID1-Stil
In diesem Fall sollten beide Festplatten die gleichen Daten enthalten, wenn sie fehlerfrei sind. Beide sollten dieselbe gültige Partitionstabelle enthalten. Nur das Bild, das Sie haben, /dev/loop2
meldet eine Partitionstabelle. Das kann daran liegen
- sie wurden überhaupt nicht gespiegelt,
- oder diese Fehler, die Sie auf den anderen Platten erwähnt haben, sind dort aufgetreten, wo sich die Partitionstabelle befindet (bei DOS-Partitionstabelle ist es MBR, dh ganz am Anfang, Sektornummer
0
).
Es gibt jedoch einen großen Hinweis darauf, dass RAID1 in Ihrem Fall kaum wahrscheinlich ist: fdisk
Es gibt genau 976773168
Sektoren auf einer einzelnen Festplatte, aber der letzte Sektor der vierten Partition ist 1953533951
. Dies ist fast doppelt so viel, da das Partitionslayout auf zwei nicht gespiegelten Festplatten erscheint.
Angenommen, Ihre Festplatten waren doppelt so groß und der oben genannte Hinweis traf nicht zu. Wenn Sie der Meinung sind, dass Sie mit gespiegelten Festplatten arbeiten können, arbeiten Sie mit dem fehlerfrei erhaltenen Bild, und lassen Sie das andere Bild in Ruhe. Versuchen Sie, die Partitionen wie folgt einzuhängen:
mount -o ro,offset=$((512*2048)) /dev/loop2 /mnt/partition1 mount -o ro,offset=$((512*31459328)) /dev/loop2 /mnt/partition2 mount -o ro,offset=$((512*31664128)) /dev/loop2 /mnt/partition3
usw. Sie können sogar nicht den Dateipfad verwenden losetup
, /dev/loop2
sondern direkt angeben, mount
sollten ein eigenes Loop-Gerät erstellen und dies ganz genau handhaben:
mount -o ro,offset=$((512*2048)) /path/to/the/image2.raw /mnt/partition1
2. verkettet im JBOD-Stil
Wenn Festplatten, die JBOD erstellen, MBR zum Speichern der Partitionstabelle verwenden, fdisk
wird sie nur auf der allerersten Festplatte gefunden. Andere Datenträger melden möglicherweise nichts oder einige verrückte Partitionstabellen. Die Wahrscheinlichkeit, eine Partitionstabelle zu erhalten, die von der ersten Platte als gesund erscheint, ist sehr gering, aber selbst dann bedeutet diese Partitionstabelle nichts.
Wenn JBOD-basierte Datenträger GPT zum Speichern der Partitionstabelle verwenden, finden Werkzeuge wie gdisk
die Primärtabelle auf der allerersten Platte, die Sekundärtabelle (Sicherungstabelle) auf der allerletzten.
Sie haben zwei Images, eines davon meldet eine DOS-Partitionstabelle (dh eine Partitionstabelle in MBR), das andere meldet keine Partitionstabelle. Wenn sie JBOD erstellen, wissen Sie, dass derjenige, der dazu gehört, /dev/loop2
zuerst geht.
In Ihrem Fall sind die Partitionen 1 und 2 klein genug, um vollständig in die erste Platte von JBOD zu passen. Sie können versuchen, sie mit einem entsprechenden Versatz von der Sohle zu montieren /dev/loop2
. Wenn Sie auf diese Weise auf normale Dateisysteme zugreifen können, wissen Sie, dass JBOD wahrscheinlich das richtige Setup ist. Um auf alle Partitionen zugreifen zu können, müssen Sie Images verketten.
Diese Antwort von mir bietet eine Möglichkeit, Bilder zu verketten, ohne das Ergebnis auf die Festplatte zu schreiben. In Ihrem Fall kann das Verfahren sein:
dmsetup create mydisk
- Art
0 976773168 linear /path/to/the/image2.raw 0
Enter - Art
976773168 976773168 linear /path/to/the/image1.raw 0
Enter - drücken Sie Ctrl+D
Das resultierende Gerät sollte sein /dev/mapper/mydisk
. Versuchen Sie, eine Partition mit der entsprechenden Partition einzuhängen offset=…
.
Um das Gerät zu zerstören, rufen Sie es auf dmsetup remove mydisk
.
3. gestreift im RAID0-Stil
Ähnlich wie bei JBOD wird die Partitionstabelle, wenn Festplatten mit RAID0 erstellt werden, mit MBR gespeichert, fdisk
nur auf der allerersten Festplatte gefunden. Andere Datenträger melden möglicherweise nichts oder einige verrückte Partitionstabellen. Die Wahrscheinlichkeit, eine Partitionstabelle zu erhalten, die von der ersten Platte als gesund erscheint, ist sehr gering, aber selbst dann bedeutet diese Partitionstabelle nichts.
Wenn Festplatten, die RAID0 erstellen, GPT zum Speichern der Partitionstabelle verwenden, wird die Situation kompliziert. Abhängig von der Größe der Stripe-Größe erhalten Sie möglicherweise die primäre Partitionstabelle von der ersten Festplatte, die sekundäre (Backup-) Partitionstabelle von der letzten Festplatte. Sie sollten einen veralteten MBR von der ersten Festplatte erhalten (sofern kein Lesefehler auftritt).
Sie haben zwei Images, eines davon meldet eine DOS-Partitionstabelle (dh eine Partitionstabelle in MBR), das andere meldet keine Partitionstabelle. Wenn sie RAID0 erstellen, wissen Sie, dass dasjenige, das entspricht, /dev/loop2
zuerst geht. Was Sie nicht wissen, ist die Streifengröße. Im Allgemeinen gibt es keine eindeutige Möglichkeit, dies zu erkennen, Sie sollten gemeinsame Werte ausprobieren und die Ergebnisse analysieren.
So verschachteln Sie Ihre Bilder und erstellen ein virtuelles Gerät:
dmsetup create mydisk
- Art
0 1953546336 striped 2 256 /dev/loop2 0 /dev/loop1 0
Enter - drücken Sie Ctrl+D
Das resultierende Gerät sollte sein /dev/mapper/mydisk
. Die Zahl 256 steht für die Streifengröße von 128 KiB und muss richtig geraten werden. Im Allgemeinen sollte unabhängig von möglichen Problemen mit GPT dmsetup
jetzt gdisk -l /dev/mapper/mydisk
eine gültige Partitionstabelle zurückgegeben werden, wenn Sie die Stripe-Größe richtig schätzen. Wenn Sie es falsch schätzen, ist die Partitionstabelle möglicherweise ungültig. Wenn es gültig aussieht, versuchen Sie, alle Partitionen mit entsprechenden offset=…
Werten bereitzustellen.
In Ihrem Fall wird die Partitionstabelle sicherlich diejenige sein, die Sie von bekommen haben /dev/loop2
.
Beachten Sie, dass Sie trotz falscher Vermutungen zwar mounten können, die Dateien jedoch verschlüsselt werden. In diesem Fall umount
rufen Sie den Wert anstelle von 256 auf dmsetup remove mydisk
und wiederholen Sie ihn dmsetup create…
mit einem anderen Wert. Zu versuchende Nummern: 8, 16, 32, 64, 128, 256, möglicherweise andere Potenzen von 2. Wenn möglich, lesen Sie Dateien mit überprüfbarem Inhalt (Medien wie MP3 spielen sie ohne Jitter?) oder formale Struktur (wie PDFs, öffnen sie sich ohne Fehler?), um zu sagen, ob Ihre Vermutung richtig ist. Dateien, die kleiner als die richtige Stripe-Größe sind, zeigen möglicherweise nicht an, dass Ihre Vermutung falsch ist. Sie sollten daher lieber eine Avi von 700 MB verwenden, nicht nur eine Textdatei mit wenigen KB.
Um das Gerät zu zerstören, rufen Sie es auf dmsetup remove mydisk
.