web-dev-qa-db-fra.com

Montage de l'image disque VMDK

J'ai un seul fichier image de disque vmware avec l'extension vmdk

J'essaye de monter ceci et d'explorer toutes les partitions (y compris les cachées).

J'ai essayé de suivre plusieurs guides tels que: http://forums.opensuse.org/showthread.php/469942-mounting-virtual-box-machine-images-Host

Je suis capable de monter l'image en utilisant vdfuse

vdfuse -w -f windows.vmdk /mnt/

Après cela, je peux voir une partition et un disque entier exposé

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

En continuant avec le guide, j'essaie de monter soit WholeDisk, soit Partition1 en utilisant

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

Mais cela me donne l'erreur 'monter: vous devez spécifier un type de système de fichiers'

En essayant de trouver le bon type, j'ai essayé

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

Alors je me suis fatigué de monter comme vfat mais ça m’a donné

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

Qu'est-ce que je fais mal? 

17

Pour les systèmes Linux plus récents, il existe la commande 'guestmount'. Après avoir installé ceci, vous pouvez exécuter la commande suivante pour monter la troisième partition dans une image VMDK:

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

Sinon, pour détecter automatiquement et monter une image (moins fiable), vous pouvez essayer:

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

Notez que l'indicateur --ro monte simplement l'image en lecture seule; pour monter l’image en lecture-écriture, il suffit de la remplacer par le drapeau --rw.


guestmount est contenu dans les packages suivants par distribution:

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

Vous pouvez également utiliser qemu:

Pour .vdi

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

si ce n'est pas le cas, vous pouvez les installer (sur Ubuntu, c'est cette commande) 

Sudo apt install qemu-utils

puis montez-le 

mount /dev/nbd1p1 /mnt

Pour .vmdk

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

remarquez que j’utilise l’option -r car VMDK version 3 doit être en lecture seule pour pouvoir être monté par qemu 

et puis je le monte 

mount /dev/nbd1p1 /mnt

J'utilise nbd1 parce que nbd0 donne parfois 'mount: périphérique spécial/dev/nbd0p1 n'existe pas'

Pour .ova

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

Ce qui précède va extraire le disque .vmdk et ensuite le monter.

3
Eduard Florinescu

Installez affuse, puis montez en l’utilisant.

affuse /path/file.vmdk /mnt/vmdk

L'image disque brute se trouve maintenant sous /mnt/vmdk.Vérifiez sa taille de secteur

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

Multiplier sectorize et secteur de démarrage. Dans l'exemple, il s'agirait de 2048 * 512

echo 2048*512 | bc
1048576

Monter en utilisant ce décalage

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

Le disque doit maintenant être monté et lisible sur/mnt/vmdisk

2
MetalGodwin

J'ai trouvé et réponds depuis commandlinefu.com quite nice:

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

Vous pouvez également activer les volumes LVM dans l'image en exécutant

vgchange -a y

et ensuite vous pouvez monter le LV à l'intérieur de l'image.

Pour démonter l'image, démontez la partition/LV, désactivez le VG pour l'image

vgchange -a n <volume_group>

puis courir

kpartx -dv <image-flad.vmdk>

pour supprimer les mappages de partition.

1
Ilya Bobyr

Non autorisé à commenter sur @Thomas post (38 votes positifs) je voudrais informer la prochaine personne susceptible de rencontrer le code d'erreur suivant généré par guestmount lors de l'utilisation de qemu-img pour résoudre le problème.

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

Essayez de générer une version brute du fichier .vmdk à l'aide de vmdkmount

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

Dans le répertoire monté, il y a un fichier vmdk1 (votre fichier brut)

Maintenant, essayez de charger le vmdk en utilisant guestmount

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

Avez-vous le progiciel pour NTFS?

Essayer

apt-get install ntfs-3g

sur les systèmes basés sur debian.

0
Jiang