it-swarm.com.de

Mounten des VMDK-Image

Ich habe eine einzelne VMware-Image-Datei mit der Erweiterung VMDK

Ich versuche, dies zu mounten und alle Partitionen (einschließlich der versteckten) zu untersuchen.

Ich habe versucht, verschiedenen Anleitungen zu folgen, wie zum Beispiel: http://forums.opensuse.org/showthread.php/469942-mounting-virtual-box-machine-images-Host

Ich kann das Image mit vdfuse mounten

vdfuse -w -f windows.vmdk /mnt/

Danach kann ich sehen, eine Partition und eine ganze Festplatte ausgesetzt

# ll /mnt/
total 41942016
-r-------- 1 te users 21474836480 Feb 28 14:16 EntireDisk
-r-------- 1 te users  1569718272 Feb 28 14:16 Partition1

Ich fahre mit der Anleitung fort und versuche, entweder EntireDisk oder Partition1 zu mounten

mount -o loop,ro /mnt/Partition1 mnt2/

Aber das gibt mir den Fehler "mount: Sie müssen einen Dateisystemtyp angeben"

Bei dem Versuch, den richtigen Typ zu finden, habe ich es versucht

dd if=/mnt/EntireDisk | file -
which outputs a ton of information but of note is:
/dev/stdin: x86 boot sector; partition 1: ....... FATs ....

Also war ich müde, als Vfat aufzusteigen, aber das gab mir

mount: wrong fs type, bad option, bad superblock ...etc

Was mache ich falsch?

Für neuere Linux-Systeme gibt es den Befehl 'guestmount'. Nach der Installation können Sie den folgenden Befehl ausführen, um die dritte Partition in einem VMDK-Image bereitzustellen:

guestmount -a xyz.vmdk -m /dev/sda3 --ro /mnt/vmdk

Alternativ können Sie zum automatischen Erkennen und Bereitstellen eines Image (weniger zuverlässig) Folgendes versuchen:

guestmount -a xyz.vmdk -i --ro /mnt/vmdk

Beachten Sie, dass das Flag --ro das Bild einfach als schreibgeschützt einfügt. Um das Bild als Lese- und Schreibzugriff zu mounten, ersetzen Sie es einfach durch das Flag --rw.


guestmount ist in folgenden Paketen pro Distro enthalten:

  • Ubuntu: libguestfs-tools
  • OpenSuse: guestfs-tools
  • CentOS: libguestfs-tools-c
40
Thomas

Sie können auch qemu verwenden:

Für .vdi

Sudo modprobe nbd
Sudo qemu-nbd -c /dev/nbd1 ./linux_box/VM/image.vdi

wenn sie nicht installiert sind, können Sie sie installieren (auf Ubuntu ist dieser Befehl). 

Sudo apt install qemu-utils

und dann montieren 

mount /dev/nbd1p1 /mnt

Für .vmdk

Sudo modprobe nbd
Sudo qemu-nbd -r -c /dev/nbd1 ./linux_box/VM/image.vmdk

beachten Sie, dass ich die Option -r benutze, weil VMDK Version 3 nur lesbar sein muss , um von qemu eingehängt zu werden 

und dann montiere ich es 

mount /dev/nbd1p1 /mnt

Ich verwende nbd1, weil nbd0 manchmal 'mount: special device/dev/nbd0p1 nicht vorhanden' ergibt.

Für .ova

tar -tf image.ova
tar -xvf image.ova

Das obige wird die .vmdk-Diskette extrahieren und dann mounten.

3

Affuse installieren, dann einhängen.

affuse /path/file.vmdk /mnt/vmdk

Das Rohdatenträgerbild befindet sich jetzt unter /mnt/vmdk.Überprüfen Sie seine Sektorgröße

fdisk -l /mnt/vmdk/file.vmdk.raw

# example

Disk file.vmdk.raw: 20 GiB, 21474836480 bytes, 41943040 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
Disklabel type: dos
Disk identifier: 0x000da525

Device       Boot Start      End  Sectors Size Id Type
/mnt/vmdk/file.vmdk.raw1 *     2048 41943039 41940992  20G 83 Linux

Multiplizieren Sie die Sektorengröße und den Startsektor. Im Beispiel wäre es 2048 * 512

echo 2048*512 | bc
1048576

Mit diesem Versatz einhängen

mount -o ro,loop,offset=1048576 /mnt/vmdk/file.raw /mnt/vmdisk

Die Festplatte sollte jetzt gemountet und auf/mnt/vmdisk lesbar sein

2
MetalGodwin

Ich fand und antwortete von commandlinefu.com recht nett:

kpartx -av <image-flat.vmdk>; mount -o /dev/mapper/loop0p1 /mnt/vmdk

Sie können LVM-Volumes im Image auch durch Ausführen aktivieren

vgchange -a y

und dann können Sie die LV in das Image einbinden.

Um das Image aufzuheben, heben Sie die Partition/LV auf und deaktivieren Sie den VG für das Image

vgchange -a n <volume_group>

dann renne

kpartx -dv <image-flad.vmdk>

um die Partitionszuordnungen zu entfernen.

1
Ilya Bobyr

@Thomas post nicht kommentieren (38 Antworten wurden vergeben) Ich würde die nächste Person informieren, die möglicherweise den folgenden Fehlercode enthält, der von guestmount generiert wird, wenn qemu-img das Problem löst.

ERROR:  qemu-img: '' uses a vmdk feature which is not supported by this qemu version: VMDK version 

Versuchen Sie, eine Rohversion von .vmdk mit vmdkmount zu erstellen

# vmdkmount {file}.vmdk  /ur/mount/path

Innerhalb des gemounteten Verzeichnisses befindet sich eine vmdk1-Datei (Ihre Rohdatei).

Versuchen Sie nun, die vmdk mit guestmount zu laden

# guestmount -a vmdk1 -i --ro /ur/mount/path
0
ItsYou

Hast du das Softwarepaket für NTFS?

Versuchen

apt-get install ntfs-3g

auf Debian-basierten Systemen.

0
Jiang