VirtualBox (Español) - ArchWiki

# VirtualBox (Español)

From ArchWiki
Jump to navigation Jump to search
Estado de la traducción
Este artículo es una traducción de VirtualBox, revisada por última vez el 2019-11-11. Si advierte que la versión inglesa ha cambiado puede ayudar a actualizar la traducción, bien por usted mismo o bien avisando al equipo de traducción.

Artículos relacionados

- VirtualBox/Tips and tricks (Español)
- Category:Hypervisors (Español)
- PhpVirtualBox
- RemoteBox
- Moving an existing install into (or out of) a virtual machine

VirtualBox es un hipervisor que se utiliza para ejecutar sistemas operativos en un entorno especial, llamado máquina virtual, corriendo sobre un sistema operativo ya existente. VirtualBox está en constante desarrollo y las nuevas características se implementan continuamente. Viene con una interfaz gráfica basada en Qt, así como herramientas de línea de órdenes SDL y headless para la gestión y ejecución de máquinas virtuales.

Con el fin de integrar las funciones del sistema anfitrión en los sistemas huéspedes, incluyendo carpetas compartidas y portapapeles, aceleración de vídeo y un modo de integración de ventanas fluido, se proporcionan complementos huéspedes (guest additions) para algunos sistemas operativos huéspedes.

## Pasos para preparar Arch Linux como sistema anfitrión

Para poner en marcha máquinas virtuales de VirtualBox emarcadas en su sistema Arch Linux, siga estos pasos de instalación.

### Instalar los paquetes principales

Instale el paquete virtualbox. Deberá elegir un paquete para proporcionar módulos al sistema anfitrión:

- para el kernel linux elija virtualbox-host-modules-arch
- para otros kernels elija virtualbox-host-dkms

Para compilar los módulos de VirtualBox proporcionados por virtualbox-host-dkms, también será necesario instalar el paquete de encabezado apropiado para su kernel linux-lts-headers. [1] Cuando se actualice VirtualBox o el kernel, los módulos del kernel se volverán a compilar automáticamente gracias al hook DKMS de Pacman.

### Firmar los módulos

Cuando use un kernel personalizado con la opción `CONFIG_MODULE_SIG_FORCE` activada, debe firmar sus módulos con una clave generada durante la compilación del kernel.

Navegue a la carpeta del árbol del kernel y ejecute la siguiente orden:

    # for module in `ls /lib/modules/$(uname -r)/kernel/misc/{vboxdrv.ko,vboxnetadp.ko,vboxnetflt.ko,vboxpci.ko}` ; do ./scripts/sign-file sha1 certs/signing_key.pem certs/signing_key.x509 $module ; done

Nota: el algoritmo de hash no tiene que coincidir con el configurado, pero debe estar integrado en el kernel.

### Cargar los módulos del kernel de VirtualBox

virtualbox-host-modules-arch y virtualbox-host-dkms usa `systemd-modules-load.service` para cargar los cuatro módulos de VirtualBox automáticamente en el momento del arranque. Para que los módulos se carguen después de la instalación, reinicie o cargue los módulos una vez manualmente.

Nota: si no desea que los módulos de VirtualBox se carguen automáticamente en el momento del arranque, debe enmascarar el archivo predeterminado `/usr/lib/modules-load.d/virtualbox-host-modules-arch.conf` (o `/usr/lib/modules-load.d/virtualbox-host-dkms.conf`)creando un archivo vacío (o enlace simbólico a `/dev/null`) con el mismo nombre en `/etc/modules-load.d/`.

Entre los módulos del kernel de VirtualBo que puede utilizar, hay uno obligatorio llamado `vboxdrv`, que se debe cargar antes de que se pueda ejecutar cualquier máquina virtual.

Para cargar el módulo manualmente, ejecute:

    # modprobe vboxdrv

Los siguientes módulos solo serán necesarios con algunas configuraciones avanzadas:

- `vboxnetadp` y `vboxnetflt` son necesarios cuando intenta usar la característica de bridged o conexión de red solo para el sistema anfitrión. Más precisamente, se necesita `vboxnetadp` para crear la interfaz del sistema anfitrión en las preferencias globales de VirtualBox, y `vboxnetflt` para iniciar una máquina virtual usando esa interfaz de red.
- `vboxpci` es necesario cuando su máquina virtual necesita pasar a través de un dispositivo PCI del sistema anfitrión.

Nota: si los módulos del kernel de VirtualBox se cargaron en el kernel mientras actualizaba los módulos, debe volver a cargarlos manualmente para usar la nueva versión actualizada. Para hacerlo, ejecute `vboxreload` como root.

### Acceder al dispositivos USB del anfitrión desde el huésped

Para usar los puertos USB del equipo anfitrión en sus máquinas virtuales, agregue usuarios que estén autorizados para usar esta función a `vboxusers` del grupo de usuarios.

### Disco de «Guest Additions»

También se recomienda instalar el paquete virtualbox-guest-iso en el equipo que ejecuta VirtualBox. Este paquete actuará como una imagen de disco que se puede usar para instalar los complementos («guest additions») en sistemas huéspedes que no sean Arch Linux. El archivo .iso se ubicará en `/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso`, y puede que tenga que ser montado manualmente dentro de la máquina virtual. Una vez montado puede ejecutar el instalador de complementos adicionales dentro del huésped.

### Paquete de extensiones

El paquete Oracle Extension proporciona additional features (características adicionales) y se lanza bajo una licencia no gratuita solo disponible para uso personal. Para instalarlo, está disponible el paquete virtualbox-ext-oracleAUR, y se puede encontrar una versión precompilada en el repositorio seblu.

Si prefiere usar la forma tradicional y manual: descargue la extensión manualmente e instálela a través de la interfaz gráfica (Archivo > Preferencias > Extensiones) o a través de `VBoxManage extpack install <.vbox-extpack>`, asegúrese de tener un conjunto de herramientas como Polkit para otorgar acceso privilegiado a VirtualBox. La instalación de esta extensión requiere acceso de root.

### Utilizar el front-end adecuado

VirtualBox viene con tres front-ends:

- Si desea usar VirtualBox con la interfaz gráfica normal, use `VirtualBox`.
- Si desea iniciar y administrar sus máquinas virtuales desde la línea de órdenes, use la orden `VBoxSDL`,que solo proporciona una ventana simple para la máquina virtual sin superposiciones.
- Si desea usar VirtualBox sin ejecutar ninguna interfaz gráfica (por ejemplo, en un servidor), use la orden `VBoxHeadless`. Con la extensión VRDP, aún puede acceder de forma remota a las pantallas de sus máquinas virtuales.

Por último, puede utilizar PhpVirtualBox para administrar sus máquinas virtuales a través de una interfaz web.

Remítase al manual de VirtualBox para aprender cómo crear máquinas virtuales.

Advertencia: si va a guardar imágenes de discos virtuales en un sistema de archivos Btrfs, antes de crear cualquier imagen, debería considerar desactivar Copy-on-Write para el directorio de destino de estas imágenes.

## Pasos para instalar Arch Linux como sistema huésped

Inicie el soporte de instalación de Arch a través de una de las unidades virtuales de la máquina virtual. Luego, complete la instalación de un sistema Arch básico como se explica en la Installation guide (Español).

### Instalación en modo EFI

Si desea instalar Arch Linux en modo EFI en VirtualBox, en la configuración de la máquina virtual, choose System item from the panel on the left and Motherboard tab from the right panel, y marque la casilla Enable EFI (special OSes only). Después seleccione el kernel desde el menú del soporte de instalación de Arch Linux, el soporte demorará por un minuto o dos y continuará con el arranque del kernel normalmente después. Sea paciente.

Una vez que el sistema y el cargador de arranque estén instalados, VirtualBox intentará ejecutar primero `/EFI/BOOT/BOOTX64.EFI` desde la partición EFI system partition (Español). Si esa primera opción falla, VirtualBox probará el script del intérprete de órdenes de EFI `startup.nsh` desde la raíz de la ESP. Esto significa que para iniciar el sistema tiene las siguientes opciones:

- Inicie el cargador de arranque manualmente desde el intérprete de órdenes de EFI cada vez;
- Mueva el gestor de arranque a la ruta predeterminada `/EFI/BOOT/BOOTX64.EFI`;
- Crea un script que se llame `startup.nsh` en la raíz de la partición ESP que contenga la ruta a la aplicación del cargador de arranque, por ejemplo `\EFI\grub\grubx64.efi`.
- Arranque directamente desde la partición ESP usando un script startup.nsh.

No se moleste con el «VirtualBox Boot Manager» (accesible con `F2` en el inicio), ya que está defectuoso e incompleto. No almacena efivars establecidos de forma interactiva. Por lo tanto, las entradas EFI agregadas manualmente en el firmware (a las que se accede con `F12` en el momento del inicio) o con efibootmgr persistirán después de un reinicio pero se pierden cuando la máquina virtual se apaga.

Véase también Problemas de arranque de la instalación de UEFI VirtualBox.

### Instalar los «Guest Additions»

Los Guest Additions de VirtualBox proporcionan controladores y aplicaciones que optimizan el sistema operativo huésped, incluida una resolución de imagen mejorada y un mejor control del ratón. Dentro del sistema huésped instalado, instale:

- virtualbox-guest-utils y xf86-video-vmware (FS#61183) para las utilidades de VirtualBox Guest con soporte para X;
- virtualbox-guest-utils-nox para las utilidades de VirtualBox Guest sin soporte de X.

Ambos paquetes le darán a elegir un paquete para proporcionar módulos al huésped:

- para el kernel linux predeterminado elija virtualbox-guest-modules-arch[enlace roto: replaced by linux];
- para kernels no predeterminados elija virtualbox-guest-dkms.

Para compilar los módulos de virtualbox proporcionados por virtualbox-guest-dkms, también será necesario instalar los paquetes de encabezados adecuados para su kernel instalado (por ejemplo, linux-lts-headers para linux-lts). [2] Cuando se actualice VirtualBox o el kernel, los módulos del kernel se volverán a compilar automáticamente gracias al hook [[DKMS] ] de Pacman.

Nota:

- Alternativamente, puede instalar los «Guest Additions» con la ISO del paquete virtualbox-guest-iso, siempre que lo haya instalado en el sistema anfitrión. Para ello, vaya al menú del dispositivo y haga clic en Insertar imagen del CD de «Guest Additions».
- Para recompilar los módulos del kernel de vbox, ejecuten `rcvboxdrv` como root.

Los complementos adicionales para el sistema huésped («guest additions») que se ejecutan en su sistema huésped y la aplicación VirtualBox que se ejecuta en su sistema anfitrión deben tener versiones coincidentes, de lo contrario los complementos adicionales (como el portapapeles compartido) pueden dejar de funcionar. Si actualiza su sistema huésped (por ejemplo, `pacman -Syu`), asegúrese de que su aplicación VirtualBox presente en el sistema anfitrión también sea la última versión. «Check for updates» en la interfaz gráfica de VirtualBox a veces no es suficiente; visite el sitio web VirtualBox.org.

### Establecer la resolución óptima de framebuffer

Normalmente, después de instalar Guest Additions, un huésped de Arch en pantalla completa que ejecuta X se configurará en la resolución óptima para su pantalla; sin embargo, el framebuffer de la consola virtual se configurará en una resolución estándar, a menudo más pequeña, detectada desde el controlador VESA personalizado de VirtualBox.

Para usar las consolas virtuales con una resolución óptima, Arch debe reconocer que la resolución es válida, lo que a su vez requiere que VirtualBox pase esta información al sistema operativo huésped.

Primero, verifique si su resolución deseada no está ya reconocida al ejecutar la orden:

    hwinfo --framebuffer

Si la resolución óptima no se muestra, entonces deberá ejecutar la herramienta `VBoxManage` en el equipo anfitrión y agregue «resoluciones extras» a su máquina virtual (en un sistema anfitrión de Windows, vaya al directorio de instalación de VirtualBox para encontrar `VBoxManage.exe`). Por ejemplo:

    $ VBoxManage setextradata "Arch Linux" "CustomVideoMode1" "1360x768x24"

Los parámetros "Arch Linux" y "1360x768x24" en el ejemplo anterior deben reemplazarse con el nombre de su máquina virtual y la resolución de framebuffer deseada. Por cierto, esta orden permite definir hasta 16 resoluciones adicionales ("CustomVideoMode1" hasta "CustomVideoMode16").

Luego, reinicie la máquina virtual y ejecute `hwinfo --framebuffer` una vez más para verificar que el sistema huésped ha reconocido las nuevas resoluciones (lo que no garantiza que funcionen, lo que dependerá de las limitaciones del hardware).

Nota: a partir de VirtualBox 5.2, `hwinfo --framebuffer` puede que no muestre ningún resultado, pero aún así debería poder establecer una resolución personalizada siguiendo este procedimiento.

Finalmente, agregue un parámetro del kernel `video=resolution` para configurar el framebuffer a la nueva resolución, por ejemplo::

    video=1360x768

Además, es posible que desee configurar su Arch boot process (Español)#Gestor de arranque para usar la misma resolución. Si usa GRUB, consul GRUB (Español)/Tips and tricks (Español)#Ajustar la resolución del framebuffer.

Nota: ni el parámetro del kernel `vga` ni la configuración de resolución del cargador de arranque (por ejemplo, `GRUB_GFXPAYLOAD_LINUX`) de GRUB, pueden arreglar el framebuffer, ya que están superados por la configuración de modo del kernel. La resolución del framebuffer debe ser establecida por el parámetro del kernel `video` como se describió anteriormente.

### Cargar los módulos del kernel de VirtualBox

Para cargar los módulos automáticamente, active `vboxservice.service` que carga los módulos y sincroniza la hora del sistema del sistema huésped con el sistema anfitrión.

Para cargar los módulos manualmente, escriba:

    # modprobe -a vboxguest vboxsf vboxvideo

virtualbox-guest-dkms utiliza `systemd-modules-load.service` para cargar los módulos en el momento del arranque.

Nota: si no desea que los módulos de VirtualBox se carguen en el momento del arranque, debe enmascarar el archivo predeterminado `/usr/lib/modules-load.d/virtualbox-guest-dkms.conf` creando un archivo vacío (o enlace simbólico a `/dev/null`) con el mismo nombre en `/etc/modules-load.d/`.

### Lanzar los servicios de VirtualBox en el sistema huésped

Después de instalar los módulos del kernel, ahora se necesita iniciar los servicios en el sistema huésped. Los servicios de los huéspedes son en realidad un ejecutable binario llamado `VBoxClient` que interactuará con el sistema de ventanas X (X11) y que gestionará las siguientes funciones:

- portapapeles compartido y función arrastrar y soltar entre el anfitrión y el huésped;
- modo de ventanas integradas;
- la pantalla del huésped se redimensiona automáticamente en función del tamaño de la ventana del sistema huésped;
- y, finalmente, la comprobación de la versión del anfitrión de VirtualBox.

Todas estas características se pueden activar, separada y manualmente, con sus estiquetas dedicadas.

    $ VBoxClient --clipboard
    $ VBoxClient --draganddrop
    $ VBoxClient --seamless
    $ VBoxClient --display
    $ VBoxClient --checkhostversion
    $ VBoxClient --vmsvga-x11

Tenga en cuenta que `VBoxClient` solo se puede llamar con un indicador a la vez, cada llamada genera un proceso de servicio dedicado. Como método abreviado, el script de bash `VBoxClient-all` activa todas estas características.

virtualbox-guest-utils instala `/etc/xdg/autostart/vboxclient.desktop` que lanza `VBoxClient-all` al iniciar sesión. Si su entorno de escritorio o gestor de ventanas no es compatible con XDG Autostart, deberá configurar el inicio automático usted mismo, consulte Autostarting#On desktop environment startup y Autostarting#On window manager startup para más detalles.

VirtualBox también puede sincronizar el tiempo entre el sistema anfitrión y el sistema huésped, para hacer esto, inicie/active el servicio `vboxservice.service`.

Ahora, debería tener un sistema huésped de Arch Linux funcional. Tenga en cuenta que características como el uso compartido del portapapeles están desactivadas de manera predeterminada en VirtualBox, y tendrá que activarlas en la configuración para la máquina virtual si realmente quiere usarlas (por ejemplo, Configuración > General > Avanzado > Portapapeles compartido).

### Aceleracion de hardware

La aceleración de hardware se puede activar en las opciones de VirtualBox. Se sabe que el gestor de pantallas GDM rompe el soporte de aceleración de hardware. [3] Si es el caso, y tiene problemas con la aceleración de hardware, pruebe con otro gestor de pantallas (lightdm parece funcionar bien). [4] [5]

Si la aceleración por hardware no funciona como esperaba, intente cambiar la opción Graphics Controller que encontrará en la pestaña Screen en las opciones Display del menú de configuración. Parece que, según el tipo de GPU del equipo anfitrión, no todos los controladores emulados funcionarán igual de bien.

### Activar carpetas compartidas

Las carpetas compartidas se gestionan en el sistema anfitrión, en la configuración de la máquina virtual, accesible a través de la interfaz gráfica del usuario de VirtualBox, en la pestaña Shared Folders. Ahí se pueden especificar, la Ruta de la carpeta, el nombre del punto de montaje identificado por el Nombre de la carpeta , y opciones como Solo lectura, Montaje automático y Hacer permanente. Estos parámetros se pueden definir con la utilidad de línea de órdenes `VBoxManage`. Vea esto para más detalles.

Independientemente del método que utilice para montar su carpeta, todos los métodos requieren algunos pasos previos.

Para evitar este problema `/sbin/mount.vboxsf: mounting failed with the error: No such device`, asegúrese de que el módulo del kernel `vboxsf` se ha cargado adecuadamente. Esto ya ha debido ser así, ya que se activaron todos los módulos del kernel del sistema huésped previamente.

Se necesitan dos pasos adicionales para que el punto de montaje sea accesible a los usuarios sin privilegios de root:

- el paquete virtualbox-guest-utils habrá creado un grupo `vboxsf` (hecho en un paso anterior);
- su nombre de usuario debe estar en este grupo. Utilice esta orden `gpasswd -a $USER vboxsf` para añadir su nombre de usuario y esta otra `newgrp` para aplicar los cambios inmediatamente;

#### Montaje manual

Utilice la siguiente orden para montar su carpeta en el sistema huésped Arch Linux:

    # mount -t vboxsf -o gid=vboxsf shared_folder_name mount_point_on_guest_system

donde `shared_folder_name` es el nombre de la carpeta asignado por el hipervisor cuando se creó el recurso compartido.

Si el usuario no está en el grupo vboxsf, para darle acceso a nuestro punto de montaje, podemos especificar las opciones mount(8), `uid=` y `gid=` con los valores correspondientes del usuario. Estos valores se pueden obtener de la orden `id` ejecutada frente a este usuario. Por ejemplo:

    # mount -t vboxsf -o uid=1000,gid=1000 home /mnt

#### Montaje automático

Nota: El montaje automático requiere que el servicio `vboxservice.service` esté activado/iniciado.

Para que la función de montaje automático funcione debe haber marcado la casilla de montaje automático en la interfaz gráica o usado la opción `--automount` en la orden `VBoxManage sharedfolder`.

La carpeta compartida debe aparecer ahora como `/media/sf_shared_folder_name`. Si los usuarios en `media` no pueden acceder a las carpetas compartidas, verifique que `/media` tenga permisos `755` o sea propiedad del grupo `vboxsf` si usa permisos `750`. Actualmente, este no es el valor predeterminado si el directorio `/media` es creado por `vboxservice.service`.

Puede usar enlaces simbólicos si quiere tener un acceso más cómodo a dicha carpeta y ahorrarse tener que navegar hasta ese directorio, por ejemplo:

    $ ln -s /media/sf_shared_folder_name ~/my_documents

#### Montaje durante el arranque

Puede montar su directorio con fstab (Español). Sin embargo, para evitar problemas de inicio con systemd, debe añadir `comment=systemd.automount` a `/etc/fstab`. De esta manera, las carpetas compartidas serán montadas bajo demanda, solo cuando se acceda a los puntos de montaje y no durante el inicio. Esto puede evitar algunos problemas, especialmente si las aplicaciones del sistema huésped no están aún cargadas mientras systemd lee fstab y monta las particiones.

    sharedFolderName  /path/to/mntPtOnGuestMachine  vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,noauto,x-systemd.automount

- `sharedFolderName`: el valor del menú para la máquina virtual Settings > SharedFolders > Edit > FolderName. Este valor puede ser diferente del nombre de la carpeta real en equipo anfitrión. Para ver la Configuración para la máquina virtual vaya a la aplicación de VirtualBox del sistema operativo del sistema anfitrión, seleccione la máquina virtual correspondiente y haga clic en Settings.
- `/path/to/mntPtOnGuestMachine`: si no existe, este directorio debe crearse manualmente (por ejemplo, utilizando mkdir).
- `dmode`/`fmode` son permisos de directorio/archivo para directorios/archivos dentro de `/path/to/mntPtOnGuestMachine`.

A partir de 2012-08-02, mount.vboxsf no admite la opción `nofail`:

    desktop   /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0

### SSH de anfitrión a huésped

La pestaña network e la configuración de la máquina virtual contiene, en Avanzado, una herramienta para crear el reenvío de puertos. Es posible usarlo para reenviar el puerto ssh del sistema huésped `22` a un puerto del sistema anfitrión, por ejemplo `3022`:

    user@host$ ssh -p 3022 $USER@localhost

establecerá una conexión del sistema anfitrión al sistema huésped.

#### SSHFS como alternativa a la carpeta compartida

Al usar este reenvío de puertos y sshfs, es sencillo montar el sistema de archivos del sistema huésped en el sistema anfitrión:

    user@host$ sshfs -p 3022 $USER@localhost:$HOME ~/shared_folder

y luego transferir archivos entre ambos.

## Gestionar discos virtuales

Véase también VirtualBox (Español)/Tips and tricks (Español)#Importar/exportar máquinas virtuales de VirtualBox a/desde otros hipervisores.

### Formatos soportados por VirtualBox

VirtualBox es compatible con los siguientes formatos de disco virtual:

- VDI: la «Virtual Disk Image» es el propio contenedor abierto de VirtualBox utilizado por defecto al crear una máquina virtual con VirtualBox.
- VMDK: el «Virtual Machine Disk» fue desarrollado inicialmente por VMware para sus productos. La especificación fue inicialmente de código cerrado, pero ahora se ha convertido en un formato abierto que está totalmente respaldado por VirtualBox. Este formato ofrece la posibilidad de dividirse en varios archivos de 2 GB. Esta característica es especialmente útil si desea almacenar la máquina virtual en máquinas que no soportan archivos muy grandes. Otros formatos, excluyendo el formato HDD de Parallels, no proporcionan una característica equivalente.
- VHD: el «Virtual Hard Disk» es el formato utilizado por Microsoft en Windows Virtual PC y Hyper-V. Si tiene intención de utilizar cualquiera de estos productos de Microsoft, tendrá que elegir este formato.

  Sugerencia: desde Windows 7, este formato se puede montar directamente sin ninguna aplicación adicional.

- VHDX (solo lectura): esta es la versión extendida del formato de «Virtual Hard Disk» desarrollada por Microsoft, que ha sido liberado el 2012-09-04 con Hyper-V 3.0 que viene con Windows Server 2012. Esta nueva versión del formato de disco no ofrece un rendimiento mejorado (mejora, eso sí, la alineación de bloques), permite mayor tamaño de los bloques, y da soporte a journal que aporta resiliencia a los fallos de energía. VirtualBox soporta este formato en solo lectura.
- HDD (versión 2): el formato HDD es desarrollado por Parallels Inc y utilizado en sus soluciones de hipervisor como Parallels Desktop para Mac. Las nuevas versiones de este formato (es decir, 3 y 4) no son compatibles debido a la falta de documentación de este formato propietario.
  Nota: en la actualidad existe una controversia con respecto al soporte de la versión 2 del formato. Si bien el manual oficial de VirtualBox informa que solo la segunda versión del formato de archivo HDD está soportado, los colaboradores de Wikipedia informan que la primera versión puede funcionar también. Si es posible realizar algunas pruebas con la primera versión del formato HDD, la ayuda será bienvenida.
- QED: el formato «QUEMU Enhanced Disk» es un formato de archivo antiguo de QEMU, otro hipervisor de código libre y abierto. Este formato fue diseñado a partir de 2010 como una forma de ofrecer una alternativa superior a qcow2 y otros. Este formato cuenta con una trayectoria de E/S totalmente asíncrona, integridad de datos solida, respaldo de archivos y archivos dispersos. El formato QED solo se admite para la compatibilidad con máquinas virtuales creadas con versiones antiguas de QEMU.
- QCOW: el formato «QEMU Copy On Write» es el formato actual de QEMU. El formato qcow soporta compresión transparente basada en zlib y cifrado (este último tiene defectos y no es recomendable). Qcow está disponible en dos versiones: QCOW y QCOW2. El último tiende a reemplazar al primero. QCOW es en la actualidad plenamente soportado por VirtualBox. QCOW2 viene en dos revisiones: QCOW2 0.10 y QCOW2 1.1 (que es el valor por defecto cuando se crea un disco virtual con QEMU). VirtualBox no soporta este formato qcow2 (ambas revisiones se han probado).
- OVF: El «Open Virtualization Format» es un formato abierto que ha sido diseñado para la interoperabilidad y la distribución de las máquinas virtuales entre diferentes hipervisores. VirtualBox es compatible con todas las revisiones de este formato a través de la característica importar/exportar de VBoxManage pero con limitaciones conocidas.
- RAW: este es el modo cuando el disco virtual se expone directamente al disco sin ser contenida en un contenedor específico de formato de archivo. VirtualBox soporta esta característica de varias maneras: la conversión de disco RAW a un formato específico, o por clonación de un disco a RAW, o utilizando directamente un archivo VMDK que apunte a un disco físico o a un simple archivo.

### Conversión de formatos de imagen de disco

VBoxManage clonehd se puede usar para convertir entre VDI, VMDK, VHD y RAW.

    $ VBoxManage clonehd inputfile outputfile --format outputformat

Por ejemplo para convertir VDI a VMDK:

    $ VBoxManage clonehd source.vdi destination.vmdk --format VMDK

#### QCOW

VirtualBox no admite el formato de imagen de disco QCOW2 de QEMU. Para usar una imagen de disco QCOW2 con VirtualBox, por lo tanto, debe convertirla, lo que puede hacerse con la orden `qemu-img` del paquete qemu. `qemu-img` puede convertir QCOW a / desde VDI, VMDK, VHDX, RAW y varios otros formatos (que puede ver ejecutando

    $ qemu-img convert -O output_fmt inputfile outputfile

Por ejemplo, para convertir QCOW2 a VDI:

    $ qemu-img convert -O vdi source.qcow2 destination.vdi

Sugerencia: el parámetro `-p` se usa para obtener la progresión de la tarea de conversión.

Hay dos revisiones de QCOW2: 0.10 y 1.1. Puede especificar la revisión para usar con `-o compat=revision`.

### Montar discos virtuales

#### VDI

El montaje de imágenes VDI solo funciona con imágenes de tamaño fijo (también conocidas como imágenes estáticas); las imágenes dinámicas (asignación dinámica de tamaño) no son fáciles de montar.

El desplazamiento de la partición (en el VDI) es necesario, luego hay que agregar el valor `offData` a `32256` (por ejemplo, 69632 + 32256 = 101888):

    $ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"

Ahora se puede montar el almacenamiento con:

    # mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/

Para discos VDI con más particiones, también puede utilizar `losetup`:

    # losetup -o $offData -Pf

Después de esto, debería encontrar las particiones en `/dev/loop*` (por ejemplo `/dev/loop0p1`). Luego puede montarlos como de costumbre (por ejemplo, `mount mount /dev/loop0p1 /mnt/`).

También puede utilizar el script mount.vdi script that, which you can use as (install script itself to `/usr/bin/`):

    # mount -t vdi -o fstype=ext4,rw,noatime,noexec vdi_file_location /mnt/

Alternativamente, puede usar el módulo del kernel qemu que puede hacer este attrib:

    # modprobe nbd max_part=16
    # qemu-nbd -c /dev/nbd0 <storage.vdi>
    # mount /dev/nbd0p1 /mnt/dir/
    # # to unmount:
    # umount /mnt/dir/
    # qemu-nbd -d /dev/nbd0

Si los nodos de partición no se desplazan, pruebe usando `partprobe /dev/nbd0`; en otro caso, una partición vdi se puede asignar directamente a un nodo con: `qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>`.

#### VHD

Al igual que VDI, las imágenes VHD se pueden montar con el módulo nbd de QEMU:

    # modprobe nbd
    # qemu-nbd -c /dev/nbd0 storage.vhd
    # mount /dev/nbd0p1 /mnt

Para desmontar:

    # umount /mnt
    # qemu-nbd -d /dev/nbd0

### Discos virtuales compactos

La compactación de discos virtuales solo funciona con archivos `.vdi` y, básicamente, consiste en los siguientes pasos.

Arranque su máquina virtual y quite todo el espacio sobrante manualmente o mediante el uso de una herramienta de limpieza como bleachbit disponible para sistemas windows también.

Limpie el espacio libre con ceros que puede lograrse con varias herramientas:

- Si se estaba utilizando BleachBit, puede seguir usando esta utilidad para esta función, marcando la casilla System > Free disk space de la interfaz, o, en otro caso, utilizando `bleachbit -c system.free_disk_space` en la línea de intérprete de órdenes (CLI);
- En los sistemas basados en UNIX, usando `dd` o, preferiblemente dcflddAUR (vea esto para conocer las diferencias):

      # dcfldd if=/dev/zero of=/fillfile bs=4M

  Cuando `fillfile` haya alcanzado el límite de la partición, se recibirá un mensaje como `1280 blocks (5120Mb) written.dcfldd:: No space left on device`. Esto significa que todos los bloques del espacio de usuario y no reservados de la partición se llenarán con ceros. Utilice esta orden como root ya que es importante asegurarse de que todos los bloques libres han sido sobrescritos. De hecho, por defecto, al utilizar particiones con sistema de archivos ext, un porcentaje específico de bloques del sistema de archivos está reservada para el superusuario (vea el argumento `-m` en la página del manual de `mkfs.ext4` o utilice `tune2fs -l` para ver cuánto espacio está reservado para aplicaciones de root).
  Cuando el proceso antes mencionado se ha completado, puede eliminar el archivo `fillfile` creado.

- En Windows, hay dos herramientas disponibles:
  - `sdelete` de la suite Sysinternals, escriba `sdelete -s c:`, necesitará repetir la orden para cada unidad que tenga en su máquina virtual;
  - o, si se prefiere los scripts, hay una solución PowerShell, pero que aún así necesita ser repetido para todas las unidades.

        PS> ./Write-ZeroesToFreeSpace.ps1 -Root c:\ -PercentFree 0

    Nota: este script se debe ejecutar en un entorno de PowerShell con privilegios de administrador. De forma predeterminada, los scripts no se pueden ejecutar, por lo que tendrá que asegurarse que la política de ejecución esté, al menos, en `RemoteSigned` y no en `Restricted`. Esto se puede comprobar con `Get-ExecutionPolicy` y la política requerida se puede establecer con `Set-ExecutionPolicy RemoteSigned`.

Una vez que el espacio libre en el disco ha sido anulado, apague su máquina virtual.

La próxima vez que arranque su máquina virtual, es recomendable hacer una verificación del sistema de archivos.

- En los sistemas basados en UNIX, puede usar `fsck` manualmente;
  - En los sistemas GNU / Linux, y por lo tanto en Arch Linux, puede forzar una comprobación de disco en el arranque gracias a un parámetro de arranque del kernel;
- En los sistemas Windows, puede utilizar:
  - o bien, `chkdsk c: /F` donde `c:` necesita ser reemplazado por cada disco que necesita ser analizado y corregir errores;
  - o, `FsckDskAll` desde aquí, que es básicamente el mismo software que `chkdsk`, pero sin la necesidad de repetir la orden para todas las unidades;

Ahora, hay que quitar los ceros del archivo .|vdi con VBoxManage modifyhd:

    $ VBoxManage modifyhd your_disk.vdi --compact

Nota: si su máquina virtual dispone de instantáneas, es necesario aplicar la orden anterior en cada archivo `.vdi` que tenga.

### Aumentar discos virtuales

#### Procedimiento general

Si se está quedando sin espacio, debido al pequeño tamaño del disco duro que ha seleccionado al crear la máquina virtual, la solución aconsejada por el manual de VirtualBox es utilizar VBoxManage modifyhd. Sin embargo, esta orden solo funciona para los discos VDI y VHD, y solo para las variantes asignadas dinámicamente. Si desea cambiar el tamaño de un disco virtual que también es un disco de tamaño fijo, siga este arreglo que funciona bien para una máquina virtual Windows o UNIX.

En primer lugar, crear un nuevo disco virtual junto al que quiere aumentar:

    $ VBoxManage createhd -filename new.vdi --size 10000

donde el tamaño es en MiB, en este ejemplo 10000MiB ~= 10GiB, y new.vdi es el nombre del nuevo disco duro que se creará.

Nota: por defecto, esta orden utiliza el estándar de la variante de formato de archivo (correspondiente a la asignación dinámica) y, por lo tanto, no va a utilizar la misma variante de formato de archivo que la del disco virtual de origen. Si su archivo old.vdi tiene un tamaño fijo y desea mantener esta variante, agregue el parámetro `--variant Fixed`.

A continuación, el viejo disco virtual necesita ser clonado para el nuevo, lo cual puede tomar algún tiempo:

    $ VBoxManage clonehd old.vdi new.vdi --existing

Separe el viejo disco duro y adjunte uno nuevo, sustituyendo todos los argumentos en cursiva obligatoriamente, según sus características:

    $ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium none
    $ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium new.vdi --type hdd

Para obtener el nombre del controlador del almacenamiento y el número del puerto, puede utilizar la orden `VBoxManage showvminfo VM_name`. De la salida obtendrá tal resultado (lo que busca está en cursiva):

    [...]
    Storage Controller Name (0):            IDE
    Storage Controller Type (0):            PIIX4
    Storage Controller Instance Number (0): 0
    Storage Controller Max Port Count (0):  2
    Storage Controller Port Count (0):      2
    Storage Controller Bootable (0):        on
    Storage Controller Name (1):            SATA
    Storage Controller Type (1):            IntelAhci
    Storage Controller Instance Number (1): 0
    Storage Controller Max Port Count (1):  30
    Storage Controller Port Count (1):      1
    Storage Controller Bootable (1):        on
    IDE (1, 0): Empty
    SATA (0, 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704)
    [...]

Descargue la imagen de GParted live y móntela como un archivo de disco CD/DVD virtual, arranque su máquina virtual, aumente/mueva las particiones, desmonte GParted live y reinicie el sistema.

Nota: en discos GPT, al aumentar el tamaño del disco dará como resultado una copia de respaldo en la cabecera de GPT, pero dicho respaldo no se verá reflejado al final del dispositivo. GParted le preguntará si desea solucionar este problema, haga clic en Fix en ambas ocasiones. En los discos MBR, no se tiene un problema como este, ya que esta tabla de particiones no cuenta con respaldo al final del disco.

Por último, anule el registro del disco virtual de VirtualBox y elimine el archivo:

    $ VBoxManage closemedium disk old.vdi
    $ rm old.vdi

#### Aumentar el tamaño de los discos VDI

Si su disco es VDI, ejecute:

    $ VBoxManage modifyhd your_virtual_disk.vdi --resize the_new_size

Luego salte de nuevo al paso Gparted, para aumentar el tamaño de la partición en el disco virtual.

### Reemplazar un disco virtual de forma manual desde el archivo .vbox

Si piensa que la edición de un simple archivo XML es más eficaz que jugar con la interfaz gráfica del usuario o con `VBoxManage` y desea reemplazar (o añadir) un disco virtual a la máquina virtual, basta con reemplazar la GUID en el archivo de configuración .vbox correspondiente a su máquina virtual, con el archivo de ubicación y el formato que necesite:

    ArchLinux_vm.vbox

    <HardDisk uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}" location="ArchLinux_vm.vdi" format="VDI" type="Normal"/>

a continuación, en la subetiqueta `<AttachedDevice>` de `<StorageController>`, sustituya la GUID por la nueva.

    ArchLinux_vm.vbox

    <AttachedDevice type="HardDisk" port="0" device="0">
      <Image uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}"/>
    </AttachedDevice>

Nota: si no sabe el GUID de la unidad que desea agregar, puede utilizar el archivo `VBoxManage showhdinfo file`. Si ha utilizado previamente `VBoxManage clonehd` para copiar/convertir su disco virtual, esta orden debería haber emitido el GUID justo después de la copia/conversión completada. El uso de un GUID aleatorio no funciona, ya que cada UUID se almacena en el interior de cada imagen de disco.

#### Transferencia entre el anfitrión de Linux y otro sistema operativo

La información sobre la ruta a los discos duros y las instantáneas se almacena entre las etiquetas `<HardDisks> .... </HardDisks>` en el archivo con la extensión .vbox. Puede editarlos manualmente o usar este script donde necesitará cambiar solo la ruta o usar los valores predeterminados, asumiendo que .vbo está en el mismo directorio con un disco duro virtual y la carpeta de instantáneas. Se imprimirá nueva configuración a la salida estándar.

    #!/bin/bash
    NewPath="${PWD}/"
    Snapshots="Snapshots/"
    Filename="$1"

     awk -v SetPath="$NewPath" -v SnapPath="$Snapshots" '{if(index($0,"<HardDisk uuid=") != 0){A=$3;split(A,B,"=");
    L=B[2];
     gsub(/\"/,"",L);
      sub(/^.*\//,"",L);
      sub(/^.*\\/,"",L);
     if(index($3,"{") != 0){SnapS=SnapPath}else{SnapS=""};
      print $1" "$2" location="\"SetPath SnapS L"\" "$4" "$5}
    else print $0}' "$Filename"

Nota:

- Si va a preparar una máquina virtual para su uso en un sistema Windows como anfitrión, en el final de la ruta debe usar la barra invertida \ en lugar de /.
- El script detecta las instantáneas buscando `{` en el nombre del archivo.
- Para hacer que se ejecute en un nuevo equipo, deberá agregarlo primero al registro haciendo clic en Máquina -> Agregar... o usar las teclas de acceso rápido Ctrl+A y luego ir al archivo .vbox que contiene la configuración o utilizar la línea de órdenes `VBoxManage registervm filename.vbox`

### Clonar un disco virtual y asignarle un UUID nuevo

Los UUID son ampliamente utilizados por VirtualBox. Cada máquina virtual y cada disco virtual de una máquina virtual deben tener un UUID diferente. Cuando se lanza una máquina virtual en VirtualBox, este último hace un seguimiento de todos los UUID de la instancia de la máquina virtual. Consulte la `VBoxManage list` para listar los elementos registrados por VirtualBox.

Si ha clonado un disco virtual de forma manual copiando el archivo del disco virtual, tendrá que asignar un nuevo UUID a la unidad virtual clonada, si quiere utilizar el disco en la misma máquina virtual o, incluso, en otra (si esta ya ha sido abierta y, por lo tanto, registrada, con VirtualBox).

Puede utilizar esta orden para asignar un nuevo UUID a su disco virtual:

    $ VBoxManage internalcommands sethduuid /path/to/disk.vdi

Sugerencia: en el futuro, para evitar la copia del disco virtual y la asignación de un nuevo UUID a su archivo de forma manual, use `VBoxManage clonehd` en su lugar.
Nota: las órdenes anteriores soportan todos los formatos de disco virtual admitidos por VirtualBox.

## Consejos y trucos

Para una configuración avanzada, vea VirtualBox (Español)/Tips and tricks (Español).

## Solución de problemas

### Teclado y ratón bloqueados en la máquina virtual

Esto significa que su máquina virtual ha capturado la entrada de su teclado y del ratón. Basta con pulsar la tecla `Ctrl` derecho y su entrada debería volver al control de su sistema anfitrión de nuevo.

Para controlar de forma transparente su máquina virtual con el ratón de modo que este pueda pasear entre esta y el equipo anfitrión sin tener que pulsar ninguna tecla y con una integración perfecta, instale las guest additions dentro del sistema huésped. Lea los pasos para #Instalar los «Guest Additions» si su sistema huésped es Arch Linux, en otro caso, lea la ayuda oficial de VirtualBox.

### No hay opciones del sistema operativo de 64 bits para el cliente

Cuando inicia un cliente VM, y no hay opciones de 64 bits disponibles, asegúrese de que las capacidades de virtualización de su CPU (generalmente llamadas `VT-x`) estén activadas en el BIOS.

Si está utilizando un sistema Windows como anfitrión, es posible que deba desactivar Hyper-V, ya que evita que VirtualBox use VT-x. [6]

### La interfaz gráfica de VirtualBox no coincide con el tema GTK

Vea Uniform look for Qt and GTK applications para obtener información sobre la tematización de aplicaciones basadas en Qt como VirtualBox.

### No se pueden usar las teclas CTRL+ALT+Fn en la máquina virtual

Si su sistema operativo huésped es una distribución de GNU/Linux puede abrir una nueva shell TTY con `Ctrl+Alt+F2` o salir de su sesión X actual con `Ctrl+Alt+Retroceso`. No obstante, si escribe estos atajos de teclado sin ninguna adaptación, el sistema huésped no recibirá ninguna entrada y el anfitrión (si se trata de una distribución GNU/Linux, tampoco) no interpretando estas teclas de acceso directo. Para enviar `Ctrl+Alt+F2` al sistema huésped, por ejemplo, basta con pulsar «Host Key», (normalmente la tecla `Ctrl`) y `F2` simultáneamente.

### El subsistema USB no funciona

Su usuario debe estar en el grupo `vboxusers`, necesario para instalar el paquete de extensiones si desea apoyo de USB 2. Entonces será capaz de activar USB 2 en la configuración de la máquina virtual y añadir uno o varios filtros para los dispositivos a los que desee acceder desde el sistema operativo huésped.

Si `VBoxManage list usbhost` no muestra ningún dispositivo USB, incluso si se ejecuta como root, asegúrese de que no haya reglas udev antiguas (de VirtualBox 4.x) en `/etc/udev/rules.d/`. VirtualBox 5.0 instala las reglas udev en `/usr/lib/udev/rules.d/`. Puede utilizar órdenes como`pacman -Qo /usr/lib/udev/rules.d/60-vboxdrv.rules` para determinar si el archivo de reglas de udev está desactualizado.

A veces, en equipos con Linux antiguo, el subsistema USB no se detecta automáticamente lo que da el error `Could not load the Host USB Proxy service: VERR_NOT_FOUND` o la unidad USB no es visible en el equipo, incluso cuando el usuario está en el grupo vboxusers. Este problema es debido al hecho de que VirtualBox cambió de usbfs a sysfs en la versión 3.0.8. Si el sistema anfitrión no entiende este cambio, puede revertir el comportamiento definiendo la siguiente variable de entorno en cualquier archivo fuente de la shell (por ejemplo, su `~/.bashrc` si usa bash):

    ~/.bashrc

    VBOX_USB=usbfs

A continuación, asegúrese de que el entorno ha sido informado de este cambio (reconectar usb, recargar el archivo fuente manualmente, iniciar una instancia de shell o reiniciar equipo de nuevo).

También asegúrese de que su usuario es miembro del grupo `storage`.

### El módem USB no funciona en el sistema anfitrión

Si tiene un módem USB que está siendo utilizado por el sistema operativo huésped, eliminar el sistema operativo huésped, puede hacer que el sistema anfitrión no pueda utilizar el módem. Matar y reiniciar `VBoxSVC` debería solucionar este problema.

### El dispositivo USB bloquea al sistema invitado

Si conectar un dispositivo USB al huésped causa un bloqueo o cualquier otro comportamiento erróneo, pruebe cambiando la controladora del USB de USB 2 (EHCI) a USB 3 (xHCI) o viceversa.

### Acceder al puerto de serie desde el sistema huésped

Verifique su permiso para el puerto serie:

    $ ls -l /dev/ttyS*

    crw-rw---- 1 root uucp 4, 64 Feb  3 09:12 /dev/ttyS0
    crw-rw---- 1 root uucp 4, 65 Feb  3 09:12 /dev/ttyS1
    crw-rw---- 1 root uucp 4, 66 Feb  3 09:12 /dev/ttyS2
    crw-rw---- 1 root uucp 4, 67 Feb  3 09:12 /dev/ttyS3

Agregue el usuario `uucp` al grupo de usuarios.

### El sistema huésped se congela después de iniciar Xorg

Los controladores defectuosos o ausentes pueden provocar que el sistema huésped se congele después de iniciar Xorg, consulte por ejemplo [7] y [8]. Intente desactivar la aceleración 3D en Configuración > Pantalla, y compruebe que todos los controladores de Xorg están instalados.

### El modo de pantalla completa muestra la pantalla en blanco

En algunos gestores de ventanas (i3, awesome), VirtualBox tiene problemas con el modo de pantalla completa debido a la barra de superposición. Para solucionar este problema, desactive la opción «Mostrar en pantalla completa/Sin márgenes» en «Configuración de invitado > Interfaz de usuario > Barra de herramientas mini». Consulte el informe de errores de los desarrolladores para obtener más información.

### El sistema anfitrión se congela en el inicio de la máquina virtual

Posibles causas/soluciones:

- SMAP

Esta es una incompatibilidad conocida con los kernels activados para SMAP que afectan (en su mayoría) a los conjuntos de chips Intel Broadwell. Una solución a este problema es desactivar el soporte SMAP en el kernel agregando la opción `nosmap` a sus parámetros del kernel.

- Virtualización de hardware

Desactivar la virtualización de hardware (VT-x/AMD-V) puede resolver el problema.

- Varios errores de Kernel
  - Particiones montadas fuse (como ntfs) [9], [10]

En general, estos problemas se observan después de actualizar VirtualBox o el kernel de Linux. La degradación a las versiones anteriores de ellos podría resolver el problema.

### El sistema huésped Linux tiene audio lento/distorsionado

El controlador de audio AC97 dentro del kernel de Linux de vez en cuando define los ajustes del reloj de forma equivocada cuando se ejecuta dentro de VirtualBox, lo que lleva a que el audio sea demasiado lento o demasiado rápido. Para solucionar este problema, cree un archivo en `/etc/modprobe.d` con la siguiente línea:

    options snd-intel8x0 ac97_clock=48000

### El micrófono analógico no funciona

Si la entrada de audio de un micrófono analógico funciona correctamente en el sistema anfitrión, pero no parece que el sonido llegue al sistema huésped, a pesar de que el dispositivo de micrófono se detecta normalmente, instalando un servidor de sonido como PulseAudio (Español) en el sistema anfitrión puede solucionar el problema.

Si después de instalar PulseAudio (Español) el micrófono aún se niega a funcionar, la configuración de Host Audio Driver (en VirtualBox > Machine > Settings > Audio) para ALSA Audio Driver podría ayudar.

### El micrófono no funciona después de la actualización

Ha habido problemas informados sobre la entrada de sonido en las versiones 5.1.x [11]

Degradar la versión puede resolver el problema. Puede usar virtualbox-bin-5.0AUR para facilitar la degradación.

### Problemas con imágenes convertidas a ISO

Algunos formatos de imagen no se pueden convertir de forma fiable a ISO. Por ejemplo, ccd2iso ignora los archivos .ccd y .sub, lo que puede resultar en imágenes de disco con archivos rotos.

En este caso, tendrá que usar CDemu para Linux dentro de VirtualBox o cualquier otra utilidad utilizada para montar imágenes de disco.

### Error al crear la interfaz de red única del anfitrión

Asegúrese de que todos los módulos del kernel necesarios están cargados. Véase #Cargar los módulos del kernel de VirtualBox.

Si todos los módulos del kernel necesarios están cargados y aún no puede crear el adaptador solo para el anfitrión, vaya a File > Host Network Manager y haga clic en el botón Create para añadir la interfaz de red.

### Error al insertar el módulo

Cuando obtiene el siguiente error al intentar cargar módulos:

    Failed to insert 'vboxdrv': Required key not available

Firme los módulos o desactive `CONFIG_MODULE_SIG_FORCE` en la configuración de tu kernel.

### VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)

Esto puede ocurrir si una máquina virtual se cierra de forma forzosa. Ejecute la siguiente orden:

    $ VBoxManage controlvm virtual_machine_name poweroff

### «NS_ERROR_FAILURE» y ausencia de elementos del menú

Esto ocurre, a veces, cuando se selecciona el formato de disco QCOW/QCOW2/QED al crear un disco virtual nuevo.

Si encuentra este mensaje cada vez que inicia la máquina virtual:

    Failed to open a session for the virtual machine debian.
    Could not open the medium '/home/.../VirtualBox VMs/debian/debian.qcow'.
    QCow: Reading the L1 table for image '/home/.../VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF).
    VD: error VERR_EOF opening image file '/home/.../VirtualBox VMs/debian/debian.qcow' (VERR_EOF).

    Result Code:
    NS_ERROR_FAILURE (0x80004005)
    Component:
    Medium

Salga de VirtualBox, elimine todos los archivos de la nueva máquina y del archivo de configuración de VirtualBox elimine la última línea del menú `MachineRegistry` (o la máquina hostil que lo está creando):

    ~/.config/VirtualBox/VirtualBox.xml

    ...
    <MachineRegistry>
      <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/debian/debian.vbox"/>
      <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/ubuntu/ubuntu.vbox"/>
      <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/>
    </MachineRegistry>
    ...

### Arch: el script pacstrap falla

Si usó pacstrap en #Pasos para instalar Arch Linux como sistema huésped también para #Instalar los «Guest Additions» antes de realizar un primer arranque en el nuevo sistema huésped, necesita `umount -l /mnt/dev` como root antes de usar pacstrap nuevamente; Si no lo hace, se volverá inutilizable.

### OpenBSD queda inutilizable cuando las instrucciones de virtualización no están disponibles

Aunque se informa que OpenBSD funciona bien en otros hipervisores sin instrucciones de virtualización (VT-x AMD-V) activadas, una máquina virtual OpenBSD que se ejecute en VirtualBox sin estas instrucciones será inutilizable, manifestándose con un montón de fallas de segmentación. Iniciar VirtualBox con el argumento -noraw puede resolver el problema. Puede hacerlo así:

    $ VBoxSDL -norawr0 -vm name_of_OpenBSD_VM

### Anfitrión Windows: VERR_ACCESS_DENIED

Para acceder a la imagen VMDK en crudo en un sistema Windows que actúe de anfitrión, ejecute la interfaz gráfica de VirtualBox como administrador.

### Windows: «La ruta especificada no existe. Verifique la ruta y luego inténtelo nuevamente».

Este mensaje de error puede aparecer cuando se ejecuta un archivo `.exe` que requiere privilegios de administrador de una carpeta compartida en los sistemas huéspedes de Windows. [12]

Como solución alternativa, copie el archivo en la unidad virtual o use Rutas UNC (`\\vboxsvr`). Consulte [13] para obtener más información.

### Código de error 0x000000C4 de Windows 8.x

Si obtiene este código de error al iniciar, incluso si elige SO Type Win 8, pruebe activar la instrucción `CMPXCHG16B` de la CPU :

    $ vboxmanage setextradata virtual_machine_name VBoxInternal/CPUM/CMPXCHG16B 1

### Windows 8, 8.1 o 10 no se instala, no se inicia o da el error «ERR_DISK_FULL»

Actualice la configuración de la máquina virtual navegando a Settings > Storage > Controller:SATA y marque «Use Host I/O Cache».

### WinXP: la profundidad de bits no puede ser mayor que 16

Si está ejecutando a una profundidad de color de 16 bits, entonces los iconos pueden aparecer borrosos/entrecortados. Sin embargo, al intentar cambiar la profundidad del color a un nivel superior, el sistema puede restringirlo a una resolución más baja o simplemente no permitirle cambiar la profundidad en absoluto. Para solucionar este problema, ejecute `regedit` en Windows y agregue la siguiente clave al registro de la máquina virtual de Windows XP:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
    "ColorDepth"=dword:00000004

Luego actualice la profundidad de color en la ventana «propiedades del escritorio». Si no sucede nada, fuerce la pantalla para redefinirse a través de algún método (esto es, `Host+f` para redefinir/ingresar a pantalla completa).

### Windows: la pantalla parpadea si la aceleración 3D está activada

VirtualBox > 4.3.14 tiene una regresión en la que los sistemas huéspedes de Windows parpadean si tienen activada la aceleración 3D. Desde r120678 se implementó un parche para reconocer una configuración de variable de entorno, inicie VirtualBox así:

    $ CR_RENDER_FORCE_PRESENT_MAIN_THREAD=0 VirtualBox

Asegúrese de que no hay servicios de VirtualBox en ejecución. Consulte VirtualBox bug 13653.

### Sin aceleración 3D de hardware en Arch Linux huésped

El paquete virtualbox-guest-utils a partir de la versión 5.2.16-2 no contiene el archivo `VBoxEGL.so`. Esto hace que el sistema huésped de Arch Linux no tenga la aceleración 3D adecuada. Vea FS#49752.

Para resolver este problema, aplique el parche establecido en FS#49752#comment152254. Se requiere alguna solución al conjunto de parches para que funcione en la versión 5.2.16-2.

### No se puede iniciar VirtualBox en Wayland: «Segmentation fault»

Este problema generalmente es causado por Qt en Wayland, consulte FS#58761.

Lo mejor, para no afectar al resto de las aplicaciones Qt (que, generalmente, funcionan bien en Wayland), es desactivar la variable de entorno `QT_QPA_PLATFORM` en la entrada de escritorio de VirtualBox. Siga las instrucciones de Desktop entries#Modify environment variables y cambie las líneas que comienzan con:

    Exec=VirtualBox ...

a

    Exec=env -u QT_QPA_PLATFORM VirtualBox ...

Si eso no funciona, es posible que deba configurar `QT_QPA_PLATFORM` para `xcb` en su lugar:

    Exec=env QT_QPA_PLATFORM=xcb VirtualBox ...

## Problemas conocidos

### El montaje automático no funciona

El montaje automático no funciona con los paquetes de compementos huéspedes («packaged guest additions») virtualbox-guest-utils y virtualbox-guest-utils-nox a partir de la versión 6.0.0-1. Vea FS#61307.

## Véase también

- VirtualBox User Manual
- Wikipedia:VirtualBox

Categories:

- Hypervisors (Español)
- Oracle (Español)

Hidden category:

- Pages with broken package links