Skip to content

Instantly share code, notes, and snippets.

@neverkas
Last active July 2, 2019 04:39
Show Gist options
  • Save neverkas/f9ce1a098b7108de6813925a75ddce12 to your computer and use it in GitHub Desktop.
Save neverkas/f9ce1a098b7108de6813925a75ddce12 to your computer and use it in GitHub Desktop.
Crear (VM) Maquina Virtual via terminal

Descargar compiladores viejos

Cambiar en el enlace la version que necesitas https://www.virtualbox.org/wiki/Download_Old_Builds_5_1

Comandos utiles

vboxmanage modifyvm nombreMaquinaVirtual --natpf3 "guestssh,tcp,127.0.0.1,2222,,22" # modificar mientras está apagada

vboxmanage controlvm nombreMaquinaVirtual natpf3 "guestssh,tcp,127.0.0.1,2222,,22" # modificar mientras se ejecuta

vboxheadless -s nombreMaquinaVirtual # correr servidor

VBoxManage controlvm "testvm" poweroff # apagarla

VBoxManage showvminfo "testvm" # buscar si existe

VBoxManage list vms # listarlas

VBoxManage list runningvms # listar cuales se estan ejecutando

rdesktop -a 16 -N localhost:3389 # conectarse a la terminal

vboxmanage list extpacks # listar extensiones

vboxmanage showvminfo programming | grep NIC modifyvm programming --natpf1 "ssh,tcp,127.0.0.1,5422,,,22" vboxmanage modifyvm programming --natpf1 "SSH,tcp,127.0.0.1,2522,10.0.2.15,22"

sudo usermod -a -G vboxusers unNombreUsuario #agregar usuario

Desinstalar la extension

vboxmanage extpack uninstall "Oracle VM VirtualBox Extension Pack"

Posibles errores

1. No aparece la conexion vrde server escuchando puerto 3389

Posible solución

$vboxmanage modifyvm vmtest5 --vrde on

2. No permite arrancar via terminal

$ vboxmanage starvm nombreMaquinaVirtual

# esto ejecuta con entorno gráfico, y el mensaje es el siguiente
this kernel requires the following features not present on the cpu

Posible solución

$ VboxManage modifyvm nombreVM --pae on

3. No me deja conectar al VRDE Server via remota con rdesktop

El servidor aparece:

$ vboxheadless -s nombreMaquinaVirtual

# y al intentar conectarse via remota en otra terminal, aparece lo sig.:
webSocketsHandshake: invalid client header

En el cliente muestra:

$ rdesktop localhost
# 
Autoselected keyboard map en-gb
ERROR: Connection closed

Posible solución:

  1. Descargar e instalar la extension pack de Virtualbox (que sea la misma versin que Virtualbox)
  2. Ingresar lo siguiente en la terminal $ VBoxManage setproperty vrdeextpack "Oracle VM VirtualBox Extension Pack

Recursos

https://code-maven.com/virtualbox-host-only-network-ssh-to-remote-machine http://xmodulo.com/how-to-create-and-start-virtualbox-vm-without-gui.html https://help.github.com/en/articles/basic-writing-and-formatting-syntax https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet

#!/bin/bash
# verifico que estoy pasando como parametro el nombre de la maquina virtual
if [ ! $1 ]
then
echo "Error: falta pasar por argumento el nombre de la maquina virtual"
else
# configuraciones
NOMBRE_MAQUINA_VIRTUAL=$1 # primer argumento, nombre de la maquina virtual
CAPACIDAD_MEMORIA=1024 # en Mbytes
CAPACIDAD_DISCO=10000 # en Mbytes
DIRECTORIO_MAQUINAS_VIRTUALES="~/VirtualBox VMs"
RUTA_IMAGEN_UBUNTU="$HOME/iso/ubuntu-12.04.3-desktop-i386.iso"
#RUTA_IMAGEN_UBUNTU="$HOME/iso/ubuntu-12.04.1-server-i386.iso"
#RUTA_IMAGEN_UBUNTU="/iso/ubuntu-12.04.4-desktop-amd64.iso"
# wget https://download.virtualbox.org/virtualbox/5.1.38/Oracle_VM_VirtualBox_Extension_Pack-5.1.38.vbox-extpack
VERSION_VIRTUALBOX="5.1.38"
LINK_DESCARGA_VIRTUAL_BOX="https://download.virtualbox.org/virtualbox/${VERION_VIRTUALBOX}/Oracle_VM_VirtualBox_Extension_Pack-${VERION_VIRTUALBOX}.vbox-extpack"
# verifico si ya existe una maquina virtual, si es asi la corro
#if [ -d "${DIRECTORIO_MAQUINAS_VIRTUALES}/${NOMBRE_MAQUINA_VIRTUAL}" ]
#then
# detengo si ya esta corriendo
#vboxmanage startvm $NOMBRE_MAQUINA_VIRTUAL --type emergencystop
# corro la vm
#VBoxHeadless --startvm $NOMBRE_MAQUINA_VIRTUAL &
# sino existe la maquina virtual la creo y configuro
#else
#cd /tmp # accedo a una carpeta temporal
#wget $LINK_DESCARGA_VIRTUAL_BOX # descargo la extensión
#sudo VBoxManage extpack install ./${VERSION_VIRTUAL_BOX} # e instalo
# creo la vm y la registro
VBoxManage createvm --name ${NOMBRE_MAQUINA_VIRTUAL} --register --ostype Ubuntu
#le asigno la capacidad de memoria virtual
#VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --memory ${CAPACIDAD_MEMORIA} --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0 --ostype Ubuntu
VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --memory ${CAPACIDAD_MEMORIA}
VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --acpi on --boot1 dvd
#vboxmanage modifyvm $VM_NAME --ioapic on #(?)
#VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --nic1 bridged --bridgeadapter1 eth0
# 4 NUEVAS CONFIGURACIONES
# nuevas configuraciones (averiguar mas de vrde server, pae, nic1 nat, natpf1 guestssh, ..)
VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --nic1 bridged --bridgeadapter1 eth0
#VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --nic1 nat
VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --natpf1 "ssh,tcp,,4422,,22"
VBoxManage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --pae on
vboxmanage modifyvm ${NOMBRE_MAQUINA_VIRTUAL} --vrde on
#asigno la capacidad en disco a utilizar
VBoxManage createvdi --filename "${DIRECTORIO_MAQUINAS_VIRTUALES}/${NOMBRE_MAQUINA_VIRTUAL}/${NOMBRE_MAQUINA_VIRTUAL}-disk01.vdi" --size ${CAPACIDAD_DISCO}
#le agrego el uso de dispositivos
VBoxManage storagectl ${NOMBRE_MAQUINA_VIRTUAL} --name "IDE Controller" --add ide
#
VBoxManage storageattach ${NOMBRE_MAQUINA_VIRTUAL} --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "${DIRECTORIO_MAQUINAS_VIRTUALES}/${NOMBRE_MAQUINA_VIRTUAL}/${NOMBRE_MAQUINA_VIRTUAL}-disk01.vdi"
#
VBoxManage storageattach ${NOMBRE_MAQUINA_VIRTUAL} --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium ${RUTA_IMAGEN_UBUNTU}
#vboxmanage storageattach ${NOMBRE_MAQUINA_VIRTUAL} --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium $UBUNTU_ISO_PATH
#fi
fi
export PATH=$HOME/bin/myscripts
#
# https://www.shellscript.sh/first.html
# https://medium.com/devnetwork/how-to-create-your-own-custom-terminal-commands-c5008782a78e
# https://linuxize.com/post/bash-check-if-file-exists/
# https://www.thegeekstuff.com/2009/09/the-ultimate-wget-download-guide-with-15-awesome-examples/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment