GNU/Linux >> Tutoriales Linux >  >> Linux

Acceda y modifique imágenes de disco de máquina virtual con Libguestfs

Los libguestfs es una biblioteca C y una colección de herramientas en esta biblioteca para crear, ver, acceder y modificar imágenes de disco de máquina virtual en Linux. Puede mirar dentro de las imágenes de disco, modificar los archivos que contienen, crearlos desde cero, cambiarles el tamaño y mucho más. No requiere libvirt o KVM y tampoco requiere privilegios de root. Red Hat patrocina el desarrollo de libguestfs. Es compatible con muchas distribuciones de Linux y variantes de Unix como Mac OS.

Libguestfs funciona con casi todos los sistemas de archivos de Linux (ext2/3/4, XFS, btrfs, etc.), sistemas de archivos de Windows (vfat y ntfs), sistemas de archivos de Mac OS y BSD, volúmenes LVM2, particiones de disco MBR y GPT, discos RAW , QCOW2, VirtualBox VDI, VMWare VMDK y Hyper-V VHD/VHDX. Incluso puede acceder a archivos locales y dispositivos locales como CD y DVD ISO, tarjetas SD o de forma remota a través de FTP, HTTP, SSH, iSCSI, NBD, GlusterFS, Ceph, Sheepdog y mucho más.

Características de Libguestfs

Con las herramientas de libguest, podemos realizar una gran cantidad de tareas que se enumeran a continuación:

  • Crear máquinas virtuales invitadas,
  • Clonar máquinas virtuales,
  • Crea máquinas virtuales,
  • Personalizar máquinas virtuales,
  • Cambios de secuencias de comandos en las máquinas virtuales,
  • Inspeccionar imágenes de máquinas virtuales,
  • Ver y editar archivos dentro de las máquinas invitadas,
  • Copiar archivos y directorios hacia y desde máquinas virtuales,
  • Mostrar información sobre sistemas de archivos, dispositivos, LVM,
  • Archivar, cargar y descargar archivos,
  • Supervise las estadísticas de disco usado/libre,
  • Formatear discos virtuales,
  • Cambiar el tamaño de los discos virtuales,
  • Realización de copias de seguridad,
  • Montar y desmontar el sistema de archivos invitado en el sistema host,
  • P2V (convierta una máquina física para que se ejecute virtualizada en KVM, OpenStack, oVirt, Red Hat Virtualization),
  • V2V (convertir una máquina invitada de un hipervisor externo para que se ejecute en KVM),
  • Mostrar archivos de registro,
  • Fusionar cambios en el registro de Windows en invitados de Windows,
  • y mucho más.

Puede realizar todas estas tareas a través de un shell programable llamado guestfish , o un shell de rescate interactivo virt-rescue .

Instalar libguestfs en Linux

Ejecute el siguiente comando para instalar libguestfs en Debian, Ubuntu:

$ sudo apt install libguestfs-tools

En CentOS, RHEL:

$ sudo dnf install libguestfs-tools

Una vez instalado, verifique la versión de guestfish usando el comando:

$ guestfish --version
guestfish 1.40.2

Acceda y modifique imágenes de disco de máquina virtual con Libguestfs

Asegúrese de que las máquinas invitadas estén apagadas. No debe modificar las imágenes en vivo por ningún motivo. Puede conducir a la corrupción permanente del disco y la pérdida de datos. Siempre haga una copia de seguridad de las imágenes del disco antes de realizar cambios en ellas.

1. Concha de pez huésped

Guestfish, abreviatura de shell del sistema de archivos invitado, es un shell interactivo para editar sistemas de archivos de máquinas virtuales e imágenes de disco.

1.1. Acceda a imágenes de disco existentes y monte sistemas de archivos invitados manualmente

Primero, carguemos una imagen de disco existente para inspeccionar.

Ejecute el siguiente comando para ingresar al shell interactivo de guestfish:

$ guestfish

Salida de muestra:

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: ‘help’ for help on commands
      ‘man’ to read the manual
      ‘quit’ to quit the shell

><fs>

Aquí, > indica el aviso de guestfish.

..y luego agregue las imágenes de disco usando el comando:

><fs> add ~/CentOS_8_Server.img

A continuación, ejecute el siguiente comando para iniciar la biblioteca y adjuntar (iniciar) la imagen del disco:

><fs> run

Tardará unos segundos la primera vez. Los arranques subsiguientes terminarán mucho más rápido.

Ahora necesita enumerar y montar los sistemas de archivos invitados manualmente.

Para ver la lista de sistemas de archivos en el disco, ejecute este comando desde el indicador de guestfish:

><fs> list-filesystems

Salida de muestra:

/dev/sda1: ext4
/dev/cl/root: xfs
/dev/cl/swap: swap

Montar un sistema de archivos:

><fs> mount /dev/cl/root /

Mostrar puntos de montaje:

><fs> mountpoints 
/dev/cl/root: /

Del mismo modo, monte los otros sistemas de archivos.

1.2. Acceda a imágenes de disco existentes y monte sistemas de archivos invitados automáticamente

En lugar de enumerar y montar manualmente los sistemas de archivos invitados, puede dejar que el pez invitado inspeccione automáticamente las imágenes y monte los sistemas de archivos usando -i marca como a continuación.

$ guestfish -a CentOS_8_Server.img -i

Aquí,

  • -a El parámetro (--add) detectará automáticamente el formato de la imagen del disco. Para anular esto y especificar un formato particular, use el --format opción.
  • -yo (--inspector) - Inspecciona los discos y monta los sistemas de archivos.
  • CentOS_8_Server.img - nombre de la imagen de disco. Tengo esta imagen en mi directorio actual.

Este comando cargará la imagen dada, montará los sistemas de archivos invitados y lo colocará dentro del caparazón del pez invitado.

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: ‘help’ for help on commands
      ‘man’ to read the manual
      ‘quit’ to quit the shell

Operating system: CentOS Linux release 8.2.2004 (Core) 
/dev/cl/root mounted on /
/dev/sda1 mounted on /boot

><fs>

Si usaste la "-i" parámetro, no tiene que listar y montar sistemas de archivos invitados manualmente. Los sistemas de archivos se montarán automáticamente. Además, no es necesario que inicie la biblioteca y adjunte la imagen del disco usted mismo. Guestfish mismo se encargará de ello.

1.3. Acceda a máquinas virtuales en lugar de solo imágenes de disco

Guestfish tiene una opción para acceder a las máquinas virtuales (dominios) en lugar de las imágenes de disco.

Primero, obtenga el nombre de las máquinas virtuales usando el comando:

$ virsh list --all
 Id   Name            State
--------------------------------
 -    centos8-uefi    shut off
 -    nginx_centos8   shut off

Para acceder a la VM llamada "centos8-uefi", use la opción -d o --domain como se muestra a continuación.

$ guestfish -d centos8-uefi -i
1.4. Ver y modificar el contenido de las imágenes de disco

Guestfish admite cientos de comandos para ver y modificar imágenes de disco a su gusto. Se sentirá abrumado si mira toda la página del manual. Por lo tanto, es mejor saber cómo obtener ayuda primero.

Lista de todos los comandos

Si no sabe por dónde empezar, simplemente abra la sección de ayuda usando el comando:

><fs> help

Para enumerar todos los comandos disponibles junto con una breve descripción, ejecute:

><fs> help -l

Obtener ayuda de un comando específico

Para obtener ayuda de cualquier comando, por ejemplo mkdir, ejecute:

<fs> help mkdir

Ahora veamos algunos ejemplos.

Lista de dispositivos bloqueados

Para enumerar todos los dispositivos de bloque en la imagen, ejecute:

><fs> list-devices 
/dev/sda

Lista de particiones

Para enumerar todas las particiones detectadas en todos los dispositivos de bloque, ejecute:

><fs> list-partitions 
/dev/sda1
/dev/sda2

Lista de contenidos del directorio

Para enumerar los archivos en un directorio determinado, ejecute:

><fs> ls /root
.bash_history
.bash_logout
.bash_profile
.bashrc
.cshrc
.tcshrc

Ver el contenido del archivo

Para mostrar el contenido de un archivo, ejecute:

><fs> cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Thu Feb  6 06:43:28 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=5e675dd6-7f64-46cd-8535-3617f3cf870b /boot                   ext4    defaults        1 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0

Crear directorios

El siguiente comando creará un directorio llamado "ostechnix" en el directorio /root del sistema invitado.

><fs> mkdir /root/ostechnix

Crear archivos vacíos

Para crear un archivo vacío dentro de la máquina invitada, haga lo siguiente:

><fs> touch /root/ostechnix/file.txt

Verifique si el archivo ha sido creado:

><fs> ls /root/ostechnix/
file.txt

Crear archivos con contenidos

Para crear un archivo con algunos contenidos, use escribir comando:

><fs> write /root/ostechnix/file2.txt https://ostechnix.com

El comando anterior creará file2.txt en el directorio /root/ostechnix/ y escribirá "https://ostechnix.com" en él.

Puedes verificarlo usando el comando "gato":

><fs> cat /root/ostechnix/file2.txt 
https://ostechnix.com

Adjuntar contenidos a archivos existentes

Para agregar nuevo contenido al final de un archivo ya creado, use el comando "write-append":

<fs> write-append /root/ostechnix/file2.txt /about

El comando anterior agregará la palabra "/acerca de" al final del contenido del archivo1.txt.

Verifique si se agregó la línea, use el comando cat:

><fs> cat /root/ostechnix/file2.txt 
https:/ostechnix.com/about

Editar archivos

Para editar un archivo en la máquina invitada, use el comando "editar":

><fs> edit /root/ostechnix/file.txt

El archivo dado se abrirá en el editor predeterminado.

Eliminar archivos y directorios

Para eliminar un archivo de la máquina invitada:

><fs> rm /root/ostechnix/file2.txt 
><fs> rm /root/ostechnix/file.txt

Para eliminar un directorio, use el comando "rmdir":

><fs> rmdir /root/ostechnix/

Copiar archivos o directorios locales en la imagen del disco

El comando "copiar" copia los archivos o directorios locales de forma recursiva en la imagen del disco.

El siguiente comando copiará el archivo ostechnix.txt desde el sistema local a /root/ostechnix/ en imagen de disco.

<fs> copy-in ostechnix.txt /root/ostechnix/

Verifíquelo usando ls comando:

<fs> ls /root/ostechnix/
file.txt
ostechnix.txt

Copiar archivos o directorios desde la imagen del disco al sistema host

De manera similar, podemos copiar los archivos o directorios desde una imagen de disco al sistema host local usando el comando "copiar" como se muestra a continuación.

<fs> copy-out /root/ostechnix/ /home/sk/Downloads/

En el ejemplo anterior, estoy copiando el directorio /root/ostechnix/ al directorio de descargas en el sistema host.

Descargar archivos al sistema host

Esto es lo mismo que el comando de copia.

Guestfish le permite descargar y cargar contenidos desde la máquina invitada a la máquina host y viceversa.

La sintaxis general para descargar archivos:

download <guest_file_location> <host_file_location>

El siguiente comando descargará el archivo "/etc/fstab" de la máquina invitada al directorio /home/sk/Downloads/ en el sistema host KVM.

<fs> download /etc/fstab /home/sk/Downloads/fstab

Cargar archivos del sistema host al sistema invitado

Esto es lo mismo que el comando de copia.

Para cargar un archivo desde su sistema host a la máquina invitada, ejecute:

><fs> upload /home/sk/Downloads/fstab /etc/fstab

Aquí estoy subiendo /home/sk/Downloads/fstab archivo de mi sistema local a /etc/fstab en la máquina invitada.

Mostrar la página del manual de guestfish

Para mostrar las páginas man de guestfish:

><fs> man

Salir de guestfish

Para salir del caparazón de pez huésped, ejecute:

><fs> exit

Lo que hemos visto hasta ahora es que accedimos, montamos, inspeccionamos y modificamos imágenes de disco existentes. Guestfish también puede ayudarlo a crear nuevas imágenes de disco al instante.

1.5. Creando nuevas imágenes de disco

Los siguientes comandos deben ejecutarse fuera del shell de guestfish. En otras palabras, deben ejecutarse en su terminal host.

¿Recuerdas que agregamos las imágenes existentes usando un parámetro? Sí. Para crear una nueva imagen de disco, vamos a -N (--nuevo) parámetro.

Para crear una nueva imagen de disco e iniciarla automáticamente, ejecute el siguiente comando desde el indicador del terminal host (no en el guestfish):

$ guestfish -N fs

Este comando creará un nuevo disco llamado "test1.img" en el directorio actual y lo llevará dentro del aviso de guestfish. Este disco contendrá una sola partición, con un sistema de archivos vacío. De forma predeterminada, el tamaño del disco será 1 GB . Si ejecuta el mismo comando la próxima vez, se creará un nuevo disco llamado "test2.img" con tamaño 1G y así sucesivamente.

En lugar de crear un disco de 1G de tamaño fijo, también es posible crear una imagen de disco de tamaño personalizado.

Para crear un disco en blanco de 500 MB , ejecuta:

$ guestfish -N disk:500M

También puede crear una imagen de disco formateada con un sistema de archivos específico. Por ejemplo, el siguiente comando creará un disco de 1G con un ext4 -partición formateada, llamada test1.img en el directorio actual:

$ guestfish -N fs:ext4

Cree un disco de 500 MB con un VFAT -partición formateada y montarla:

$ guestfish -N fs:vfat:500M -m /dev/sda1

Cree un disco en blanco de 500 MB llamado blankdisk.img (en lugar del nombre predeterminado test1.img):

$ guestfish -N blankdisk.img=disk:500M
1.6. Adición de imágenes de disco remoto

No solo imágenes de discos locales, también podemos agregar discos ubicados en un servidor remoto SSH, FTP, HTTP o TFTP.

Agregue un disco ubicado en un servidor SSH remoto:

$ guestfish -a ssh://[email protected]/disk.img

Reemplace el nombre de usuario y la dirección IP en el comando anterior con los suyos propios.

Agregue un disco ubicado en un servidor FTP remoto:

$ guestfish -a ftp://[email protected]:port/disk.img
$ guestfish -a ftps://[email protected]:port/disk.img

Agregue un disco ubicado en un servidor HTTP remoto:

$ guestfish -a http://[email protected]:port/disk.img
$ guestfish -a https://[email protected]:port/disk.img

Agregue un disco ubicado en un servidor TFTP remoto:

$ guestfish -a tftp://[email protected]:port/disk.img

2. Acceda, vea y modifique imágenes de disco sin ingresar al shell de guestfish

Libguestfs proporciona muchos otros comandos equivalentes para acceder, ver y modificar imágenes de disco, sin tener que ingresar al shell de guestfish.

2.1. montaje de invitados

El comando Guestmount se utiliza para montar un sistema de archivos invitado en el host mediante FUSE y libguestfs.

El siguiente comando montará el centos8-uefi sistema de archivos de la máquina invitada en ~/guestvm/ en el sistema host.

$ mkdir ~/guestvm/
$ sudo guestmount -d centos8-uefi -i ~/guestvm/

Verifique el contenido del directorio de montaje:

$ sudo ls -l ~/guestvm

Salida de muestra:

total 16
lrwxrwxrwx.  1 root root    7 May 11  2019 bin -> usr/bin
dr-xr-xr-x.  6 root root 4096 Jul 18 15:46 boot
drwxr-xr-x.  2 root root    6 Jul 18 15:23 dev
drwxr-xr-x. 78 root root 8192 Jul 25 17:54 etc
drwxr-xr-x.  2 root root    6 May 11  2019 home
lrwxrwxrwx.  1 root root    7 May 11  2019 lib -> usr/lib
lrwxrwxrwx.  1 root root    9 May 11  2019 lib64 -> usr/lib64
drwxr-xr-x.  2 root root    6 May 11  2019 media
drwxr-xr-x.  2 root root    6 May 11  2019 mnt
drwxr-xr-x.  2 root root    6 May 11  2019 opt
drwxr-xr-x.  2 root root    6 Jul 18 15:23 proc
dr-xr-x---.  2 root root  135 Jul 18 15:46 root
drwxr-xr-x.  2 root root    6 Jul 18 15:23 run
lrwxrwxrwx.  1 root root    8 May 11  2019 sbin -> usr/sbin
drwxr-xr-x.  2 root root    6 May 11  2019 srv
drwxr-xr-x.  2 root root    6 Jul 18 15:23 sys
drwxrwxrwt.  7 root root  119 Jul 25 18:44 tmp
drwxr-xr-x. 12 root root  144 Jul 18 15:24 usr
drwxr-xr-x. 20 root root  278 Jul 18 15:45 var

Para desmontarlo, ejecute:

$ sudo umount ~/guestvm

Para obtener más detalles, consulte las páginas man.

$ man guestmount
2.2. gato virtual

Comando Virt-cat emitido para ver el contenido de un archivo almacenado en una imagen de disco o máquina virtual.

$ sudo virt-cat -a CentOS_8_Server.img /etc/fstab

O,

$ sudo virt-cat -d centos8-uefi /etc/fstab

Salida de muestra:

#
# /etc/fstab
# Created by anaconda on Sat Jul 18 05:53:25 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=6a7f6481-5eb3-4589-ad19-b2291ddfcda1 /boot                   ext4    defaults        1 2
UUID=6906-5D0A          /boot/efi               vfat    umask=0077,shortname=winnt 0 2
/dev/mapper/cl-swap     swap                    swap    defaults        0 0
2.3. virt-copia-en

El comando Virt-copy-in se usa para copiar archivos y directorios del host a una imagen de disco o máquina virtual.

$ sudo virt-copy-in -a CentOS_8_Server.img ostechnix.txt /root/

O,

$ sudo virt-copy-in -d centos8-uefi ostechnix.txt /root/
2.4. copia virtual

El comando Virt-copy-out se usa para copiar archivos y directorios de una imagen de disco o máquina virtual.

$ sudo virt-copy-out -a CentOS_8_Server.img /root/ostechnix.txt ~/Downloads

O,

$ sudo virt-copy-in -d centos8-uefi /root/ostechnix.txt ~/Downloads

Los comandos anteriores copiarán el archivo /root/ostechnix.txt del disco de la máquina virtual al directorio ~/Downloads en el sistema host local.

2.4. virtual-df

El comando Virt-df muestra el espacio libre en el sistema de archivos de una máquina invitada.

Ver espacio libre en una imagen de disco:

$ sudo virt-df -a CentOS_8_Server.img

Salida de muestra:

Filesystem                                Size       Used  Available  Use%
CentOS_8_Server.img:/dev/sda1             976M       260M       649M   27%
CentOS_8_Server.img:/dev/cl/root           17G       1.4G        16G    9%

Ver espacio en disco en una VM:

$ sudo virt-copy-in -d centos8-uefi /root/ostechnix.txt ~/Downloads

Salida de muestra:

Filesystem                                Size       Used  Available  Use%
centos8-uefi:/dev/sda1                    599M       6.6M       592M    2%
centos8-uefi:/dev/sda2                    976M       121M       788M   13%
centos8-uefi:/dev/cl/root                  16G       1.2G        15G    8%
2.5. virt-edit

Edite un archivo en una imagen de disco o máquina virtual.

$ sudo virt-edit -a CentOS_8_Server.img /root/ostechnix.txt

O,

$ sudo virt-edit -d centos8-uefi /root/ostechnix.txt

Este comando abrirá el archivo remoto en el editor predeterminado. Simplemente haga los cambios y guarde y cierre el archivo.

2.6. sistemas de archivos virt

Enumere sistemas de archivos, particiones, dispositivos de bloque, LVM en una máquina virtual o imagen de disco.

$ sudo virt-filesystems -a CentOS_8_Server.img -l

O,

$ sudo virt-filesystems -d centos8-uefi -l

Salida de muestra:

Name          Type        VFS   Label  Size         Parent
/dev/sda1     filesystem  vfat  -      629145600    -
/dev/sda2     filesystem  ext4  -      1073741824   -
/dev/cl/root  filesystem  xfs   -      17620271104  -

Para mostrar los detalles de la partición, agregue --partitions en el comando anterior:

$ sudo virt-filesystems -d centos8-uefi --partitions
/dev/sda1
/dev/sda2
/dev/sda3

Del mismo modo, puede utilizar --logical-volumes , --grupos de volumen , --volumen-físico , --dispositivos de bloqueo para enumerar esos artículos.

2.7. inspector virtual

Virt-inspector se utiliza para mostrar la versión del sistema operativo y otra información sobre una imagen de disco o una máquina virtual.

$ sudo virt-inspector -a CentOS_8_Server.img

O,

$ sudo virt-inspector -d centos8-uefi
2.8. virt-ls

Virt-ls se usa para mostrar los archivos y directorios y sus tamaños, atributos, sumas de verificación en una imagen de disco o máquina virtual.

$ sudo virt-ls -R -a CentOS_8_Server.img / | less

O,

$ sudo virt-ls -R -d centos8-uefi /root

Puede usar la mayoría de las opciones/indicadores normales del comando "ls" con el comando virt-ls.

2.9. registro virtual

Virt-log se utiliza para mostrar los archivos de registro de una imagen de disco o una máquina virtual.

$ sudo virt-log -a CentOS_8_Server.img

O,

$ sudo virt-log -d centos8-uefi
2.10. cola virtual

El comando Virt-tail se usa para seguir los archivos de registro en una imagen de disco o una máquina virtual.

$ sudo virt-tail -a CentOS_8_Server.img /var/log/messages

O,

$ sudo virt-tail -d centos8-uefi /var/log/messages

Hay muchos más comandos disponibles. Le sugiero que consulte el sitio web libguestfs vinculado al final de esta guía.

Leer a continuación:

  • Cree rápidamente imágenes de máquinas virtuales con Virt-builder
  • Muestre las estadísticas de los sistemas de virtualización con Virt-top en Linux
  • Cómo rescatar máquinas virtuales con Virt-rescue

Resolución de problemas

Estas son las soluciones para algunos problemas comunes.

1. libguestfs no funciona sin permisos de root en Ubuntu

Es posible que encuentre este error al intentar acceder a las imágenes de disco en Ubuntu:

libguestfs: error: /usr/bin/supermin exited with error status 1.
To see full error messages you may need to enable debugging.
Do:
  export LIBGUESTFS_DEBUG=1 LIBGUESTFS_TRACE=1
and run the command again.  For further information, read:
  http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs

Para solucionar este problema, ejecute:

$ sudo chmod 0644 /boot/vmlinuz*

Es posible que deba agregarse a kvm grupo:

$ sudo usermod -a -G kvm sk

Reemplace "sk" en el comando anterior con su propio nombre de usuario.

  1. Si ya ha instalado libvirt o KVM en su sistema e intenta usar las herramientas libguesfs como usuario raíz, debería ver este error de permiso:
libguestfs: error: could not create appliance through libvirt.

Try running qemu directly without libvirt using this environment variable:
export LIBGUESTFS_BACKEND=direct

Original error from libvirt: Cannot access backing file '/root/CentOS_8_Server.qcow2' of storage file '/tmp/libguestfsiPjmga/overlay1.qcow2' (as uid:107, gid:107): Permission denied [code=38 int1=13]

Esto es causado por libvirt, por lo que solo ocurre cuando se usa el backend de libvirt. Para solucionar esto, cambie al backend directo configurando esta variable de entorno:

export LIBGUESTFS_BACKEND=direct

Para que sea permanente, agregue esta línea a su ~/.bashrc archivo.


Linux
  1. ¿Cómo convertir VMDK (disco de máquina virtual) a VDI usando VBoxManage?

  2. ¿Cómo usar las herramientas libguestfs para editar imágenes de disco de máquinas virtuales (VM) en CentOS/RHEL/Fedora?

  3. [Resuelto]:¿Cómo evitar que el reloj de la máquina virtual se sincronice con la máquina host y establecer la hora del reloj independiente?

  4. Expanda y reduzca volúmenes con Administración de discos

  5. Inicie un sistema operativo nativo en un disco duro como una máquina virtual

Cómo exportar e importar máquinas virtuales KVM en Linux

Cómo clonar una máquina virtual en VirtualBox

Cómo crear una máquina virtual con Vagrant y VirtualBox

Primeros pasos con Vagrant y VirtualBox – Parte 1

Migrar máquina virtual de VMware ESXi a Proxmox VE

Cómo aumentar el espacio de disco virtual de la máquina virtual en VirtualBox y VMware