Cómo abrir, montar y extraer datos de un archivo VMDK

Un archivo VMDK almacena el contenido del disco duro de una máquina virtual. Si una máquina virtual no se inicia debido a un daño en el sistema operativo, actualizaciones fallidas, malware o errores de configuración, es posible que aún puedas acceder a los datos que contiene su disco virtual.</p>
<p> Esta guía explica cómo abrir, montar y extraer datos de un archivo VMDK utilizando VMware Tools y métodos alternativos para Windows y Linux. Estos métodos te permiten acceder a los archivos sin necesidad de encender la máquina virtual. Ten en cuenta que los métodos descritos solo se aplican a archivos VMDK que no estén cifrados ni gravemente dañados.

NAKIVO para backup de VMware vSphere

NAKIVO para backup de VMware vSphere

Protección completa de los datos para máquinas virtuales de VMware vSphere y opciones de recuperación instantánea. Destinos de copia de seguridad seguros, tanto locales como externos y en la nube. Funciones antirransomware.

¿Qué es un archivo VMDK?

VMDK (Virtual Machine Disk) es un formato de archivo de disco virtual abierto desarrollado por VMware. Los archivos en este formato utilizan la extensión .vmdk y son compatibles con VMware y VirtualBox.

En los servidores VMware ESXi, un archivo VMDK suele almacenarse como dos archivos independientes en el almacén de datos: un pequeño archivo descriptor del disco virtual y un archivo de extensión del disco virtual que contenga los datos sin procesar del disco. El archivo descriptor suele seguir el patrón de nomenclatura diskname.vmdk, mientras que el archivo de extensión que contiene los datos reales se denomina diskname-flat.vmdk.

En VMware Workstation, un disco virtual suele almacenarse como un único archivo diskname.vmdk (formato monolítico disperso). En este caso, la información del descriptor está incrustada en el mismo archivo que almacena los datos del disco. El descriptor del disco virtual define la estructura del disco, su geometría, la versión del hardware virtual y los identificadores únicos.

Archivo descriptor de disco virtual

Un descriptor de disco virtual se almacena como texto sin formato. En la captura de pantalla siguiente, la parte izquierda muestra un archivo descriptor en formato ESXi (un archivo .vmdk que se puede abrir con cualquier editor de texto). A la derecha, se pueden ver los datos del descriptor incrustados en un único archivo .vmdk creado en el formato de VMware Workstation. En este caso, el archivo se abre en un editor HEX.

Comparing ESXi and Workstation descriptor files

Como se muestra, los datos del descriptor incrustados en un archivo monolítico en formato de estación de trabajo .vmdk comienzan en el desplazamiento 0x200 (dirección de byte). Al convertir 0x200 de hexadecimal a decimal se obtiene: 0x200 (HEX) = 512 (decimal). Esto significa que, para extraer el descriptor incrustado del archivo VMDK, debes copiar la parte de los datos que comienza desde el byte 512.

Nota: Puedes consultar la entrada del blog sobre la conversión Máquinas virtuales de VMware a máquinas virtuales de Hyper-V para obtener detalles sobre cómo extraer, editar e importar un descriptor de disco incrustado.

Archivo de datos de disco virtual

En la captura de pantalla siguiente, se muestran dos archivos de disco virtual abiertos en un editor HEX. En ambos discos está instalado el mismo sistema operativo, y la primera partición se creó y formateó utilizando una utilidad de disco integrada en Windows. En la parte izquierda de la captura de pantalla se muestra un archivo -flat.vmdk (formato ESXi). En este archivo, los datos sin procesar del disco comienzan en el desplazamiento 0x00000000.

En la parte derecha se muestra un VMDK en formato VMware Stationary Desktop. En este caso, los datos del disco comienzan en el desplazamiento 0x00150000 en lugar de en el inicio del archivo, ya que el descriptor y los metadatos se incluyen antes del contenido real del disco.

Storing data in flat vmdk files and sparse monolithic vmdk files

Antes de proceder a abrir y montar un archivo VMDK, asegúrate de tener un backup de tus datos para evitar posibles daños en el disco.

2 métodos para abrir archivos VMDK encendiendo una máquina virtual

Comencemos con los métodos para abrir un archivo VMDK encendiendo una máquina virtual. Estos métodos son sencillos y de amplia aplicación. Sin embargo, requieren que haya un hipervisor (VMware ESXi, VMware Workstation, VMware Player u Oracle VirtualBox) instalado en el sistema host.

Método 1: Utilizar un DVD de arranque aunque el sistema operativo de la máquina virtual no funcione

Este método parte de la base de que la máquina virtual aún puede iniciar desde un soporte externo. En lugar de un DVD físico, puedes montar una imagen ISO en la unidad de DVD virtual de la máquina virtual y iniciar desde ella.

Después de iniciar el sistema operativo desde el DVD «Live», puede montar las particiones del archivo VMDK y copiar los datos a una unidad USB conectada a la máquina virtual, al equipo host o a otro sistema a través de la red. Algunas distribuciones de DVD «Live» montan las particiones automáticamente.

Este enfoque es similar a la recuperación de archivos de un ordenador físico cuando el sistema operativo instalado no inicia. Se puede utilizar para extraer datos de archivos VMDK en VMware ESXi y VMware Workstation/Player.

Asegúrese de que el sistema operativo «Live» sea compatible con los sistemas de archivos utilizados en el disco virtual. Por ejemplo, Windows no es compatible de forma nativa con sistemas de archivos de Linux como EXT3, EXT4 o ReiserFS. Sin embargo, las distribuciones «Live» basadas en Linux suelen ser compatibles con sistemas de archivos de Windows como NTFS y FAT32, lo que las convierte en una opción práctica a la hora de recuperar datos de una máquina virtual con Windows que no se inicia.

Ejemplo: Abrir archivos VMDK en ESXi

Considera el siguiente escenario: una máquina virtual que ejecuta Windows Server 2016 en un Host ESXi no se inicia, pero necesitas recuperar los archivos almacenados en su archivo VMDK. El disco virtual contiene dos particiones NTFS: una partición del sistema (de arranque) y la unidad principal C:. En este ejemplo, se utiliza la imagen ISO oficial de instalación de Ubuntu 18 como DVD en vivo para acceder al disco virtual y copiar los datos necesarios.

Nota: Este mismo procedimiento se aplica a versiones más recientes de los productos, incluyendo VMware Workstation 17, ESXi 9.0, Windows Server 2025 y Ubuntu Linux 24.04. Aunque algunos elementos específicos de la interfaz pueden variar ligeramente, el flujo de trabajo subyacente sigue siendo el mismo.

  1. Sube la imagen ISO al almacén de datos al que tiene acceso el host ESXi de VMware que ejecuta la máquina virtual.
  2. Abre VMware vSphere Client, ve a «Hosts y clústeres», selecciona tu máquina virtual y haz clic en «Editar ajustes».Editing VM settings
  3. En la ventana de ajustes de la máquina virtual, ve a las opciones de la unidad de CD/DVD. Selecciona «Archivo ISO del almacén de datos» si tienes el archivo ISO necesario en el almacén de datos. A continuación, haz clic en «Explorar» y selecciona el archivo ISO adecuado. El nombre del archivo es ubuntu-18.04.1-desktop-amd64.iso en este caso.Inserting a bootable ISO image into a virtual optical drive
  4. Inicia la máquina virtual, arranca desde la imagen ISO y selecciona «Probar Ubuntu sin instalar». Una vez que Ubuntu haya iniciado desde el DVD en vivo, abre la consola (Terminal).
  5. Obtén los privilegios de root:
    sudo -i
  6. Muestra los dispositivos de disco duro disponibles:
    ls -al /dev/sd*

    Hay dos particiones: /dev/sda1 y /dev/sda2.

  7. Crea directorios para utilizarlos como puntos de montaje para cada partición:
    mkdir /mnt/win-disk1
    mkdir /mnt/win-disk2
  8. Monta las particiones del disco virtual en los directorios correspondientes:
    mount /dev/sda1 /mnt/win-disk1/
    mount /dev/sda2 /mnt/win-disk2/
  9. A continuación, muestra la lista de archivos y directorios de las particiones montadas:
    ls -al /mnt/win-disk2/
    ls -al /mnt/win-disk1/

    Accessing files stored inside the VMDK file

    Como se puede ver en la captura de pantalla anterior, la partición montada en /mnt/win-disk2 es la que se utiliza como disco C: en Windows.

    Puedes conectar un disco duro USB (HDD) al host ESXi y conectarlo a la máquina virtual mediante el paso a través de USB para copiar los archivos necesarios desde el VMDK montado. Como alternativa, puede utilizar un recurso compartido SMB (CIFS) y transferir los archivos a través de la red.

    En este ejemplo, los datos se copian a un recurso compartido SMB alojado en 192.168.17.125. La ruta del recurso compartido es \192.168.17.125share, y el usuario «user10» tiene permisos de escritura.

  10. Montemos el recurso compartido SMB (CIFS) en el sistema Linux cargado desde el DVD de arranque. En primer lugar, crea un directorio que se utilizará como punto de montaje.
    mkdir /mnt/smb-share
  11. A continuación, monta el recurso compartido SMB (CIFS) en este directorio:
    mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share
  12. Introduce la contraseña del usuario.
  13. Ahora, tu sistema Linux está conectado al recurso compartido SMB y puedes copiar el contenido necesario almacenado en el archivo VMDK al recurso compartido SMB a través de la red.

    Vayamos al directorio en el que está montado el recurso compartido SMB y copiemos el archivo bootmgr desde la partición montada del disco virtual (el archivo VMDK en el almacén de datos de ESXi) al directorio actual (recurso compartido SMB).

    cd /mnt/smb-share
    cp /mnt/win-disk-2/bootmgr

    Copying files from the mounted VMDK file

  14. Asegúrate de que se han copiado los archivos necesarios y comprueba el contenido de tu recurso compartido SMB.
    ls -al /mnt/smb-share

Como Como se muestra en la captura de pantalla anterior, el archivo «bootmgr» se ha copiado correctamente. Esto ilustra el primer método para copiar datos de un archivo VMDK cuando el sistema operativo de una máquina virtual no puede arrancar. Se puede utilizar el mismo procedimiento en VMware Player y VMware Workstation.

Método 2: Montar un archivo VMDK como disco virtual en una máquina virtual en buen estado (ESXi/Workstation/Player)

Este método es similar al anterior, pero en lugar de iniciar desde un soporte externo, se conecta el archivo VMDK a una máquina virtual existente que cuente con un sistema operativo operativo. El VMDK se puede añadir como disco virtual adicional a una máquina virtual que se ejecute en VMware ESXi, VMware Workstation o VMware Player.

Si necesita abrir un archivo VMDK desde una máquina virtual ESXi en VMware Workstation o Player, copie tanto el archivo descriptor como el de extensión (vmdk y -flat.vmdk) a un disco local accesible para el host ESXi en el que esté instalado Workstation o Player. Si la máquina virtual de origen tiene instantáneas, asegúrese de copiar también los archivos VMDK delta (de diferencia) asociados, además de los archivos del disco principal.

Los siguientes ejemplos ilustran este procedimiento:

  • Ejemplo 1: Abre un archivo VMDK de una máquina virtual conectándolo a otra máquina virtual en el mismo host ESXi de VMware.
  • Ejemplo 2: Extrae datos de un archivo VMDK de una máquina virtual de VMware conectándolo a una máquina virtual que se ejecute en una estación de trabajo de VMware.

Asegúrate de que el sistema operativo de la máquina virtual en buen estado sea compatible con los sistemas de archivos utilizados en el archivo VMDK conectado. De lo contrario, es posible que no se pueda acceder a las particiones.

Ejemplo 1: Montar un disco virtual en una máquina virtual que se ejecuta en ESXi

  1. Apague la máquina virtual cuyo disco virtual desee acceder para extraer archivos.
  2. Localice el disco virtual en el almacén de datos de ESXi.
  3. Copie el disco virtual a otro directorio del mismo almacén de datos o a un almacén de datos diferente para evitar problemas relacionados con el bloqueo del disco. En este ejemplo, abrimos un archivo VMDK denominado Win-test2.vmdk, que pertenece a la máquina virtual de Windows «Win-test2». El host ESXi se gestiona mediante vCenter. Si utiliza un host ESXi independiente sin VMware vCenter, el procedimiento es el mismo; solo difiere la interfaz de usuario.
  4. Abra VMware vSphere Client, vaya a «Almacenamiento» y seleccione el almacén de datos donde se encuentra el archivo VMDK requerido. Seleccione el archivo VMDK y haga clic en «Copiar a».

    Nota: Si utiliza un host ESXi de VMware sin vCenter, abra VMware Host Client introduciendo la dirección IP del host ESXi en un navegador web. A continuación, acceda a «Almacenamiento» > [Datastore Name] > «Explorador de almacenes de datos», seleccione el archivo VMDK y haga clic en «Copiar». Elija la ubicación de destino y confirme la operación.

    También puede copiar los archivos accediendo directamente a la consola de ESXi o conectándose a través de SSH.

    Copying virtual disk and descriptor vmdk files

  5. En la ventana que se abra, seleccione la ubicación de destino. Puede copiar el archivo VMDK a una ubicación dentro del mismo almacén de datos o a un almacén de datos diferente. En este ejemplo, el archivo se copia en el directorio raíz del mismo almacén de datos. Se copian tanto el .vmdk archivo descriptor como el -flat.vmdk archivo.Selecting destination
  6. Conecte el archivo VMDK a una máquina virtual en buen estado con un sistema operativo operativo. En este ejemplo, se utiliza una máquina virtual (WinServer2016) que ejecuta Windows Server 2016 en el mismo host ESXi. El disco virtual se puede conectar mientras la máquina virtual está en ejecución.

    En vSphere Client, vaya a «Hosts y clústeres», seleccione la máquina virtual en buen estado, haga clic con el botón derecho del ratón sobre ella y seleccione «Editar ajustes».

    Editing the settings of the healthy VM

  7. En la ventana que aparece, haga clic en «Añadir nuevo dispositivo» y seleccione «Disco duro existente».Adding a virtual disk to the healthy VM in vCenter
  8. Seleccione la copia del archivo VMDK que ha creado previamente. En el ejemplo actual, se seleccionó la copia de Win-test2.vmdk ubicada en el directorio raíz del almacén de datos.Attaching a virtual disk to the ESXi VM
  9. Encienda la máquina virtual en buen estado a la que se ha conectado el disco virtual, si aún no se está ejecutando. En este ejemplo, el disco virtual se añade mientras la máquina virtual de Windows Server 2016 está en ejecución (Adición en caliente).
  10. En el sistema operativo Windows invitado, vaya a «Administración de equipos» > «Administración de discos» (o ejecute diskmgmt.msc en la línea de comandos) y busque el disco virtual conectado. De forma predeterminada, el nuevo disco está desconectado. Haga clic con el botón derecho del ratón en el disco y seleccione «En línea». Se debería asignar automáticamente una letra de unidad a las particiones; si no es así, haga clic con el botón derecho del ratón en la partición y seleccione «Cambiar letra de unidad y rutas».A virtual disk is attached and a partition is mounted successfully

Ahora dispone de acceso completo de lectura y escritura a los archivos y directorios del archivo VMDK adjunto. Abra el disco montado en el Explorador de Windows y copie los datos necesarios.

También puede eliminar archivos innecesarios (por ejemplo, archivos relacionados con malware), pero proceda con cuidado. Si el archivo VMDK tiene instantáneas asociadas, modificar o eliminar datos puede afectar a la coherencia de las instantáneas.

Browse vmdk file contents in Windows Explorer

Ejemplo 2: Montar un disco virtual en una máquina virtual que se ejecuta en VMware Workstation o Player

Este ejemplo es similar al anterior, pero se utiliza una máquina virtual que se ejecuta en VMware Workstation para abrir el archivo VMDK de una máquina virtual de VMware. Este método resulta útil cuando no hay suficiente espacio libre en el almacén de datos de ESXi para crear una copia del disco virtual.

En este caso, el disco virtual de la máquina virtual Win-test2 mencionada anteriormente se monta en una máquina virtual de VMware Workstation para extraer sus datos.

  1. En VMware vSphere Client, ve a «Almacenamiento» > [Datastore name] > «Archivos», selecciona tu archivo VMDK y pulsa «Descargar».

    Como se ha mencionado anteriormente, un disco virtual de ESXi consta de un archivo descriptor (.vmdk) y un archivo de extensión (-flat.vmdk). Debes descargar ambos archivos al equipo en el que esté instalado VMware Workstation o VMware Player. Al descargar un disco virtual desde un almacén de datos de ESXi utilizando el vSphere Client HTML5, estos archivos se empaquetan automáticamente en un único archivo ZIP.

    Como alternativa, puede habilitar el acceso SSH en el host ESXi, navegar hasta el directorio del almacén de datos y copiar manualmente ambos archivos de disco a su ordenador utilizando un cliente SCP como WinSCP.

    Nota: Al descargar un con asignación dinámica disco virtual desde un almacén de datos VMFS, el archivo resultante -flat.vmdk se expandirá hasta su tamaño total asignado, de forma similar a un disco con asignación gruesa. Esto ocurre porque la asignación delgada se implementa a nivel de Sistema de archivos VMFS .

    Downloading vmdk and descriptor files

    Ahora puede ver los dos archivos de disco virtual de ESXi descargados como un archivo ZIP. El tamaño del disco con aprovisionamiento delgado en el almacén de datos VMFS es de aproximadamente 2 GB (véase la captura de pantalla anterior), mientras que el mismo disco descargado en la estación de trabajo ocupa aproximadamente 8 GB (véase la captura de pantalla siguiente).

  2. Extraiga los dos archivos del archivo comprimido. De forma predeterminada, se descomprimen en un directorio denominado Win-test2.vmdk, que coincide con el nombre del archivo comprimido sin la extensión.The downloaded zip archive
  3. Para este paso, necesitas una máquina virtual en buen estado con un sistema operativo operativo en un equipo en el que esté instalado VMware Workstation o VMware Player. En el ejemplo anterior se utilizó una máquina virtual con Windows Server 2016; en este ejemplo, se utiliza una máquina virtual con Windows Server 2008. El procedimiento es el mismo para las versiones más recientes de Windows.

    Abre VMware Workstation o VMware Player, selecciona tu máquina virtual en buen estado y edita los ajustes de la máquina virtual.

    Editing VM settings in VMware Workstation

  4. En la pestaña «Hardware», haz clic en el botón «Añadir».Adding a virtual disk
  5. En el asistente para añadir hardware, selecciona «Disco duro» como tipo de hardware. A continuación, selecciona el tipo de disco (puedes dejar el valor recomendado). En la pantalla «Seleccionar un disco», elige «Usar un disco virtual existente».Add hardware wizard
  6. Selecciona el archivo vmdk (no el de «flat.vmdk») que has extraído del archivo ZIP. Puedes explorar el archivo o introducir la ruta del archivo manualmente.Selecting the VMDK file

    En este ejemplo se utilizan ESXi 6.5 y VMware Workstation 15. La máquina virtual de VMware Workstation que ejecuta Windows Server 2008 utiliza la versión de hardware 12 (versión de máquina virtual 12), mientras que la máquina virtual de ESXi, a la que se está conectando el disco virtual, utiliza la versión de máquina virtual 7. El procedimiento es el mismo para versiones más recientes.

  7. Al intentar conectar el disco virtual en VMware Workstation, aparece el siguiente mensaje de error de compatibilidad:

    El disco virtual seleccionado es incompatible con esta máquina virtual de Workstation 12.x. Añadir este disco haría que esta máquina virtual fuera incompatible con productos VMware anteriores.

    A compatibility error message

    Puede solucionar este error editando el archivo descriptor del disco (el archivo vmdk ligero en el caso de los discos virtuales de máquinas virtuales ESXi). Abre tu archivo VMDK en el editor de texto y cambia el número de la cadena « Ddb.virtualHWVersion ». En nuestro caso, se cambia el 13 por un 12.

    Nota: Recuerda que, en el caso de las máquinas virtuales de VMware Workstation, el descriptor del disco virtual está integrado en el propio archivo VMDK (a diferencia de los discos virtuales de ESXi, que utilizan un archivo descriptor independiente).

    Editing a virtual disk descriptor file

    Después de editar el archivo, el disco virtual se añade correctamente a la máquina virtual existente.

  8. Enciende la máquina virtual.
  9. Abre «Administración de discos» en Windows, cambia el estado del disco virtual a «en línea», asigna una letra de unidad a una partición y explora los archivos.A vmdk virtual disk has been attached
Prueba NAKIVO Backup & Replication para VMware vSphere

Prueba NAKIVO Backup & Replication para VMware vSphere

Empieza tu prueba gratuita de 15 días para realizar backups incrementales de máquinas virtuales sin agente, con opciones de recuperación completa y granular instantánea, protección antirransomware y mucho más.

Cómo extraer datos de un archivo VMDK sin encender una máquina virtual

Los métodos que no requieren encender una máquina virtual ofrecen varias ventajas prácticas. En algunos casos, ni siquiera se necesita un hipervisor. En su lugar, puedes montar un archivo VMDK directamente en el sistema operativo del host y acceder rápidamente al contenido.

Método 1: Montar archivos VMDK en un sistema operativo anfitrión con VMware Workstation

Este método requiere que VMware Workstation esté instalado en un host Windows o Linux. VMware Workstation incluye una función que permite montar archivos VMDK directamente en el sistema operativo anfitrión. Se admiten discos en formato ESXi y discos delta asociados a instantáneas. Al igual que con los métodos anteriores, el sistema operativo anfitrión debe ser compatible con los sistemas de archivos utilizados en las particiones del disco virtual.

Cuando se crean instantáneas, se generan discos virtuales delta (de diferencia). Para acceder al estado de una máquina virtual en una instantánea específica, deben estar disponibles tanto el disco principal como los discos delta correspondientes. En este caso, debe montar el disco delta adecuado en el sistema operativo del host. Las dependencias del disco principal se resuelven automáticamente.

Si existen instantáneas pero desea montar el disco principal directamente, utilice el modo de solo lectura. La modificación de un disco principal puede dañar las instantáneas o los clones vinculados creados a partir de esa máquina virtual. El modo de solo lectura impide las operaciones de escritura después de que el disco esté montado. Solo puede montar el archivo VMDK después de que la máquina virtual que lo utiliza esté apagada o después de que ninguna máquina virtual esté utilizando activamente el disco.

El siguiente ejemplo muestra cómo montar un archivo VMDK de una máquina virtual de VMware que tiene instantáneas. En este escenario, Windows está instalado en una única partición NTFS. Después de la primera instantánea, se creó un archivo denominado Snapshot1.txt en el directorio raíz de la unidad C:. Después de la segunda instantánea, se creó Snapshot2.txt. El primer ejemplo utiliza Linux y el segundo, Windows. Se utilizan los archivos de disco virtual de una máquina virtual antigua con Windows XP, pero el mismo principio se aplica a otras versiones de Windows.

Ejemplo 1: Montar un VMDK en el host Linux

  1. Abre VMware Workstation para Linux y ve a Archivo > Montar discos virtuales.Opening VMware Workstation
  2. Haz clic en Montar disco. En la ventana emergente, haz clic en Explorar y selecciona el archivo VMDK.mount disk pop-up
  3. Selecciona el archivo VMDK del segundo disco delta (diferencial) creado después de la segunda instantánea de la máquina virtual. En estos casos, el nombre del archivo sigue el patrón VM_name-000002.vmdk (por ejemplo, WinXP-test-000002.vmdk).Selecting a vmdk file to mount
  4. Crea un directorio en el sistema de archivos de Linux para utilizarlo como punto de montaje del archivo VMDK. Creemos el directorio /mnt/vmdk/ en la consola de Linux.
    mkdir /mnt/vmdk/
  5. Establece los permisos adecuados para tu usuario (en este ejemplo, el nombre de usuario es user1, que pertenece al grupo group1):
    chown -R user1:group1 /mnt/vmdk/
    chmod -R 0775 /mnt/vmdk/
  6. Ahora, selecciona el directorio que has creado como directorio de destino, marca la casilla «Montar en modo de solo lectura» y haz clic en «Montar».Ready to mount a VMDK file
  7. Ahora puedes abrir el directorio /mnt/vmdk/ en tu explorador de archivos de Linux y explorar los archivos almacenados en el archivo VMDK montado. Se pueden ver los archivos «Snapshot1.txt» y «Snapshot2.txt», creados después de la primera y la segunda instantánea de este ejemplo. Cada archivo se encuentra en un disco VMDK delta independiente.Browse vmdk file contents in Linux
  8. No olvides desmontar el archivo VMDK del directorio (punto de montaje) en el host Linux una vez finalizadas las operaciones.Unmount the vmdk file

En este ejemplo, el archivo VMDK se montó y desmontó correctamente en Ubuntu 22.04 utilizando VMware Workstation 17.0.

Nota: Ubuntu 24.04 utiliza un kernel de Linux más reciente (6.8 o posterior), lo que puede afectar a la compatibilidad con los módulos de kernel propietarios de VMware. En algunos casos, es posible que aparezca el error: «VMware-fuseUI no responde».

Esto se debe a que el montaje de un archivo VMDK en Linux depende de un componente de VMware que se integra con la capa del sistema de archivos en el espacio de usuario (FUSE). Si el módulo FUSE necesario o el proceso auxiliar no se inicializan correctamente, la interfaz de montaje puede dejar de responder.

Si surgen problemas de compatibilidad, plantéate utilizar una versión del núcleo compatible o una versión anterior de VMware Workstation. Consulte la documentación oficial de VMware para conocer las actualizaciones relacionadas con la compatibilidad con el montaje de discos.

Si prefiere utilizar la interfaz de consola, puede montar un archivo VMDK con este comando:

vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk

Donde:

vm_name es el nombre de la máquina virtual (el mismo que el nombre del directorio de la máquina virtual). «WinXP-test» es el nombre de la máquina virtual en este ejemplo.

«vm_disk_name» es el nombre del disco virtual (WinXP-test.vmdk en este ejemplo).

vm_disk_name-000001.vmdk es el primer disco delta (de diferencia) creado después de la primera instantánea de la máquina virtual (WinXP-test-000001.vmdk).

vm_disk_name-000002.vmdk es el segundo disco delta creado después de realizar la segunda instantánea (WinXP-test-000002.vmdk).

  1. Monta el disco virtual. De forma predeterminada, el disco virtual se monta en modo de lectura/escritura. Puedes utilizar la opción -r en la línea de comandos para montar el disco en modo de solo lectura.
    vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk
  2. Mostrar todos los archivos VMDK montados:
    vmware-mount -L
  3. Antes de finalizar tu trabajo con los archivos VMDK montados, desmonta todos los discos virtuales:
    vmware-mount -x

Ejemplo 2: Cómo montar un archivo VMDK en un host Windows

El proceso para montar un archivo VMDK en Windows es similar. En VMware Workstation, puede utilizar Archivo > «Asignar discos virtuales» en la interfaz gráfica de usuario (GUI). Como alternativa, haga clic con el botón derecho del ratón sobre el archivo VMDK en el Explorador de Windows y seleccione «Asignar disco virtual» en el menú contextual.

En este ejemplo, se monta el archivo VMDK del primer disco delta (de diferencia) creado después de la primera instantánea. Dichos archivos siguen el patrón de nomenclatura VM_name-000001.vmdk ( WinXP-test-000001.vmdk en este ejemplo).

Nota: La función para montar discos virtuales como una unidad de disco en Windows se eliminó en VMware Workstation 17.0 para sistemas operativos Windows. La última versión de VMware Workstation para Windows que admite esta función es la 16.1.2. Esta función está disponible en la versión más reciente de VMware Workstation para Linux (17.5 y posteriores).

  1. Haz clic con el botón derecho del ratón sobre el archivo VMDK en el Explorador de Windows y selecciona «Asignar disco virtual».map a vmdk file in Windows with VMware Workstation
  2. Selecciona los parámetros adecuados para montar el archivo VMDK. Se recomienda abrir el disco en modo de solo lectura para evitar posibles daños en los discos virtuales de la cadena de instantáneas.

    De forma predeterminada, la letra de unidad es Z:, y el disco se puede abrir automáticamente en el Explorador de Windows después de la asignación si se marca la casilla correspondiente. Haz clic en «Aceptar» para continuar.

    open vmdk by mapping a virtual disk

  3. Ahora el disco virtual está montado como disco Z: en Windows y puede leer su contenido. En la captura de pantalla siguiente, puede ver el archivo Snapshot1.txt creado después de realizar la primera instantánea. El archivo Snapshot2.txt no aparece porque se creó después de la segunda instantánea, y el disco delta montado corresponde a la primera instantánea.Browse vmdk file contents on mapped Windows disk
  4. Cuando finalice de trabajar con el archivo VMDK asignado, no olvide desconectar el disco. Haz clic con el botón derecho del ratón en el archivo VMDK correspondiente y selecciona «Desconectar disco virtual». Después de desconectar el disco virtual, puedes encender la máquina virtual que lo utiliza.Disconnecting the virtual disk

Método 2: Uso de 7-Zip para extraer contenido de archivos VMDK

Si necesitas abrir un archivo VMDK sin ejecutar una máquina virtual, puedes utilizar 7-Zip para extraer datos de la imagen del disco virtual. 7-Zip es un programa gratuito de compresión de archivos que permite abrir y extraer contenido de diversos formatos de archivo e imágenes de disco. Se puede utilizar tanto en sistemas Windows como Linux.

7-Zip puede abrir archivos .vmdk y -flat.vmdk (incluido un archivo independiente -flat.vmdk si falta el archivo descriptor), lo que suele aplicarse a los discos en formato ESXi. Sin embargo, 7-Zip no admite la apertura de archivos VMDK delta (diferenciales) creados después de instantáneas de máquinas virtuales.

Cómo abrir archivos VMDK con 7-Zip en Linux

  1. Instala el paquete completo de 7-Zip en tu equipo Linux. En este ejemplo se utiliza Ubuntu.
    apt-get install p7zip-full
  2. Muestra el contenido del archivo VMDK con 7-Zip
    7z l vm_name.vmdk
  3. Busca los archivos que contengan «boot.» en sus nombres.
    7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]

    user1 es el nombre de este usuario de Linux, l – lista.

    Using 7-Zip as a vmdk extractor in Linux

  4. Extraigamos (e) el boot.ini archivo de la imagen VMDK:
    7z e /media/user1/vms/WinXP-test/WinXP-test.vmdk boot.ini

Puedes extraer otros archivos y directorios del archivo VMDK de forma similar.

Cómo abrir archivos VMDK con 7-Zip en Windows

  1. Descarga la versión compatible de 7-Zip desde página web oficial e instala la aplicación en tu equipo con Windows. Utiliza el instalador EXE para mayor comodidad.Opening a vmdk file with 7-Zip in Windows
  2. En la captura de pantalla que aparece a continuación, se muestra el contenido del archivo independiente Win-test2-flat.vmdk en la interfaz gráfica de 7-Zip. Puedes extraer el contenido del VMDK que necesites.Browse vmdk file contents in 7-Zip

También puedes ver este vídeo para aprender a abrir archivos VMDK en VMware y extraer datos de VMDK:

Cómo montar archivos VMDK en Linux (otros métodos)

Linux ofrece potentes herramientas de línea de comandos que te permiten realizar operaciones avanzadas con discos directamente desde la consola. Estas utilidades integradas se pueden utilizar para montar archivos VMDK y acceder a los datos almacenados en discos virtuales. Los ejemplos que se muestran a continuación utilizan Ubuntu Linux.

Método 1: Cómo montar archivos VMDK utilizando /dev/loop

Los dispositivos de bucle son pseudodispositivos en Linux que permiten acceder a los archivos como dispositivos de bloques. Se utilizan habitualmente para montar imágenes de disco que contengan sistemas de archivos. Los dispositivos de bucle se denominan /dev/loopX, donde X representa el número de dispositivo. Este método es adecuado para montar -flat.vmdk archivos, incluso cuando falta el archivo descriptor.

El siguiente ejemplo muestra cómo montar un archivo VMDK en Linux para acceder a su contenido. En este caso, se utiliza un disco virtual en formato ESXi con una única partición, y el archivo descriptor no está disponible. El disco contenía originalmente una instalación de Windows XP.

  1. Utiliza uno de los dos comandos siguientes para comprobar el número de dispositivos de bucle existentes en tu sistema Linux.
    fdisk -l | grep /dev/loop
    df -h | grep /dev/loop
  2. En este caso, ya existen dispositivos con los números del 1 al 21 (/dev/loop1/dev/loop21). Crea el dispositivo de bucle número 30, ya que está libre. Este dispositivo se puede asociar al archivo –flat.vmdk
    losetup /dev/loop30 /vms/Win-test2-flat.vmdk
  3. Establece el desplazamiento:
    losetup -o 32256 /dev/loop31 /dev/loop30

    En este caso, 32256 es el desplazamiento calculado como 63 × 512 para discos formateados en Windows XP, Windows Server 2003 y versiones anteriores. Aquí, 63 es el sector inicial de la partición y 512 bytes es el tamaño del sector. Para Windows 7, Windows Server 2008 y versiones posteriores, utilice un desplazamiento de 105906176.

    Puede obtener información sobre el tamaño del sector y el primer sector utilizado para el inicio con el comando:

    fdisk -l /dev/loop30 /vms/Win-test2-flat.vmdk

    mount vmdk files in Linux without having a hypervisor installed

    Como alternativa, para discos virtuales que contengan varias particiones, puede utilizar parted para determinar el inicio y el final de cada partición:

    parted /dev/loop30

    En la consola de parted, introduzca los siguientes comandos:

    unit
    B
    print

    Checking VMDK file information

  4. Cree el directorio que se utilizará como punto de montaje para la imagen VMDK:
    mkdir /mnt/vmdk-image
  5. Monte el dispositivo de bucle asociado a la imagen VMDK:
    mount /dev/loop31 /mnt/vmdk-image
  6. Muestre el contenido de la imagen montada:
    ls -al /mnt/vmdk-image
  7. Una vez hecho esto, desmonte la imagen VMDK y desconecte el dispositivo de bucle:
    umount /mnt/vmdk-image
    losetup -d /dev/loop31

    Using a loopback pseudo-device to mount a vmdk file

Método 2: Cómo montar archivos VMDK con kpartx

Kpartx es una herramienta que permite montar particiones dentro de archivos de imagen en los directorios de un sistema de archivos Linux real. Esta herramienta se puede utilizar para configurar asignaciones de dispositivos para particiones de dispositivos de bloques. Este método también permite montar —flat.vmdk — imágenes utilizadas en servidores ESXi.

  1. Instalar kpartx:
    apt-get install kpartx
  2. Añadir la asignación de particiones para la imagen VMDK en modo de funcionamiento detallado:
    kpartx -av /vms/Win-test2-flat.vmdk
  3. Montar la partición en el /mnt/vmdk-image directorio:
    mount /dev/mapper/loop30p1 /mnt/vmdk-image/

    Donde loop30 es el número del dispositivo de bucle y p1 es el número de la partición dentro de la imagen (la primera partición de la imagen de disco).

  4. Mostrar el contenido de la partición del disco virtual:
    ls -al /mnt/vmdk-image/

    Using kpartx to mount vmdk images in Linux

  5. Una vez hecho esto, desmontar la imagen de disco virtual VMDK.
    umount /mnt/vmdk-image
    kpartx -d /vms/Win-test2-flat.vmdk

Método 3: Uso del dispositivo de bloque de red (NBD) de QEMU

Este método utiliza la utilidad de QEMU para exponer el archivo VMDK como un dispositivo de bloque estándar /dev/nbdN, que el núcleo de Linux puede montar de forma nativa. No es necesario instalar VMware Workstation para utilizar este método. Se requieren permisos de root.

  1. Apaga la máquina virtual para evitar que se dañe el disco virtual.
  2. Instala el paquete de utilidades de QEMU, que incluye qemu-nbd.
    sudo apt install qemu-utils
  3. Carga el módulo del núcleo del dispositivo de bloque de red:
    sudo modprobe nbd
  4. Asigna el archivo VMDK al dispositivo de bloque de red; por ejemplo: /dev/nbd0. Utiliza el indicador -r para que sea de solo lectura.
    sudo qemu-nbd -r -c /dev/nbd0 /path/to/your/disk.vmdk

    En este ejemplo, el comando es:

    sudo qemu-nbd -r -c /dev/nbd0 /media/user1/data/vms/WinXP-test/WinXP-test.vmdk
  5. Identifica las particiones del disco virtual montado:
    sudo fdisk -l /dev/nbd0

    En la salida, deberías ver particiones como /dev/nbd0p1, /dev/nbd0p2, etc.

  6. Crea un punto de montaje:
    sudo mkdir -p /mnt/vmdk

    Establece los permisos para un usuario específico si es necesario.

  7. Monta la partición. En este ejemplo, la partición 1 contiene los datos:
    sudo mount /dev/nbd0p1 /mnt/vmdk

    mount VMDK in Linux using qemu-utils

  8. Ahora puedes acceder al contenido de tu VMDK en /mnt/vmdk/.
  9. Una vez hecho esto, desmonta el volumen y desconecta el dispositivo NBD:
    sudo umount /mnt/vmdk
    sudo qemu-nbd -d /dev/nbd0

Método 4: Uso de guestmount para montar archivos VMDK

guestmount es una herramienta fiable para acceder al contenido de los archivos VMDK en Linux, ya que gestiona de forma inteligente la estructura del disco, incluidas las particiones y los volúmenes lógicos. No requiere los cálculos manuales de desplazamiento que necesitan herramientas más antiguas, como /dev/loop. Debes tener permisos de root para utilizar este método.

  1. Instala libguestfs-tools. Este paquete contiene la utilidad guestmount.
    sudo apt install libguestfs-tools
  2. Apaga la máquina virtual cuyo disco virtual quieras montar.
  3. Crea un directorio en tu host Linux desde el que accederás al contenido del disco:
    mkdir /mnt/vmdk

    Nota: Si deseas acceder al contenido de los archivos VMDK como usuario normal, y no como usuario root, puedes realizar configuraciones adicionales.

    • Edita el archivo de configuración de FUSE. Abre el archivo /etc/fuse.conf con un editor de texto con privilegios de root:sudo nano /etc/fuse.conf
    • Descomenta la línea #user_allow_other para activarla en el archivo de configuración. Basta con eliminar el carácter # al principio de la línea.
    • Guarda los cambios y cierra el archivo (sal del editor de texto).
    • Si lo deseas, puedes añadir tu usuario habitual al grupo fuse:sudo usermod -aG fuse $USER
  4. Examina el VMDK. Antes de montar el archivo, resulta útil ver las particiones que contiene el VMDK. Utiliza la utilidad «virt-filesystems»:
    virt-filesystems -a /path/to/your/disk.vmdk

    En este caso:

    virt-filesystems -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk

    En el resultado, deberías ver las particiones (/dev/sda1, /dev/sda2, etc.) y sus sistemas de archivos.

  5. Monta el VMDK con «guestmount». Dispones de dos formas principales de utilizar «guestmount»: la inspección automatizada o el montaje manual de particiones. Vamos a utilizar el montaje manual de particiones (para particiones específicas)

    Si solo necesitas una única partición, puedes especificarla directamente:

    sudo guestmount -a /path/to/your/disk.vmdk -m /dev/sdaN --ro /mount_point/

    En nuestro ejemplo, el comando exacto es:

    sudo guestmount -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk -m /dev/sda1 --ro /mnt/vmdk/

    Si deseas acceder al contenido del archivo VMDK montado como usuario normal y acceder a los archivos desde la interfaz gráfica de usuario de Linux, utiliza el comando:

    sudo guestmount -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk -m /dev/sda1 --ro -o allow_other /mnt/vmdk/
  6. Ahora puedes ver, navegar y copiar archivos del VMDK como si se tratara de un directorio local en la consola de Linux:
    ls -al /mnt/vmdk
  7. Desmonta el disco virtual una vez que hayas terminado:
    sudo guestunmount /mnt/vmdk/

Puedes utilizar el método alternativo FUSE:

sudo fusermount -u /mnt/vmdk/

Conclusión

Saber cómo abrir y extraer datos de un archivo VMDK es esencial cuando una máquina virtual falla o deja de estar accesible. Conocer varios métodos para acceder al contenido de un VMDK ofrece flexibilidad, ya que cada enfoque puede ser más adecuado para situaciones específicas. Al mismo tiempo, hacer backups fiables de tus máquinas virtuales es igualmente importante para garantizar la disponibilidad de los datos y simplificar la recuperación.

Prueba NAKIVO Backup & Replication

Prueba NAKIVO Backup & Replication

Solicita una versión de prueba gratuita para descubrir todas las funciones de protección de datos de la solución. 15 días gratis. Sin limitaciones de funciones ni de capacidad. No es necesario facilitar un número de tarjeta de crédito.

Artículos recomendados