Monte imagens de disco VMWare no Linux

Monte imagens de disco VMWare no Linux

Ainda é possível montar imagens de disco VMWare no Linux?

Encontrei os dois artigos a seguir, ambos recomendam o uso de kpartx -av diskimage-flat.vmdk. Porém ambos os artigos são antigos e, quando tento no meu Ubuntu Utopic 14.10, não funciona mais.

$ sudo kpartx -av MyWin81.vmdk

$ sudo ls /dev/mapper/loop* | wc -l 
ls: cannot access /dev/mapper/loop*: No such file or directory
0

Divulgação: Minha imagem de disco VMWare É uma imagem de disco simples. Além disso (antes de recomendar a montagem em loop), é uma imagem de disco com várias partições, sendo a primeira partição Window8 e as próximas duas no Linux. São as próximas duas partições Linux nas quais estou mais interessado em trabalhar.

Alguém pode confirmar, por favor? Obrigado.

Montar imagens de disco VMWare planas no Linux http://cromoteca.com/en/blog/mountflatvmwarediskimagesunderlinux/

Monte um arquivo de disco virtual VMware (.vmdk) em uma caixa Linux http://www.commandlinefu.com/commands/view/12554/mount-a-vmware-virtual-disk-.vmdk-file-on-a-linux-box

ATUALIZAR:

vmware-mountparece muito promissor, mas ainda não consigo fazê-lo funcionar:

$ vmware-mount -p Win81.vmdk
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Nr      Start       Size Type Id Sytem                   
-- ---------- ---------- ---- -- ------------------------
 1       2048   78643200 BIOS  7 HPFS/NTFS
 2   78645248    6039552 BIOS 83 Linux
 3   84684800   41144320 BIOS 83 Linux

% vmware-mount Win81.vmdk 1 /mnt/tmp1/
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
Failed to mount partition 1 of disk 'Win81.vmdk' on '/mnt/tmp1/': Insufficient permissions to perform this operation

% vmware-mount -L
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
No mounted disks.

$ vmware-mount | head -3
VixDiskLib: Invalid configuration file parameter. Failed to read configuration file.
VMware DiskMount Utility version 6.0.0, build-2496824

Usage: vmware-mount diskPath [partition num] mountPoint

NB, o segundo e o terceiro comando são executados diretamente como root, mas recebo "Permissões insuficientes para realizar esta operação"?

Responder1

Você também pode usar qemu:

Para.vdi

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

se eles não estiverem instalados você pode instalá-los (no Ubuntu é este comando)

sudo apt install qemu-utils

e depois monte-o

mount /dev/nbd1p1 /mnt

Para.vmdk

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

observe que eu uso a opção -rporqueA versão 3 do VMDK deve ser somente leiturapara poder ser montado pelo qemu

e então eu monto

mount /dev/nbd1p1 /mnt

Eu uso nbd1porque nbd0as vezes dá 'mount: dispositivo especial /dev/nbd0p1 não existe'

Para .ova

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

O procedimento acima irá extrair o .vmdkdisco e montá-lo.

Minha configuração:

Ubuntu: 16.04.3 LTS 
Kernel: 4.4.0-112-generic  
Package: qemu-utils version: 1:2.5+dfsg-5ubuntu10.22 
Vmdk: 3 but should be any

Responder2

Na minha máquina, os dispositivos de loop estão no formato /dev.Este artigomenciona /dev/wrapper e /dev, então pode ser útil para você.

Por outro lado,este outro artigousa o vmware-mountcomando para fazer o mesmo.

Nota: Meu sistema é atual no Slackware64 (principalmente), mas principalmente com software baseado em gtk.

Responder3

Instale o affuse e monte o arquivo com ele:

affuse /path/file.vmdk /mnt/vmdk

Verifique o tamanho do setor

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

Multiplique o tamanho do setor e inicie o setor. Por exemplo seria 2048*512

echo 2048*512 | bc
1048576

Monte usando esse deslocamento

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

O disco agora deve estar montado e legível em /mnt/vmdisk

informação relacionada