La críptica sintaxis de VirtualBox en modo headless.

O de como virtualizar un windows en un servidor linux que no tiene monitor, usando VirtualBox y la consola de comandos.

Ya va como la cuarta o quinta vez que me encuentro en la misma situación:

  • Necesito un windows server corriendo en una máquina virtual.
  • No tengo ni monitor ni teclado ni mouse en el servidor que hará de anfitrión (host).
  • No recuerdo la sintaxis ni poniendo mi mejor esfuerzo.
  • Termino recurriendo a san Google que todo lo sabe.

Lo que sigue, es un «ayuda-memoria» para no tener que Googlear la próxima vez, esperando que le sea de utilidad a alguien mas y sin entrar en mucho detalle por que los comandos son autoexplicativos si se los piensa un poco:

VBoxManage createvm -name windows -register
VBoxManage modifyvm windows -memory «256MB» -acpi on -boot1 dvd -nic1 nat
VBoxManage createvdi -filename windows -size 10000 -register
VBoxManage modifyvm windows -hda windows.vdi
VBoxManage registerimage dvd /basurero/cosas_que_mejor_perder_que_encontrar/windows.iso
VBoxManage modifyvm windows -dvd /basurero/cosas_que_mejor_perder_que_encontrar/windows.iso

Encendiendo la máquina virtual con terminal server escuchando en el puerto 7777:

VBoxHeadless -startvm windows -p 7777

Mapeando/reenviando el puerto 3389 (port forwarding) desde la máquina host hasta la máquina guest para poder acceder por terminal server desde un PC remoto:

VBoxManage setextradata windows “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ts/HostPort” 3389

VBoxManage setextradata windows “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ts/GuestPort” 3389

VBoxManage setextradata windows “VBoxInternal/Devices/pcnet/0/LUN#0/Config/ts/Protocol” TCP

¡Pero si es coser y cantar!

¡Un aplauso para los de virtualbox, que no lo podían haber hecho mas facil de memorizar, che!