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?
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:
Vous pouvez également utiliser qemu:
.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
.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'
tar -tf image.ova
tar -xvf image.ova
Ce qui précède va extraire le disque .vmdk
et ensuite le monter.
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
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.
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
Avez-vous le progiciel pour NTFS?
Essayer
apt-get install ntfs-3g
sur les systèmes basés sur debian.