Cómo Abrir Archivos VMDK en VMware y Extraer Datos
Entender cómo abrir archivos VMDK y extraer contenido de archivos VMDK es útil cuando se encuentra un problema con una máquina virtual. Es posible que las máquinas virtuales no puedan iniciarse tras problemas con la instalación de aplicaciones, actualizaciones del sistema operativo, ataques de malware, eliminación accidental de datos, etc. Cuando esto ocurre, se pierde el acceso al disco virtual de la máquina virtual.
Por suerte, puedes abrir archivos VMDK con WinZip, Linux Reader o VMware Workstation Player. Siga leyendo para conocer los métodos para recuperar el contenido de los archivos de disco virtual VMDK. Tenga en cuenta que estos métodos sólo se aplican si el disco virtual no está cifrado ni dañado.
¿Qué es un archivo VMDK?
VMDK es un formato de archivo de disco de máquina virtual, que es el formato abierto desarrollado por VMware. Este formato de disco virtual tiene la extensión.vmdk para los archivos y es utilizado por VMware y VirtualBox máquinas virtuales. Sin embargo, las máquinas virtuales que residen en servidores ESXi utilizan un formato ligeramente diferente de discos virtuales vmdk. En el almacén de datos ESXi, el descriptor del disco virtual y la extensión del disco virtual que contiene los datos sin procesar del disco virtual son dos archivos distintos.
El patrón del nombre del descriptor del disco virtual es diskname.vmdk y el patrón del nombre de la extensión del disco virtual que contiene todos los datos sin procesar es diskname-flat.vmdk. En cuanto a los discos virtuales del formato VMware Workstation, se representan como un único archivo diskname.vmdk (monolítico disperso), que es un archivo de datos de extensión que contiene un descriptor de disco virtual incrustado. Un descriptor de disco virtual define la estructura del disco virtual, la geometría del disco virtual, la versión del hardware virtual y los ID.
Fichero descriptor de disco virtual
Un descriptor de disco virtual se representa como texto sin formato. En la parte izquierda de la siguiente captura de pantalla, puede ver un descriptor de disco virtual del formato ESXi (un archivo vmdk que puede abrirse con cualquier editor de texto). En la parte derecha de la captura de pantalla, puede ver los datos del descriptor de disco virtual que está incrustado en un único archivo vmdk del formato VMware Workstation. El archivo vmdk puede abrirse en un editor HEX.
Como puede verse, los datos del descriptor de disco incrustado se escriben en el archivo vmdk monolítico del formato estación de trabajo a partir de la dirección 0x200, que es el número del primer byte. Si transformas el valor 200 HEX a formato binario y decimal, obtendrás:
200 HEX = 1000000000 Binario = 512 Decimal
Esto significa que si quieres extraer el descriptor incrustado del fichero vmdk, deberás extraer una porción de datos empezando por el byte 512. Puede encontrar más información sobre los archivos descriptores de disco virtual VMware y aprender a extraer, editar e importar un descriptor de disco virtual incrustado en la entrada del blog sobre la conversión de VMs VMware a VMs Hyper-V.
Fichero de datos del disco virtual
En la siguiente captura de pantalla, se abren dos archivos de disco virtual en un editor HEX. En ambos discos virtuales se instala el mismo sistema operativo (la primera partición utilizada para instalar el SO se creó y formateó con una utilidad de disco integrada de Windows). En la parte izquierda de la captura de pantalla se muestra un archivo -flat.vmdk (formato ESXi). Los datos en bruto se escriben desde 0x00000000 en este archivo -flat.vmdk del disco virtual. En la parte derecha de la captura de pantalla, se muestra el disco virtual del formato estación de trabajo, y los mismos datos se escriben a partir de 0x00150000 (número de byte 5376), que no es el principio del archivo vmdk.
Ahora, después de familiarizarse con la teoría, es el momento de la parte práctica. Bentes de continuar, se recomienda hacer backups de los datos para evitar posibles daños en el disco virtual. Realice las operaciones con sus discos bajo su responsabilidad y riesgo.
2 Métodos para Abrir Archivos VMDK Encendiendo una VM
Para abrir archivos VMDK encendiendo máquinas virtuales existentes, necesita tener instalado en su ordenador físico un hipervisor como VMware ESXi, VMware Workstation, VMware Player u Oracle VirtualBox. Puede optar por el método heredado utilizando un DVD activo o montando el archivo VMDK como disco virtual.
Método 1: Usar un Live DVD aunque el SO de la máquina virtual esté muerto
La idea detrás de este método es que usted tiene una máquina virtual y puede arrancar desde un disco DVD. La imagen de disco ISO puede utilizarse como disco DVD insertado en la unidad de DVD virtual de la máquina virtual. Después de arrancar el sistema operativo desde un soporte DVD, puede montar las particiones de su disco virtual y copiar archivos desde el disco virtual a un disco duro USB conectado a la VM o a su máquina anfitriona, o a cualquier otra máquina a través de la red. Algunas distribuciones de Live DVD montan discos (particiones) automáticamente.
Se trata de un método heredado porque el principio es similar al de copiar archivos de discos físicos de ordenadores físicos cuando el sistema operativo instalado no puede arrancar. Este método se puede utilizar para extraer datos de discos VMDK de máquinas virtuales que se ejecutan en VMware ESXi y VMware Player/Workstation.
Tenga en cuenta que el sistema operativo arrancado desde Live DVD debe reconocer los sistemas de archivos de las particiones de su disco virtual a cuyos archivos desea acceder. Por ejemplo, Windows no puede trabajar por defecto con sistemas de archivos Linux como EXT3, EXT4, ReiserFS, etc. El uso de herramientas adicionales en Windows puede ayudar a resolver este problema. A su vez, los Linux modernos reconocen los sistemas de archivos de Windows, como NTFS y FAT32, y por eso puedes utilizar discos Live DVD basados en Linux para copiar archivos almacenados en discos virtuales utilizados por tu máquina virtual Windows que no puede arrancar.
Ejemplo: Abrir archivos VMDK en ESXi
Veamos un ejemplo para aplicar este método: tienes una VM con Windows Server 2016 en un host ESXi, y el SO de la VM no puede arrancar, pero necesitas obtener los archivos grabados en el disco virtual VMDK. Hay dos particiones NTFS en el disco virtual: la partición del sistema de arranque y el disco C. En este ejemplo se utiliza la imagen ISO oficial de instalación de Ubuntu 18. El medio de instalación de Ubuntu se puede utilizar como Live DVD.
NOTA: El flujo de trabajo para las versiones más recientes de los productos considerados en esta entrada del blog es el mismo. Puede utilizar VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04, etc., y utilizar el principio de funcionamiento explicado en este artículo.
- Cargue la imagen ISO en el almacén de datos accesible para el host ESXi en el que reside la máquina virtual.
- Abra VMware vSphere Client, vaya a Hosts y Clusters, seleccione su VM y haga clic en Editar ajustes.
- En la ventana de ajustes de la máquina virtual, vaya a las opciones de la unidad de CD/DVD. Seleccione la opción Archivo ISO de almacén de datos si dispone del archivo ISO necesario en el almacén de datos accesible por el host ESXi. A continuación, para la opción CD/DVD Media, haga clic en Browse y seleccione el archivo ISO apropiado en el almacén de datos. En este caso, el nombre del archivo es ubuntu-18.04.1-desktop-amd64.iso.
- Inicie la máquina virtual, arranque desde la imagen ISO y seleccione Probar Ubuntu sin instalar. Una vez que Ubuntu haya arrancado desde el DVD Live, abra la consola (Terminal).
- Consigue los privilegios de root:
sudo -i
- Enumera los dispositivos de disco duro disponibles:
ls -al /dev/sd*
Hay dos particiones – /dev/sda1 y /dev/sda2
- Crear directorios que se utilizarán como puntos de montaje para cada partición:
mkdir /mnt/win-disk1
mkdir /mnt/win-disk2
- Monte las particiones del disco virtual en los directorios correspondientes:
mount /dev/sda1 /mnt/win-disk1/
mount /dev/sda2 /mnt/win-disk2/
- A continuación, enumere los archivos y directorios de las particiones montadas:
ls -al /mnt/win-disk2/
ls -al /mnt/win-disk1/
Como puede verse en la captura de pantalla anterior, la partición montada en /mnt/win-disk2 es la partición utilizada como disco C: en Windows.
- Ahora puede conectar un disco duro (HDD) USB al puerto USB de su host ESXi y conectar este HDD a la máquina virtual con la función pass-through USB . De esta forma podrá copiar los archivos necesarios almacenados en el archivo VMDK utilizado como disco virtual por la máquina virtual. Otra forma es utilizar un recurso compartido SMB (CIFS) y copiar el contenido del disco virtual (es decir, el archivo VMDK) a otra ubicación a través de la red.
En este ejemplo, explicamos la copia de datos en un recurso compartido SMB . El recurso compartido SMB se ha creado en el host cuya dirección IP es 192.168.17.125, el nombre del recurso compartido es \\192 .168.17.125\share, y user10 tiene permisos de escritura para este recurso compartido. No olvide que Linux, a diferencia de Windows, utiliza la barra oblicua derecha cuando se conecta al recurso compartido.
Vamos a montar el recurso compartido SMB (CIFS) en Linux cargado desde el DVD en vivo. En primer lugar, cree un directorio que se utilizará como punto de montaje.
mkdir /mnt/smb-share
- A continuación, monte el recurso compartido SMB (CIFS) en este directorio:
mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share
- Introduzca la contraseña del usuario.
- Ahora, su sistema Linux está conectado al recurso compartido SMB , y puede copiar el contenido almacenado dentro del 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 de la partición montada del disco virtual (el archivo VMDK del almacén de datos ESXi) en el directorio actual (recurso compartido SMB).
cd /mnt/smb-share
cp /mnt/win-disk-2/bootmgr
- A continuación, asegúrese de que se han copiado los archivos necesarios y compruebe el contenido de su recurso compartido SMB .
ls -al /mnt/smb-share
Como puede ver en la captura de pantalla anterior, el archivo bootmgr utilizado en este ejemplo se ha copiado correctamente. Ahora ya conoce el primer método para copiar el contenido del archivo VMDK a otra ubicación cuando un sistema operativo instalado en una VM no puede arrancar. La lógica de utilizar este método en VMware Player o VMware Workstation es la misma.
Método 2: Montar un archivo VMDK como disco virtual en una máquina virtual sana (ESXi/Workstation/Player)
Este método es similar al anterior, pero en este caso, el disco virtual VMDK debe adjuntarse a una máquina virtual existente que tenga un sistema operativo en funcionamiento. Puede adjuntar un archivo VMDK como disco virtual adicional a una VM existente que se ejecute en un host ESXi, VMware Workstation y VMware Player.
Si desea abrir un archivo VMDK de la VM ESXi en VMware Workstation o Player, debe copiar tanto el disco virtual como su descriptor (archivos vmdk y -flat.vmdk) a un disco físico que sea accesible para su computadora donde está instalado VMware Workstation o Player. Si se han realizado instantáneas de la máquina virtual y posteriormente se han realizado cambios en los discos de la máquina virtual, no olvide copiar los archivos VMDK de los discos virtuales delta (de diferenciación) además de los archivos VMDK principales.
Veamos dos ejemplos:
Ejemplo 1: cómo abrir un disco virtual VMDK de una VM utilizando otra VM en un host ESXi (ambas están registradas en un host ESXi)
Ejemplo 2: cómo extraer contenido de un disco virtual VMDK de una VM ESXi adjuntando el disco virtual a una VM del formato VMware Workstation
Tenga en cuenta que el sistema operativo en funcionamiento en la primera VM (sana) debe ser compatible con los sistemas de archivos utilizados en el disco virtual de la segunda VM que tiene un sistema operativo no arrancable (una VM cuyo archivo VMDK desea adjuntar como disco virtual adicional para extraer archivos).
Ejemplo 1: Montaje de un disco virtual en una máquina virtual que se ejecuta en ESXi
- Apague la máquina virtual que utiliza un disco virtual del que desea extraer archivos.
- Busque este disco virtual en el almacén de datos ESXi.
- Copie el disco virtual en otro directorio del mismo almacén de datos o en otro almacén de datos para evitar un error causado por el bloqueo del disco virtual. En nuestro ejemplo, mostraremos cómo abrir un archivo VMDK cuyo nombre es Win-test2.vmdk (en nuestro caso, se trata de un disco virtual de la máquina virtual Windows Win-test2 ). El host ESXi es gestionado por vCenter. Si utiliza un host ESXi independiente sin vCenter, puede utilizar la lógica explicada en este ejemplo – las diferencias son sólo en la interfaz de usuario.
- Abra VMware vSphere Client, vaya a Almacenamiento y seleccione el almacén de datos en el que se encuentra el archivo VMDK necesario. Seleccione el archivo VMDK y haga clic en Copiar a.
NOTA: Si tiene un host ESXi independiente y no dispone de vCenter, abra VMware Host Client introduciendo la dirección IP de su host ESXi en el navegador web, vaya a Storage > [Your datastore name] > Datastore Browser, seleccione su archivo VMDK y pulse Copy. Seleccione el destino y pulse el botón Copiar para confirmar. Recuerda que los discos virtuales se muestran como archivos VMDK en la interfaz web de VMware vSphere Client y VMware Host Client, pero un disco virtual consta de los archivos -flat.vmdk y vmdk (un disco virtual y su descriptor). También puede abrir la consola ESXi directamente en el servidor o conectándose a través de SSH para copiar los archivos.
- En la ventana abierta, seleccione el destino. Puede copiar el archivo VMDK en alguna ubicación del mismo almacén de datos o en otro almacén de datos. Copiemos el archivo VMDK en el directorio raíz del mismo almacén de datos para esta demostración. En este caso se copian los archivos vmdk y -flat.vmdk.
- Ahora debe conectar el disco virtual VMDK a otra máquina virtual sana cuyo sistema operativo funcione correctamente. En este ejemplo, se utiliza una VM que ejecuta Windows Server 2016 en el mismo host ESXi (el nombre de la VM es WinServer2016). Se puede conectar un disco virtual a esta VM sana mientras la VM está funcionando. En vSphere Client, vaya a Hosts and Clusters, seleccione la VM sana, haga clic con el botón derecho en la VM y haga clic en Edit Settings.
- En la ventana que aparece, pulse Añadir Nuevo Dispositivo y seleccione Disco Duro Existente.
- Seleccione la copia de su archivo VMDK que ha realizado previamente. En el ejemplo actual, se ha seleccionado la copia de Win-test2.vmdk ubicada en el directorio raíz del almacén de datos.
- Encienda la máquina virtual en buen estado a la que ha conectado el disco virtual que le interesa, si la máquina virtual aún no se ha encendido. Se añade un disco virtual sobre la marcha para una máquina virtual Windows Server 2016 en ejecución.
- En el sistema operativo invitado Windows, vaya a Computer Management > Disk Management (o ejecute diskmgmt.msc en la línea de comandos) y busque su disco virtual adjunto. Por defecto, el nuevo disco conectado está desconectado. Haz clic con el botón derecho en el disco y pulsa Online. Se debería asignar automáticamente una letra de disco para las particiones del disco añadido. Si no se ha asignado una letra de disco para una partición, haga clic con el botón derecho en la partición y haga clic en Change Drive Letter and Paths.
- Ahora tiene acceso completo (lectura/escritura) a los archivos y directorios del disco virtual VMDK. Basta con abrir el disco montado en el Explorador de Windows y copiar el contenido necesario del archivo VMDK montado en la VM sana. También puede eliminar datos innecesarios del disco virtual VMDK montado (por ejemplo, si hay archivos creados por virus), pero tenga cuidado y no dañe un disco virtual si hay instantáneas relacionadas para el disco VMDK montado.
Ejemplo 2: Montaje de un disco virtual en una máquina virtual que se ejecuta en VMware Player o Workstation
Este ejemplo es similar al anterior, pero se utiliza una VM que se ejecuta en VMware Workstation para abrir los archivos VMDK de la VM ESXi. Este método puede utilizarse cuando no hay espacio libre en el almacén de datos ESXi para copiar un disco virtual, por ejemplo. Un disco virtual de la VM Win-test2 que se mencionó en el ejemplo anterior se montará en una VMware Workstation VM para extraer su contenido.
- En VMware vSphere Client, vaya a Storage >[ Your datastore name] > Files, seleccione su archivo VMDK y pulse Download.
Como recordarás, un disco virtual del formato ESXi consta de archivos vmdk y -flat.vmdk. Necesitas descargar ambos archivos a tu máquina donde está instalado VMware Workstation o VMware Player. Cuando se descarga un disco virtual desde el almacén de datos ESXi con VMware HTML5 vSphere Client, estos dos archivos se empaquetan en un archivo zip.
Como alternativa, puede habilitar el acceso SSH a su host ESXi, ir al directorio del almacén de datos y copiar ambos archivos de disco virtual a su ordenador manualmente utilizando un cliente SCP, por ejemplo, WinSCP.
NOTA: Cuando descargue un disco virtual thin provisioned desde un almacén de datos ESXi que tenga el sistema de archivos VMFS a su ordenador, obtendrá un archivo vmdk ligero y un archivo -flat.vmdk cuyo tamaño será igual al tamaño máximo provisionado del disco virtual (como haría al descargar un disco virtual thick provisioned). Esto se debe a que el thin provisioning puede considerarse una función del sistema de archivos VMFS.
Ahora puede ver dos archivos del disco virtual en formato ESXi que se han descargado en un archivo ZIP. El tamaño del disco virtual thin provisioned en el almacén de datos VMFS es ahora de unos 2 GB (véase la captura de pantalla anterior), y el tamaño del mismo disco descargado en una máquina de estación de trabajo es de unos 8 GB (véase la captura de pantalla siguiente).
- Descomprime los dos ficheros del archivo. De forma predeterminada, los archivos se extraen al directorio Win-test2.vmdk, cuyo nombre es el mismo que el nombre del archivo pero sin una extensión de archivo.
- Para este paso, debe tener una VM sana con un sistema operativo funcional en su máquina con VMware Workstation o Player instalado. Mientras que en el ejemplo anterior se utilizó la VM que ejecuta Windows Server 2016, en este ejemplo se utiliza una VM sana que ejecuta Windows Server 2008.
Abra VMware Workstation o VMware Player, seleccione su VM sana y edite los ajustes de la máquina virtual.
- En la pestaña Hardware, haga clic en el botón Añadir.
- En el Asistente para agregar hardware que se abre, seleccione Disco duro como tipo de hardware. A continuación, seleccione un tipo de disco (puede dejar el valor recomendado). En la pantalla Seleccionar un disco, seleccione la opción Usar un disco virtual existente.
- Seleccione el archivo vmdk (no -flat.vmdk) que ha extraído del archivo ZIP. Puede buscar el archivo o introducir manualmente la ruta completa al archivo.
En este ejemplo, se utilizan ESXi 6.5 y VMware Workstation 15. La estación de trabajo VMware VM que ejecuta Windows Server 2008 en nuestro ejemplo tiene la versión de hardware Workstation 12 (versión VM 12). La máquina virtual ESXi cuyo disco virtual queremos conectar tiene la versión 7.
- Obtenemos un mensaje de error en VMware Workstation diciendo que el disco virtual copiado del host ESXi no es compatible con esta máquina virtual:
Este error puede solucionarse editando el archivo descriptor de disco (el archivo vmdk ligero en el caso de discos virtuales de máquinas virtuales ESXi). Abra su archivo VMDK en el editor de texto y edite el número en la cadena Ddb.virtualHWVersion. En nuestro caso, 13 pasa a ser 12.
NOTA: Recuerde que para discos virtuales de VMware Workstation VMs, un descriptor de disco virtual es construido en el archivo VMDK del disco virtual (no hay un descriptor de archivo separado como para discos virtuales de ESXi VMs).
Tras editar el archivo, el disco virtual se añade correctamente a la máquina virtual existente.
- Encienda la máquina virtual si aún no se ha encendido.
- Abra Disk Management en Windows, cambie el estado de su disco virtual a en línea, asigne una letra de unidad a una partición y examine los archivos.
Cómo extraer datos de un archivo VMDK sin encender una máquina virtual
Los métodos que no requieren configurar y encender una máquina virtual tienen sus propias ventajas. Algunos de estos métodos no requieren la instalación de un hipervisor. Puede montar archivos VMDK directamente en su sistema operativo host en poco tiempo.
Método 1: Montaje archivos VMDKs en un sistema operativo host con VMware Workstation
Este método requiere una instalación de VMware Workstation en un sistema operativo Windows o Linux que se ejecute en su ordenador físico. VMware Workstation proporciona una buena función que le permite montar archivos VMDK en su sistema operativo host. Se admiten discos virtuales del formato ESXi y discos delta relacionados con instantáneas de máquinas virtuales. De forma similar a todos los métodos anteriores considerados en esta entrada del blog, su sistema operativo debe ser compatible con los sistemas de archivos de las particiones del disco virtual.
Si tiene instantáneas de su máquina virtual, los discos virtuales delta se crean después de crear cada instantánea. Deberá disponer de un disco virtual padre y de discos delta si desea abrir un estado de disco virtual en el momento posterior a la toma de una u otra instantánea. En este caso, debe montar el disco virtual delta apropiado en su sistema operativo host. Las dependencias relacionadas con el disco virtual padre se resolverán automáticamente.
Si tiene instantáneas pero desea abrir un disco virtual principal, abra el disco virtual principal en modo de sólo lectura. Esto se debe a que realizar cambios en el disco virtual padre puede dañar instantáneas o clones vinculados creados a partir de una máquina virtual padre con el disco virtual padre. El modo de sólo lectura le impide escribir datos en un disco virtual después de montar el disco en el SO anfitrión. Puede montar archivos de disco virtual VMDK si una VM que utiliza este disco virtual está apagada, o si una VM en particular no está utilizando este disco virtual.
Veamos cómo montar un disco virtual VMDK de la VMware Workstation VM que tiene instantáneas. Hay Windows instalado en una partición NTFS en un disco virtual de la máquina virtual. Después de tomar la primera instantánea, se crea el archivo Snapshot1.txt en el directorio raíz del disco C: y, del mismo modo, después de tomar la segunda instantánea, se crea allí el archivo Snapshot2.txt. El primer ejemplo es para Linux, y el segundo para Windows. En este ejemplo se utilizan archivos de disco virtual de la antigua máquina virtual de Windows XP.
Ejemplo 1: Montaje de VMDK en el host Linux
- Abra VMware Workstation para Linux y vaya a File > Mount Virtual Disks.
- Haga clic en Mount Disk, y se abrirá una ventana emergente. Haga clic en Browse y seleccione el archivo VMDK del disco virtual.
- Seleccionemos el archivo VMDK del segundo disco virtual diferencial creado después de tomar la segunda instantánea de la máquina virtual. El nombre de este archivo aparece como VM_name-000002.vmdk en estos casos (en este ejemplo se utilizaWinXP-test-000002.vmdk).
- Cree el directorio en su sistema de archivos Linux para montar un disco virtual del formato VMDK en ese directorio. Vamos a crear el directorio /mnt/vmdk/ en la consola de Linux.
mkdir /mnt/vmdk/
- Establece los permisos para su usuario (el nombre de usuario es user1 y es miembro del group1 en este ejemplo):
chown -R user1:group1 /mnt/vmdk/
chmod -R 0775 /mnt/vmdk/
- Ahora, selecciona el directorio que has creado como directorio de destino, marca la casilla«Mount in read-only mode» y haz clic en Mount.
- Ahora puede abrir el directorio /mnt/vmdk/ en su explorador de archivos Linux y navegar por los archivos y directorios ubicados en el disco virtual VMDK. Puede ver los archivos Snapshot1.txt e Snapshot2.txt, que se crearon después de crear la primera y segunda instantáneas en este ejemplo. Cada uno de estos dos archivos se encuentra en un disco virtual delta VMDK independiente.
- No olvide desmontar el disco virtual VMDK del directorio (punto de montaje) de su sistema Linux anfitrión cuando haya terminado las operaciones con el contenido del disco virtual.
Si prefiere utilizar la interfaz de la consola, puede montar imágenes de disco VMDK en el host Linux en la consola 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 que en este caso es el mismo que el nombre del directorio de la VM. WinXP-test es el nombre de la máquina virtual en nuestro ejemplo.
vm_disk_name es el nombre del disco virtual( en este ejemplo se utilizaWinXP-test.vmdk ).
vm_disk_name-000001.vmdk es el nombre del primer disco delta (de diferenciación) creado después de tomar la primera instantánea de la máquina virtual(WinXP-test-000001.vmdk en este caso).
vm_disk_name-000002.vmdk es el nombre del segundo disco delta creado después de tomar la segunda instantánea de la máquina virtual(WinXP-test-000002.vmdk en este caso).
- Monte el disco virtual. Por defecto, el disco virtual se monta en modo lectura/escritura. Puede utilizar la clave -r en la línea de comandos para montar un disco en modo de sólo lectura.
vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk
- Lista todos los discos virtuales VMDK montados:
vmware-mount -L
- Antes de terminar de trabajar con discos virtuales VMDK montados, desmonte todos los discos virtuales:
vmware-mount -x
Ejemplo 2: Cómo montar VMDK en el host Windows
La idea de cómo montar archivos VMDK en Windows es similar. Además de la opción File > Map Virtual Disks de la interfaz gráfica de usuario (GUI) de VMware Workstation, puede seguir los pasos que se indican a continuación. Vamos a montar el archivo VMDK del primer disco virtual diferencial creado después de tomar la primera instantánea de la máquina virtual. El nombre de este archivo VMDK tiene el siguiente formato: VM_name-000001.vmdk( en este tutorial se abreWinXP-test-000001.vmdk ).
- Haga clic con el botón derecho en el archivo VMDK en el Explorador de Windows y haga clic en Map Virtual Disk.
- Seleccione los parámetros para montar un archivo VMDK. Se recomienda abrir el archivo VMDK en modo de sólo lectura para evitar posibles daños en los discos virtuales que pertenecen a la cadena de instantáneas tras la escritura de datos. La letra de unidad predeterminada es Z: en este caso, y la unidad se abre en el Explorador de Windows automáticamente después de la asignación si se selecciona la casilla de verificación correspondiente. Pulse OK para continuar.
- Ahora el disco virtual está montado como disco Z: en Windows, y puede leer el contenido del archivo vmdk. En la siguiente captura de pantalla, puede ver el archivo Snapshot1.txt creado después de tomar la primera instantánea. Falta el archivo Snapshot2.txt porque se creó después de tomar la segunda instantánea de la máquina virtual, y hemos abierto un disco virtual delta relacionado con la primera instantánea de la máquina virtual.
- Cuando haya terminado de trabajar con el disco virtual VMDK mapeado, no olvide desconectar el disco. Haga clic con el botón derecho del ratón en el archivo VMDK correspondiente y, a continuación, haga clic en Disconnect Virtual Disk. Después de desconectar el disco virtual, puede encender la máquina virtual que utiliza este disco virtual.
Método 2: Utilizar 7-zip para extraer el contenido de los archivos VMDK
Si buscas cómo abrir archivos VMDK sin ejecutar máquinas virtuales, puedes instalar 7-zip y extraer contenido de imágenes de disco virtual. 7-zip es una herramienta gratuita destinada a archivar ficheros y descomprimir ficheros de archivos comprimidos y otras imágenes. Puedes usar 7zip como extractor de vmdk. Esta herramienta puede utilizarse en máquinas Linux y Windows.
7-zip puede abrir archivos vmdk y -flat.vmdk (esta utilidad puede abrir un único archivo -flat.vmdk si falta el archivo descriptor vmdk) – 7-zip es en realidad para discos virtuales del formato ESXi. 7-zip no puede abrir archivos VMDK delta creados después de tomar instantáneas de máquinas virtuales.
Cómo abrir un archivo VMDKs con 7-zip en Linux
- Instale un paquete completo de 7-zip en su máquina Linux. En este ejemplo se utiliza Ubuntu.
apt-get install p7zip-full
- Lista el contenido del archivo vmdk con 7-zip:
7z l vm_name.vmdk
- Busquemos los archivos que contienen«boot.» en sus nombres, por ejemplo:
7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]
Donde user1 es el nombre de nuestro usuario Linux, l – lista.
- Vamos a extraer(e) el archivo boot.ini de la imagen VMDK:
7z e /media/user1/vms/WinXP-test/WinXP-test.vmdk boot.ini
Puede extraer otros archivos y directorios del archivo VMDK de la misma manera.
Cómo abrir un archivo VMDKs con 7-zip en Windows
- Descargue la versión compatible de 7-zip desde el sitio web oficial e instale la aplicación en su equipo Windows. Utilice el instalador EXE para mayor comodidad.
- Tras instalar 7-zip en Windows, se añaden nuevas opciones de 7-zip al menú contextual al hacer clic con el botón derecho en cualquier archivo o carpeta del Explorador de Windows (véase la captura de pantalla siguiente). Utilice estas opciones para abrir el archivo VMDK como un archivo comprimido o extraer archivos ahora mismo.
- En la siguiente captura de pantalla, el contenido del archivo Win-test2-flat.vmdk independiente se muestra en la GUI de 7-zip utilizada en Windows. Puede extraer el contenido del VMDK que necesite.
Cómo montar archivos VMDK en Linux (otros métodos)
Una de las capacidades más potentes de Linux es la posibilidad de realizar el mayor número de operaciones en la consola, incluso con herramientas incorporadas. Estas herramientas le ayudarán a montar archivos VMDK y acceder al contenido almacenado en los discos virtuales. En los ejemplos proporcionados se utiliza Ubuntu Linux.
Método 1: Cómo montar el archivo VMDKs utilizando /dev/loop
Los dispositivos de bucle son pseudodispositivos en Linux, que hacen que los archivos sean accesibles como dispositivos de bloque y pueden utilizarse para montar imágenes de disco que contengan sistemas de archivos. Los dispositivos de bucle se denominan /dev/loopX, donde X es el número del dispositivo de bucle. Este método es bueno para montar archivos -flat.vmdk, incluso sin un descriptor de disco virtual.
Exploremos cómo montar un archivo VMDK en Linux para acceder a los archivos del disco virtual como ejemplo. Hay un disco virtual del formato ESXi que contiene una partición – falta el archivo descriptor. Hace mucho tiempo, Windows XP estaba instalado en ese disco virtual.
- Utilice uno de los dos comandos para comprobar el número de dispositivos de bucle existentes en su sistema Linux.
fdisk -l | grep /dev/loop
df -h | grep /dev/loop
- En nuestro caso, ya existen dispositivos con los números del 1 al 21 (/dev/loop1- /dev/loop21). Así, vamos a crear el dispositivo de bucle número 30 – este número está libre. Asociaremos este dispositivo con el archivo -flat.vmdk.
losetup /dev/loop30 /vms/Win-test2-flat.vmdk
- Ajusta el offset:
losetup -o 32256 /dev/loop31 /dev/loop30
Donde 32256 es el offset que es 63*512 para un disco formateado en Windows XP/Server 2003 y versiones anteriores de Windows (63 es el número del primer sector de la partición, y 512 bytes es el tamaño del sector). Para Windows 7/Server 2008 y versiones más recientes de Windows, pruebe el desplazamiento 105906176.
Puede recuperar información sobre el tamaño del sector, y el primer sector utilizado para el arranque con el comando:
fdisk -l /dev/loop30 /vms/Win-test2-flat.vmdk
Como alternativa, para los discos virtuales que contienen varias particiones, puede utilizar parted para determinar el inicio y el final de cada partición:
parted /dev/loop30
En la consola parted, introduzca los siguientes comandos:
unit
B
print
- Cree un directorio que se utilizará como punto de montaje para la imagen VMDK:
mkdir /mnt/vmdk-image
- Monte el dispositivo loopback asociado a la imagen VMDK en el directorio creado:
mount /dev/loop31 /mnt/vmdk-image
- Lista el contenido de la imagen montada:
ls -al /mnt/vmdk-image
- Cuando termine de trabajar con el contenido del disco virtual, desmonte la imagen vmdk y desconecte el dispositivo loop:
umount /mnt/vmdk-image
losetup -d /dev/loop31
Método 2: Cómo montar archivos VMDK con kpartx
Kpartx es una herramienta que puede montar particiones dentro de archivos de imagen a los directorios de su sistema de archivos Linux real. Esta herramienta permite configurar las asignaciones de dispositivos para particiones de dispositivos de bloque. Este método también funciona para montar imágenes -flat.vmdk utilizadas en servidores ESXi. Veamos cómo montar el archivo -flat.vmdk utilizado en el ejemplo anterior.
- Instala kpartx:
apt-get install kpartx
- Añade la asignación de particiones para la imagen VMDK en el modo de funcionamiento verboso:
kpartx -av /vms/Win-test2-flat.vmdk
- Monte una partición en el directorio /mnt/vmdk-image preparado anteriormente:
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 en la imagen de disco).
- Lista el contenido de la partición del disco virtual que has montado:
ls -al /mnt/vmdk-image/
- Cuando haya finalizado las operaciones con los archivos de la imagen VMDK, desmonte la imagen de disco virtual VMDK:
umount /mnt/vmdk-image
kpartx -d /vms/Win-test2-flat.vmdk
Conclusión
Conocer varios métodos de extracción de contenido VMDK le proporciona flexibilidad y fiabilidad, ya que cada método puede ser la mejor opción en determinadas situaciones. Además, es aún mejor hacer backups de tus máquinas virtuales.
NAKIVO Backup & Replication puede hacer backup de y restaurar VMs corriendo en VMware vSphere de la mejor manera. Puede recuperar toda la máquina virtual, el disco virtual concreto o archivos independientes desde el backup a una ubicación personalizada.