Mounten des Disk-Images im Raw-Format


11

Beim Versuch, ein Disk-Image im Raw-Format (dd) mit dem folgenden Befehl bereitzustellen

mount  nps-2010-emails.dd /media/manu/

Ich erhalte die folgende Fehlermeldung

mount: you must specify the filesystem type

Ich weiß, dass -twir mit das Dateisystem angeben können, aber wie lautet die Terminologie für eine RAW (dd) -Datei, die als Argument an den Befehl mount übergeben werden kann. Wenn meine Methode zum Mounten dieses Dateisystems falsch ist, helfen Sie mir bitte dabei.

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

             Device Boot      Start         End      Blocks   Id  System
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 

Können Sie die Ausgabe des Befehls file -s nps-2010-emails.ddbitte Ihrem Beitrag hinzufügen ?
Steeldriver

Ich habe mir Ihr Profil angesehen und die andere Frage gesehen. Vielleicht könnte dieser Blog-Beitrag hilfreich sein.
Muru

@steeldriver Ausgang hinzugefügt ...
spaceman_spiff

Einfachere Optionen für die Montage - hier verfügbar / beschrieben: askubuntu.com/questions/69363/…
Hannu

Antworten:


16

Unter http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/ wird empfohlen , einen Offset zu verwenden. Erhalten Sie zuerst den Offset über fdisk(8)und geben Sie ihn dann mit der offsetOption an mount. Verwenden Sie fdiskdiese Option , um den Startsektor der Partition und die Sektorgröße zu bestimmen. Berechnen Sie dann den Offset in Bytes anhand der Startsektornummer und der Sektorgröße in Bytes. Ein Beispiel finden Sie unter Mounten einer einzelnen Partition vom Image der gesamten Festplatte (des Geräts) . Schließlich:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/

Auf einer typischen Festplatte werden die Zellen, die die Daten enthalten, gruppiert. Die Gruppierungen werden Sektoren genannt. So wie wir normalerweise Dinge partitionieren, werden die ersten Sektoren beiseite gelegt, um Informationen über die Partitionen zu geben, wodurch eine Lücke entsteht. Wenn wir also ein Image einer gesamten Festplatte haben, werden diese Sektoren ebenfalls eingeschlossen. Jetzt kann der mountBefehl nicht direkt beim ersten Byte starten, da die Partition nicht beim ersten Byte startet. Also müssen wir es sagenmountWie viele Bytes müssen übersprungen werden (damit die zusätzlichen Informationen vermieden werden) und zur eigentlichen Partition gelangen. Dies wird als Offset bezeichnet. Jetzt kann jeder Sektor eine bestimmte Menge an Informationen in Bytes speichern, die als Größe eines Sektors bezeichnet wird. Wir nehmen die Gesamtgröße der Informationen, die in dieser Lücke gespeichert werden können, indem wir die Größe eines Sektors mit der Größe der Lücke in der Anzahl der Sektoren multiplizieren.

An der Ausgabe von fdiskdort können Sie sehen, dass die Sektorgröße 512 Bytes beträgt und bei Sektor 1 beginnt. Der Offset beträgt also 1 * 512 = 512. Versuchen Sie den folgenden Befehl:

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/

Ich habe den Dateisystemtyp hinzugefügt, da fdisker als FAT32 angegeben wurde. Verwenden Sie -o offset=512,rwstattdessen, um es auch zum Schreiben bereitzustellen.


Ich habe den Artikel im ersten Link gelesen, den Sie gepostet haben, aber nicht viel über Offset , Sektornummer und andere Konzepte verstanden. Wenn möglich, können Sie dieses Thema näher erläutern oder einige Referenzen veröffentlichen, um dasselbe zu studieren. Vielen Dank
spaceman_spiff

Beitrag aktualisiert, um die Ausgabe von aufzunehmen fdisk -l nps-2010-emails.dd.
spaceman_spiff

Danke, mein Hintergrund war theoretische Informatik (ich bin ein Hauptfach Mathematik). Gibt es einen Hinweis, um dieses Thema allgemein zu verstehen?
spaceman_spiff

"Dieses" Thema sind Festplatten, Sektoren, Dateisysteme und all das? Vielleicht könnten Sie mit dem Kapitel E / A / Speicher eines Lehrbuchs für Betriebssysteme wie dem von Tannenbaum beginnen. Abgesehen von diesen Grundlagen und dem FAT32-Mount-Typ stammt alles, was ich in der Antwort gepostet habe, von tholinks.
Muru

10

Sie können den Computer auch automatisch alle Partitionen in einem Speicherauszug scannen lassen und alle Loop-Geräte automatisch vorbereiten, wie hier beschrieben .

Nehmen wir also an, Sie haben Ihr gesamtes /dev/sdain etwas namens geworfen sda.img. Sie können wie folgt auf die Partitionen zugreifen:

losetup -f -P sda.img

Auf meinem System wird es dann wie folgt angezeigt:

sda rohes Bild

In Nicht-GUI-Umgebungen können Sie das erstellte Gerät mit losetup -lauflisten, wobei der Name des Schleifengeräts angegeben wird. Beispiel:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0

Sie können dann beispielsweise die erste Partition mit folgenden Elementen bereitstellen:

mount /dev/loop0p1 /mnt/mypartition

Ich hoffe, das hilft.


Hat perfekt für mich funktioniert.
Praveen Pathak

2
In diesem Sinne hatte ich unter Ubuntu 18.04 keine Probleme damit, "gparted backup.img" auszuführen und eine Liste der Partitionen zu erhalten. "fdisk -l backup.img" zeigt auch nützliche Informationen.
RoundSparrow Hilltx

1
Wie macht man den losetupBefehl rückgängig ?
Flimm

1

Ich kann wegen mangelnder Reputation keinen Kommentar hinzufügen, möchte aber denjenigen von Ihnen, die über eine GPT-Festplatte verfügen, beim Testen mit fdisk mitteilen, dass Sie stattdessen gdsik verwenden, um den Startsektor zu erhalten und den richtigen Offset zu zählen. Es hat mir geholfen.

fdisk -l gab mir:

      Device Boot      Start         End      Blocks   Id  System
vm2080737.bak1   *           1        3901    31457279+  ee  GPT

und es konnte nicht mit 512 Offset mit dem Fehler 'mount: Sie müssen den Dateisystemtyp angeben' gemountet werden.

gdisk -l gab mir gutes Ergebnis:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34             545   256.0 KiB   A501  gpboot
   2             546          993825   485.0 MiB   A502  swap
   3          993826        62914526   29.5 GiB    A503  rootfs

1
Oder verwenden parted.
Muru
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.