Montar imágenes de disco VMWare en Linux

Montar imágenes de disco VMWare en Linux

¿Todavía es posible montar imágenes de disco VMWare en Linux?

Encontré los dos artículos siguientes y ambos recomiendan su uso kpartx -av diskimage-flat.vmdk. Sin embargo, ambos artículos son antiguos y, cuando lo pruebo en mi Ubuntu Utopic 14.10, ya no funciona.

$ sudo kpartx -av MyWin81.vmdk

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

Divulgación: Mi imagen de disco VMWare ES una imagen de disco plano. Además (antes de recomendar el montaje en bucle), es una imagen de disco de múltiples particiones, siendo la primera partición Windows8 y las dos siguientes en Linux. Son las siguientes dos particiones de Linux en las que estoy más interesado en trabajar.

¿Alguien puede confirmar por favor? Gracias.

Montar imágenes de disco planas VMWare en Linux http://cromoteca.com/es/blog/mountflatvmwarediskimagesunderlinux/

Montar un archivo de disco virtual VMware (.vmdk) en una máquina Linux http://www.commandlinefu.com/commands/view/12554/mount-a-vmware-virtual-disk-.vmdk-file-on-a-linux-box

ACTUALIZAR:

vmware-mountParece muy prometedor, pero todavía no puedo hacerlo 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, el segundo y tercer comando se ejecutan directamente como root, pero aparece "Permisos insuficientes para realizar esta operación"?

Respuesta1

También puedes usar qemu:

Para.vdi

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

si no están instalados, puedes instalarlos (en Ubuntu es este comando)

sudo apt install qemu-utils

y luego montarlo

mount /dev/nbd1p1 /mnt

Para.vmdk

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

Note que uso la opción -rporqueVMDK versión 3 debe ser de solo lecturapara poder ser montado por qemu

y luego lo monto

mount /dev/nbd1p1 /mnt

Lo uso nbd1porque nbd0a veces da 'montar: el dispositivo especial /dev/nbd0p1 no existe'

Para .ova

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

Lo anterior extraerá el .vmdkdisco y luego lo montará.

Mi configuración:

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

Respuesta2

En mi máquina los dispositivos de bucle están en formato /dev.Este artículomenciona /dev/wrapper y /dev, por lo que podría resultarle útil.

Por otro lado,este otro articuloutiliza el vmware-mountcomando para lograr lo mismo.

Nota: Mi sistema es Slackware64 (principalmente), pero con software principalmente basado en gtk.

Respuesta3

Instale affuse, luego monte el archivo con él:

affuse /path/file.vmdk /mnt/vmdk

Comprobar el tamaño del sector

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 el tamaño del sector y el sector inicial. En el ejemplo sería 2048*512

echo 2048*512 | bc
1048576

Montar usando ese desplazamiento

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

El disco ahora debería estar montado y legible en /mnt/vmdisk

información relacionada