Luego de compilar VirtualBox en FreeBSD es necesario cargar los módulos del kernel vboxnetflt y vboxnetadp a fin de poder utilizar redes host-only. Para ello simplemente se deben agregar las siguientes líneas en el archivo /boot/loader.conf, que se encarga de indicarle al kernel qué módulos deben ser cargados de forma automática al iniciar el sistema:

# VirtualBox
vboxdrv_load="YES"
vboxnetflt_load="YES"
vboxnetadp_load="YES"

El problema es que esta configuración no funciona. Al intentar iniciar una máquina virtual con un adaptador en modo host-only, falla con el siguiente error en el log (/home/emi/VirtualBox\ VMs/Devuan/Logs/VBox.log):

00:00:00.596664 ERROR [COM]: aRC=NS_ERROR_FAILURE (0x80004005) aIID={8ab7c520-2442-4b66-8d74-4ff1e195d2b6} aComponent={Console} aText={Failed to open/create the internal network 'HostInterfaceNetworking-vboxnet0' (VERR_SUPDRV_COMPONENT_NOT_FOUND)}, preserve=false
00:00:00.612613 Power up failed (vrc=VERR_SUPDRV_COMPONENT_NOT_FOUND, rc=NS_ERROR_FAILURE (0X80004005))

Esto se debe a una condición de carrera entre los módulos del kernel de VirtualBox. Es necesario cargar los módulos en orden. Primero debe cargarse vboxdvr y luego los restantes.



Para solucionar este inconveniente se debe optar por la siguiente configuración.

En el archivo /boot/loader.conf cargar sólo el módulo vboxdvr:

# VirtualBox
vboxdrv_load="YES"

Luego es posible agregar las siguientes líneas dentro del archivo /etc/rc.local para que los módulos vboxnetflt y vboxnetadp sean cargados de forma diferida (una vez que haya sido cargado vboxdvr):

# VirtualBox
/sbin/kldload vboxnetflt
/sbin/kldload vboxnetadp

Además, habilitar el servicio "vboxnet" en el archivo /etc/rc.conf, el cual puede ser útil para habilitar/deshabilitar estos módulos:

# VirtualBox
vboxnet_enable="YES"

De esta forma, los módulos vboxnetflt y vboxnetadp serán cargados lo suficientemente tarde para que todo funcione correctamente al iniciar el host FreeBSD.


Tal vez pueda interesarte


Compartí este artículo