Esta pagina se ve mejor con JavaScript habilitado

VirtualBox FreeBSD

 ·  🎃 kr0m

VirtualBox es un conocido sistema de virtualización dentro del mundo Linux, en este artículo aprenderemos como instalarlo y configurarlo bajo FreeBSD. Cabe destacar que solo recomiendo su instalación en sistemas de escritorio ya que en servidores tenemos soluciones mucho mas idóneas como IOCage o vm-bhyve y si lo sé VirtualBox también puede instalarse sin soporte gráfico y gestionarse desde la CLI pero la experiencia resulta muy deficiente y dependiendo del hardware utilizado puede dar problemas de estabilidad.

Este artículo está basado en la guía del handbook de FreeBSD con algunas anotaciones adicionales.

Primero nos aseguramos de que nuestro micropocesador disponga de los registros Intel-VT/AMD-v, en mi caso se trata de un Intel Core i7-6700K.

grep VT-x /var/run/dmesg.boot

  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID

Se ha dado el caso en el que la CPU contaba con dichos registros, la opción estaba habilitada en la BIOS pero le presentaba de forma incorrecta dicha información al sistema operativo:

grep VT-x /var/run/dmesg.boot

  VT-x: (disabled in BIOS) HLT,PAUSE
  VT-x: (disabled in BIOS) HLT,PAUSE

En tal caso se solventó actualizando la BIOS a la última versión.

Ahora que estamos seguros de que nuestra CPU es compatible procedemos con la instalación de VirtualBox:

pkg install virtualbox-ose

Cargamos el módulo del kernel:

kldload vboxdrv

Nos aseguramos de que en el próximo arranque sea cargado de nuevo:

vi /boot/loader.conf

vboxdrv_load="YES"

Habilitamos el servicio y lo arrancamos:

sysrc vboxnet_enable=“YES”
service vboxnet start

Añadimos el usuario con el que administraremos las máquinas virtuales, al grupo vboxusers:

pw groupmod vboxusers -m kr0m

Si vamos a utilizar bridges en la red de VirtualBox debemos darle permisos al grupo vboxusers:

chown root:vboxusers /dev/vboxnetctl
chmod 0660 /dev/vboxnetctl

Para que los permisos sean perpetuos debemos configurar devfs del siguiente modo:

vi /etc/devfs.conf

own     vboxnetctl root:vboxusers
perm    vboxnetctl 0660

Si además queremos que las máquinas virtuales tengan acceso a los puertos USB del equipo padre debemos añadir el usuario al grupo operator:

pw groupmod operator -m kr0m

Y definir las siguientes reglas devfs:

vi /etc/devfs.rules

[system=10]
add path 'usb/*' mode 0660 group operator

NOTA: Destacar que los permisos de devfs se han configurado en el fichero devfs.conf mientras que las reglas en devfs.rules.

Le indicamos al sistema operativo que cargue nuestras reglas devfs:

sysrc devfs_system_ruleset=“system”
service devfs restart

Puede que algunas máquinas virtuales tengan problema adquiriendo ip por DHCP, para que esto funcione debemos habilitar la opción Settings -> Network -> Adapter1 -> Promiscous mode: Allow all

Como apunte final debemos tener en cuenta otros sistemas de virtualización como CBSD o similar, si se carga el módulo vmm las máquinas virtuales de VirtualBox inician pero se quedan en una ventana en negro, no llega a aparecer ni la BIOS ni el boot del sistema.

Si te ha gustado el artículo puedes invitarme a un RedBull aquí