Ich habe ein Disk-Image, myimage.disk
das die Partitionstabelle und eine primäre Partition enthält (dh ein FAT32-Dateisystem). Denken Sie das als ein USB-Stiftbild.
Ich möchte die primäre Partition in ein lokales Verzeichnis laden. Ich weiß, wie man ein Partitions-Image mit den Loop-Utils mounten kann, aber hier habe ich ein Disk-Image. Ich vermute, dass ich das Image mounten muss, um die Partitionstabelle zu "überspringen", aber wie kann ich das tun?
linux
partitioning
mount
dd
Emiliano
quelle
quelle
losetup --partscan --find --show disk.img
gefolgt vonmount /dev/loop0p1 /mnt/disk
Antworten:
Das kpartx-Tool macht dies einfacher. Es erstellt Loop-Geräte in / dev / mapper für jede Partition in Ihrem Image. Dann können Sie das Loop-Gerät einbinden, das Ihrer gewünschten Partition entspricht, ohne den Offset manuell berechnen zu müssen.
So hängen Sie beispielsweise die erste Partition des Datenträgerabbilds ein:
Wenn Sie mit dem Image fertig sind, entfernen Sie die Loop-Geräte:
Wenn Sie alternativ einen aktuellen Kernel haben und loop.max_part = 63 beim Booten übergeben (wenn loop eingebaut ist) oder modprobe (wenn loop ein Modul ist), können Sie dies folgendermaßen tun:
Wenn Sie mit der Schleife fertig sind:
quelle
-o loop
Obige nicht, es/dev/mapper/loop0p1
ist bereits ein Block-Gerät (ein Mapper-Gerät über einem Loop-Gerät, Sie möchten keine weitere Schicht von Loop-Geräten darüber)./dev/loop0p1
nach dem Ausführen keine Partitionsgeräte ( usw.) erhaltenlosetup
, führen Sie auspartprobe /dev/loop0
.kpartx
scheint, die standardmäßig in Linux Mint 18 installiert werdenIch habe es gefunden:
http://www.andremiller.net/content/mounting-hard-disk-image-including-partitions-using-linux
Das scheint genau das zu sein, wonach ich gesucht habe.
Hier ist der Schlüsselteil:
Wobei der Wert von Offset in Bytes ist. Der vorgeschlagene Weg, um den Offset zu erhalten, ist,
parted
auf das Bild zu zeigen, dann die Einheit B für Bytes und den Startwert von der Druckausgabe zu nehmen. Angenommen, Sie haben Speicherplatz auf der Festplatte, dann tun Sie das Offensichtliche: Sobald Sie den Versatz und die Größe haben,dd
extrahieren Sie einfach jede Partition in eine separate Datei.quelle
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
wobei der Wert vonoffset
in Bytes ist. Der vorgeschlagene Weg, um den Offset zu erhalten, besteht darin, auf das Bild zu zeigen, dannunit
B
nach Bytes zu suchen und denstart
Wert aus derprint
Ausgabe zu übernehmen. Angenommen, Sie haben Speicherplatz auf der Festplatte, dann tun Sie das Offensichtliche: Sobald Sie den Versatz und die Größe haben,dd
extrahieren Sie einfach jede Partition in eine separate Datei.mount
Zeile, die dieoffset
Option enthält.quelle
Heutzutage können Sie Ihre Arbeit minimieren, indem Sie verwenden
udisks
. Lösung von ArchWiki: udisks - Mount-Loop-Geräte-r
gibt es nur zum lesen.quelle
udisksctl
.