Recientemente he escrito un post sobre Virtualbox. El artículo explica como realizar ciertas tareas de virtualbox directamente en consola. El artículo original lo podeis encontrar aquí.
Lo comparto con vosotros aquí también:
Virtualbox dispone de un interprete de comandos que permite la creación de maquinas virtuales directamente por consola. Para crear una maquina lo haremos como sigue.
Creamos el directorio donde se guardarán todos los fitcheros de la VM.
mkdir /home/user/VirtualBox\ VMs/VboxCLI
Crear disco
Para la creación de un disco de 10Gb utilitzaremos la siguiente orden:
vboxmanage createhd --size 10000 --format vdi --filename /home/user/VirtualBox\ VMs/VboxCLI/VboxCLI-disk1.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: b421697b-5f5d-4056-98c9-0cd0219b013a
Mostrar tipos SO
Para mostrar los tipos de sistemas operativos disponibles utilitzaremos el siguiente comando:
vboxmanage list ostypes
Crear VM
Para la creación de una VM utilitzaremos el siguiente comando:
vboxmanage createvm --name VboxCLI --register --ostype Ubuntu_64
Virtual machine 'VboxCLI' is created and registered.
UUID: 5a89bddc-d7b0-4e08-b6cb-8e49dd7b2206
Settings file: '/home/user/VirtualBox VMs/VboxCLI/VboxCLI.vbox'
Añadir Controlador SATA
IMPORTANTE!: Si queremos instalar WindowsXP o alguna versión antigua de Linux que no tenga los drivers SATA mejor instalar un controlador IDE en la máquina o no podremos arrancar la máquina con esta configuración.
Una vez creada la máquina añadimos un adaptador SATA.
vboxmanage storagectl VboxCLI --name "Sata Controller" --add sata --controller "IntelAHCI"
Añadir Disco Duro
Una vez tengamos añadido el controlador SATA añadiremos un disco duro Sata al controlador.
vboxmanage storageattach VboxCLI --storagectl "Sata Controller" --port 0 --device 0 --type hdd --medium VboxCLI-disk1.vdi
Añadir Memoria
Especificamos la memoria que necesitamos.
vboxmanage modifyvm VboxCLI --memory 1024
Añadir Tarjeta de Red
Añadimos un adaptador de red y lo configuramos como bridged, para que la VM este en la misma red que el host.
vboxmanage modifyvm VboxCLI --nic1 bridged --bridgeadapter1 eth0
Añadir DVD y cargar ISO
Añadimos un dvd y una iso para poder empezar con la instalación mas tarde.
vboxmanage storageattach VboxCLI --storagectl "Sata Controller" --port 1 --device 0 --type dvddrive --medium /home/user/Descargas/ubuntu-12.04.1-server-amd64.iso
Mostrar Configuracion VM
Para mostrar la configuración de la máquina que estamos configurando, utilizaremos el siguiente comando:
vboxmanage showvminfo VboxCLI
Name: VboxCLI
Guest OS: Ubuntu (64 bit)
UUID: d37c6445-de02-4793-a9f4-06148103918f
Config file: /home/user/VirtualBox VMs/VboxCLI/VboxCLI.vbox
Snapshot folder: /home/user/VirtualBox VMs/VboxCLI/Snapshots
Log folder: /home/user/VirtualBox VMs/VboxCLI/Logs
Hardware UUID: d37c6445-de02-4793-a9f4-06148103918f
Memory size: 1024MB
Page Fusion: off
VRAM size: 8MB
CPU exec cap: 100%
HPET: off
Chipset: piix3
Firmware: BIOS
Number of CPUs: 1
Synthetic Cpu: off
CPUID overrides: None
Boot menu mode: message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI: on
IOAPIC: on
PAE: on
Time offset: 0 ms
RTC: local time
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging: on
Large Pages: off
VT-x VPID: on
State: powered off (since 2013-02-05T13:21:05.000000000)
Monitor count: 1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address:
Teleporter Password:
Storage Controller Name (0): Sata Controller
Storage Controller Type (0): IntelAhci
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0): 30
Storage Controller Port Count (0): 30
Storage Controller Bootable (0): on
Sata Controller (0, 0): /home/user/VirtualBox VMs/VboxCLI/VboxCLI-disk1.vdi (UUID: b421697b-5f5d-4056-98c9-0cd0219b013a)
Sata Controller (1, 0): /home/user/Descargas/ubuntu-12.04.1-server-amd64.iso (UUID: 36ff046c-69a8-4352-b604-356f177af2ab)
NIC 1: MAC: 080027FD9D5A, Attachment: Bridged Interface 'eth0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny
NIC 2: disabled
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
Pointing Device: PS/2 Mouse
Keyboard Device: PS/2 Keyboard
UART 1: disabled
UART 2: disabled
Audio: disabled
Clipboard Mode: Bidirectional
VRDE: disabled
USB: disabled
USB Device Filters:
<none>
Available remote USB devices:
<none>
Currently Attached USB Devices:
<none>
Shared folders: <none>
VRDE Connection: not active
Clients so far: 0
Guest:
Configured memory balloon size: 0 MB
OS type: Ubuntu_64
Additions run level: 0
Guest Facilities:
No active facilities.
Redimensionar Memoria
Para redimensionar la memoria RAM de la VM utilizaremos:
vboxmanage modifyvm VboxCLI --memory 512
Configurar VRDE
VRDE, permite connectarnos a las VMs utilitzando el Remote Desktop de Virtualbox. El último comando habilita multiples conexiones. Para habilitar vrde utilizaremos la siguiemte configuración:
vboxmanage modifyvm VboxCLI --vrde on
vboxmanage modifyvm VboxCLI --vrdeaddress localhost
vboxmanage modifyvm VboxCLI --vrdeport 3001
vboxmanage modifyvm VboxCLI --vrdemulticon on
Instalar EXT-PACK
La instalación del "extension pack" permite añadir las seiguientes características a la VM: USB 2.0, Virtualbox RDP y PXE para tarjetas Intel.
vboxmanage -v
4.1.18_Ubuntur78361
wget -c http://download.virtualbox.org/virtualbox/4.1.18/Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack
vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.18-78361.vbox-extpack
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack".
Arrancar una VM headless
Para iniciar una máquina en background sin ningún elemento visible en el foreground.
vboxmanage startvm VboxCLI --type headless
Waiting for VM "VboxCLI" to power on...
VM "VboxCLI" has been successfully started.
Arrancar VM Headless (TROUBLESHOUTING)
Lo mismo que antes pero nos devuelve el prompt. Útil para troubleshouting.
VBoxHeadless -s VboxCLI -v on
Oracle VM VirtualBox Headless Interface 4.1.18_Ubuntu
(C) 2008-2012 Oracle Corporation
All rights reserved.
VRDE server is listening on port 3001.
Conectar por rdesktop a la maquina
Para conectar a una máquina headless nos aseguramos que este escuchando en el puerto y utilitzamos rdesktop.
netstat -tanep
...
tcp 0 0 127.0.0.1:3001 0.0.0.0:* ESCUCHAR 1000 17286 -
...
rdesktop 127.0.0.1:3001
Mostrar VMs
Mostramos las máquines que hay registradas.
vboxmanage list vms
"AddDiskWithoutReboot-LVM" {d7b517cd-4136-40d2-a94b-a81f08657b87}
"VboxCLI" {d37c6445-de02-4793-a9f4-06148103918f}
Apagar VM
vboxmanage controlvm VboxCLI poweroff
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Mostrar las VMs encedidas
Muestra las maquinas con el estado en "Running".
vboxmanage list runningvms
"VboxCLI" {d37c6445-de02-4793-a9f4-06148103918f}
Crear Snapshot
Para la creación de un snapshot utilzaremos:
vboxmanage snapshot VboxCLI take VboxCLI-snap01
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Restaurar Snapshot
Para restaurar un snapshot utilizaremos:
vboxmanage snapshot VboxCLI restore VboxCLI-snap01
Restoring snapshot f5c0273d-ce47-426e-b4bd-f1f5c1c84d2c
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Bibliografia
http://www.perkin.org.uk/posts/create-virtualbox-vm-from-the-command-line.html