IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Virtual Box

De SergiTurWiki
Share/Save/Bookmark
(S'ha redirigit des de: Vboxsf)
Dreceres ràpides: navegació, cerca
Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: Administració dels sistemes informàtics de l'IES, DissenyXarxesLinux, LinuxAdministracioAvancada
Fitxers: Algunes pàgines del document Transparències tema 4 (Pàgines 89-96)
Repositori SVN: http://anonymous@svn.projectes.lafarga.cat/svn/iescopernic/Administracio_SI_IESCopernic, https://svn.projectes.lafarga.cat/svn/iescopernic/XarxesLocals
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas
Logo de Virtual Box

Consulteu:

ASI IES/VirtualBox

Per tal d'obtenir un script per automatitzar la instal·lació de Virtual Box a Ubuntu i a Debian. També podreu veure com obtenir Virtual Appliances d'IPCOP i Ubuntu Server.

Contingut

Versions

Virtual Box 4.x

Extension packs

Abans de res podeu comprovar si ja ho teniu instal·lat amb:

$ VBoxManage list extpacks
Extension Packs: 0

Des de la versió 4.0 existeixen les anomenades extension packs que proporcionen certa funcionalitat com remote desktop connection support (VRDP).

Aneu a:

http://www.virtualbox.org/wiki/Downloads

I busqueu:

VirtualBox 4.0 Oracle VM VirtualBox Extension Pack
Support for USB 2.0 devices, VirtualBox RDP and PXE boot for Intel cards

Baixeu i instal·leu la extensió amb (no copieu directament! Adapteu al vostre cas):

$ cd /tmp
$ wget http://download.virtualbox.org/virtualbox/4.0.0/Oracle_VM_VirtualBox_Extension_Pack-4.0.0-69151.vbox-extpack
$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.0-69151.vbox-extpack

Si us dona l'error:

VBoxManage: error: Failed to install "/home/sergi/Oracle_VM_VirtualBox_Extension_Pack-4.1.2-73507.vbox-extpack": The installer failed with exit code 
127: Error executing command as another user: No authentication agent was found

Es degut a que intenta demanar-vos la clau d'usuari de sudo/root per entorn gràfic però no estem en entorn gràfic. Executeu:

$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.0.0-69151.vbox-extpack
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully installed "Oracle VM VirtualBox Extension Pack"

Ara comproveu que esta instal·lat:

 $ VBoxManage list extpacks
NOTA: L'Extension pack és necessari per tal que funcionin coses com el VRDP

Instal·lació

Instal·lació des dels repositoris de Virtual Box. Exemple: Jaunty Jackalope

La instal·lació des del repositoris de Virtual Box es fa seguint els passos de la web de virtual Box:

http://www.virtualbox.org/wiki/Linux_Downloads

Script:

Descàrrega i execució de l'script:

$ wget -N --http-user=anonymous --http-password= http://svn.projectes.lafarga.cat/svn/iescopernic/Administracio_SI_IESCopernic/VirtualBox/InstallVirtualBox.sh
$ sudo chmod +x InstallVirtualBox.sh
$ ./InstallVirtualBox.sh 

Explicació:

$ gksu gedit /etc/apt/sources.list

Afegir al final del fitxer:

deb http://download.virtualbox.org/virtualbox/debian jaunty non-free

I executar:

$ wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install virtualbox-2.2

Podeu automatitzar-ho amb el següent script:

#!/bin/bash
#Obtenir la versió d'Ubuntu
ubuntu_release=`lsb_release -c | awk '{ print $2}'`
#Comprovar si ja existeix la línia a sources.list
virtualbox_in_sources=`cat /etc/apt/sources.list | grep "deb http://download.virtualbox.org/virtualbox/debian $ubuntu_release  non-free"` 

#Només afegim la línia si no existeix
if [ -z "$virtualbox_in_sources" ]; then
  sudo cp /etc/apt/sources.list /etc/apt/sources.list.orig.virtualbox
  echo "deb http://download.virtualbox.org/virtualbox/debian jaunty non-free" | sudo tee -a /etc/apt/sources.list
fi

#Instal·lar la clau de virtual box
sudo apt-get install wget
wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
# Actualitzar apt                                                                  
sudo apt-get update
sudo apt-get install virtualbox-2.2

Explicació:

Hem d'afegir un repositori al fitxer /etc/apt/sources.list

$ gksu gedit /etc/apt/sources.list

I afegim la línia:

deb http://www.virtualbox.org/debian jaunty non-free

I salvem.

Per evitar els missatges de seguretat cal afegir la clau d'innotek:

$ wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -

La petjada digital de la clau és:

6947 BD50 026A E8C8 9AC4  09FD 390E C3FF 927C CC73 

Ara ja podem per l'update:

$ sudo apt-get update

I la instal·lació:

$ sudo apt-get install virtualbox2.2

Pels addictes als entorns gràfics podeu seguir les passes de Synaptic#Afegint_repositoris_extres_amb_Synaptic.

Instal·lació en versions antigues d'Ubuntu i instal·lació a mà (obsolet)

Passos previs

Virtual Box de la mateixa forma que altres sistemes de virtualització necessita afegir/compilar un modul al kernel. Si durant el procés d'instal·lació us dona un error, haureu d'instal·lar lse capçaleres (headers) del vostre nucli:

$ uname -a
Linux ali15 2.6.18-3-686 #1 SMP Mon Dec 4 16:41:14 UTC 2006 i686 GNU/Linux

Us dona la versió del kernel que esteu utilitzant. Ara podeu instal·lar les capçaleres que corresponguin:

$ sudo apt-get install linux-headers-2.6.18-3-686

Una forma equivalent de fer lo anterior és executar la comanda:

$ sudo apt-get install linux-headers-`uname -r`

Instal·lació a Hardy

Seguiu els passos de la web:

http://www.virtualbox.org/wiki/Linux_Downloads

Instal·lació a Feisty

Hem d'afegir un repositori al fitxer /etc/apt/sources.list

$ gksu gedit /etc/apt/sources.list

I afegim la línia:

deb http://www.virtualbox.org/debian feisty non-free

I salvem.

Per evitar els missatges de seguretat cal afegir la clau d'innotek:

$ wget http://www.virtualbox.org/debian/innotek.asc
$ sudo apt-key add innotek.asc

La petjada digital de la clau és:

6947 BD50 026A E8C8 9AC4  09FD 390E C3FF 927C CC73 

Ara ja podem per l'update:

$ sudo apt-get update

I la instal·lació:

$ sudo apt-get install virtualbox

Pels addictes als entorns gràfics podeu seguir les passes de Synaptic#Afegint_repositoris_extres_amb_Synaptic.

Instal·lació a Gutsy

NOTA: aquest apartat només és manté per raons històriques. Consulteu l'apartat  instal·lació

Es poden seguir el passos de la secció anterior canviant Feisty per Gutsy.

A Gutsy podem trobar una versió anterior de Virtual Box als repositoris d'Ubuntu:

$ sudo apt-get install virtualbox-ose

Preguntes durant la instal·lació i postconfiguració

Durant la instal·lació sens faran algunes preguntes (normalment les opcions per defecte són les correctes):

Virtualbox1.png
Virtualbox2.png
Virtualbox.png

I finalment per tal de poder utilitzar VirtualBox ens hem d'afegir al grup vboxusers:

Consultem els grups als que estem:

$ groups
sergi adm dialout cdrom floppy audio dip video plugdev scanner lpadmin admin netdev powerdev

Si cal ens afegim al grup:

$ sudo usermod -a -G vboxusers sergi

Per tal que el canvis tinguin efecte cal tornar a iniciar l'entorn gràfic.

Altres sistemes operatius

Consulteu la web: http://www.virtualbox.org/wiki/Downloads.

Instal·lació des de el codi font

TODO

Instal·lació de màquines virtuals

Ubuntu Lucid 10.10

Per arrancar el CD cal posar F6

Marcar amb enter:

noapic
acpi=off

Sortir amb esc i instal·lar normalment.

Comandes

Podem veure quines són les comandes executant

$ sudo dpkg -L VirtualBox | grep bin
/usr/share/virtualbox/sdk/bin
/usr/share/virtualbox/sdk/bin/xpidl
/usr/bin
/usr/bin/VBox
/usr/bin/VBoxTAP
/usr/bin/VBoxTunctl
/usr/bin/VBoxManage
/usr/bin/VBoxSDL
/usr/bin/VBoxDeleteIF
/usr/bin/VirtualBox
/usr/bin/VBoxVRDP
/usr/bin/VBoxAddIF

Passar de vmware a Virtual Box

Recursos:


Instal·lar GuestAdditions

Ubuntu 10.10

Cal muntar le CD i executar l'aplicació per a Linux i la plataforma que pertoqui.

Si teniu un error consulteu:

http://lifehacker.com/#!5633811/fix-virtualboxs-guest-additions-in-ubuntu-1010

Per tenir una possible solució o també podeu evitar l'error si teniu una versió de Virtual Box superior a la 3.2.10

Ubuntu Server

Anteriors versions

NOTA: Des del menú Dispositius de la màquina virtual hi ha una opció que posa Instal·la les Guest Additions que us muntarà el CD automàticament i només us faltarà executar l'script per al vostre sistema operatiu i arquitectura de CPU.
$ mkdir p
$ sudo mount -o loop /usr/share/virtualbox/VBoxGuestAdditions.iso p
$ cd p/
$ ls
AMD_PCnet  AUTORUN.INF  driver  gina  os2  VBoxGuestAdditions.exe  VBoxLinuxAdditions.run
$ sudo ./VBoxLinuxAdditions.run 
Verifying archive integrity... All good.
Uncompressing VirtualBox 1.5.2 Guest Additions for Linux  installation..............................................  
..................................................................................................
VirtualBox 1.5.2 Guest Additions installation
Building the VirtualBox Guest Additions kernel module...
Building the shared folder support kernel module...
Installing the VirtualBox Guest Additions...

Successfully installed the VirtualBox Guest Additions.
You must restart your guest system in order to complete the installation.

I tornem a iniciar el sistema:

$ sudo reboot

Virtual Box Headless

VBoxManage modifyvm <vmname> --dvd /usr/share/virtualbox/VBoxGuestAdditions.iso

Arrancada de xarxa

Virtual box és pot utilitzar per fer proves de "terminals ximples" o sistemes d'arrancada de xarxa. Durant l'arrancada de la màquina virtual es pot accedir al menú d'arrancada amb la tecla F12.

També als pàrametres de la màquina virtual, al menú General, pestanya Avançat, es pot escollir l'ordre d'arrancada de la màquina virtual.

La tecla host acostuma a ser la tecla Alt Gr (alt de la dreta del teclat). Algunes combinacions poden ser útils per a fer proves d'arrancada de xarxa. Per exemple:

Host+R  --> Reinicia
F12 --> menú d'arrancada
l   --> Escollir arrancada des de la xarxa

Canvis permanents en l'arrancada de xarxa

Als paràmetres (botó Paràmetres) de la màquina virtual, aneu a la secció General, a la pestanya Avançat i modifiqueu l'ordre d'inici.

Configuració de la xarxa

NOTA: Aquesta secció segurament ja és obsoleta (--acacha 13:05, 12 maig 2009 (UTC)). Les noves versions de VirtualBox ja fan atuomàticament totes les configuracions de  
xarxa que abans és feien manualment. La opció de Host Bridge ja s'implementa directament

El control de la xarxa és fa amb un servei tipus SystemV. Podem saber si la xarxa de Virtual box esta activa amb:

$ sudo /etc/init.d/vboxnet status
VirtualBox host networking is loaded.

Creació de Host interfaces i bridging

NOTA IMPORTANT: A la versió 2.1 ja no cal configurar bridges ni res especial per fer que la màquina virtual formi part de 
la mateixa xarxa que la màquina host. S'activa l'opció a la configuració de xarxa de la màquina i llestos.

Primer cal crear un bridge seguint les instruccions de Creació d'un bridge.

Un cop tenim el bridge executem la comanda:

$ sudo VBoxAddIF vbox0 <user> br0

on a <user> em de posar el nom de l'usuari que vol utilitzar la interfície de xarxa. Per exemple:

$ sudo VBoxAddIF vbox0 sergi br0

VirtualBox host networking interface creation utility, version 1.5.2
(C) 2005-2007 innotek GmbH
All rights reserved.

Creating the permanent host networking interface "vbox0" for user sergi.

Ara la comanda ifconfig ens indicarà que tenim 4 interfícies:

$ ifconfig
br0       Link encap:Ethernet  HWaddr 00:30:1B:B7:CD:B6  
          inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::230:1bff:feb7:cdb6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:137 errors:0 dropped:0 overruns:0 frame:0
          TX packets:146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:64328 (62.8 KB)  TX bytes:22214 (21.6 KB)

eth0      Link encap:Ethernet  HWaddr 00:30:1B:B7:CD:B6  
          inet6 addr: fe80::230:1bff:feb7:cdb6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20788 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14681 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:23664360 (22.5 MB)  TX bytes:1995733 (1.9 MB)
          Interrupt:20 
  
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:368 errors:0 dropped:0 overruns:0 frame:0
          TX packets:368 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:31896 (31.1 KB)  TX bytes:31896 (31.1 KB)
 
vbox0     Link encap:Ethernet  HWaddr 00:FF:91:2F:41:A3  
          inet6 addr: fe80::2ff:91ff:fe2f:41a3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:8 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Ara hem de configurar la nova interfície al fitxer /etc/network/interfaces:

$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto br0
iface br0 inet static
 address 192.168.1.2
 netmask 255.255.255.0
 gateway 192.168.1.1
 bridge_ports eth0

auto eth0
iface eth0 inet manual

auto vbox0
iface vbox0 inet manual
tunctl_user sergi

Tornem a iniciar la xarxa:

$ sudo /etc/init.d/networking restart

Només queda indicar a la secció Network de la configuració de la màquina virtual (Settings) que volem utilitzar la interfície vbox0:

VirtualBoxNetwork1.png

Per veure un exemple d'ús dels bridges amb Virtual Box podeu consultar la secció IPCOP virtualitzat amb Virtual Box de l'article IPCOP.

Recursos:

Creació automàtica de les interfícies a l'inici de la màquina virtual

Primer de tot cal tenir instal·lats els paquets:

bridge-utils uml-utilities

Ho podem fer amb:

$ sudo apt-get install bridge-utils uml-utilities

Podem crear dos scripts per automatitzar el procés:

  • setuptap.sh
  • cleanuptap.sh
NOTA Una opció es crear-los a la mateixa carpeta on tenim la configuració de la màquina virtual. L'exemple de més abaix esta fet per a la màquina virtual [[[IPCOP]]]-

Creem el fitxer ~/.VirtualBox/Machines/IPCOP/setuptap.sh:

#!/bin/bash
#!/bin/bash
# Create an new TAP interface for the user ’sergi’ and remember its name.
interface=`/usr/bin/VBoxTunctl -b -u sergi`

#Change permissions to /dev/net/tun
/bin/chmod 666 /dev/net/tun

# If for some reason the interface could not be created, return 1 to
# tell this to VirtualBox.
if [ -z "$interface" ]; then
exit 1
fi
# Write the name of the interface to the standard output.
echo $interface
# Bring up the interface.
/sbin/ifconfig $interface up
#Create Bridge
/usr/sbin/brctl addbr br0
/sbin/ifconfig eth0 0.0.0.0 promisc
/usr/sbin/brctl addif br0 eth0
dhclient br0
# And add it to the bridge.
/usr/sbin/brctl addif br0 $interface


El fem executable:

$ sudo chmod +x ~/.VirtualBox/Machines/IPCOP/setuptap.sh

Ara fem l'script cleanup.sh. Creem el fitxer ~/.VirtualBox/Machines/IPCOP/cleanuptap.sh

#!/bin/bash
# Remove the interface from the bridge.  The second script parameter is
# the interface name.
/usr/sbin/brctl delif br0 $2

/sbin/ifconfig br0 down

/usr/sbin/brctl delbr br0  

dhclient eth0
 

# And use VBoxTunctl to remove the interface.
VBoxTunctl -d $2

#Change permissions to /dev/net/tun
/bin/chmod 660 /dev/net/tun
/bin/chown root:vboxusers /dev/net/tun

Li donem permisos d'execució

 $ sudo chmod +x ~/.VirtualBox/Machines/IPCOP/cleanuptap.sh

I afegim les comandes:

gksu ~/.VirtualBox/Machines/IPCOP/setuptap.sh

i

gksu ~/.VirtualBox/Machines/IPCOP/cleanuptap.sh

Al camp de text Setup Aplicattion de la secció Network de la configuració (Settings) de la màquina virtual.

IPCOPVirtualBoxAutomatic.png

I ja podem iniciar la màquina virtual.

Scripts alternatius

Extrets de la web:

Up

sudo tunctl -t tap1 -u USERNAME
sudo chown root.vboxusers /dev/net/tun
sudo chmod g+rw /dev/net/tun
sudo brctl addbr br0
sudo ifconfig eth0 0.0.0.0 promisc
sudo brctl addif br0 eth0
sudo dhclient br0
sudo brctl addif br0 tap1
sudo ifconfig tap1 up

down

sudo ifconfig tap1 down
sudo ifconfig br0 down
sudo brctl delbr br0
sudo ifconfig eth0 HOST_IP netmask NETMASK up
sudo route add default gw GATEWAY eth0

Fitxer /etc/network/interfaces

auto lo
iface lo inet loopback

# L'interface réseau physique de la machine
auto eth0
iface eth0 inet manual  

# L'interface qui sera utilisée par VirtualBox
auto tap0
iface tap0 inet manual
tunctl_user <username>  

auto tap1
iface tap1 inet manual
tunctl_user <username> 

# Le bridge, permettant au réseau d’être accessible aux deux interfaces réseaux.
auto br0
iface br0 inet static
address 192.168.1.100
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.254
post-up chmod ugo+rw /dev/net/tun
bridge-ports eth0 tap0 tap1
bridge-ageing 7200
bridge-fd 0 

'Recursos:

/dev/net/tun

Per tal de fer permanent el canvi de permisos del fitxer /dev/net/tun, em de modificar les regles de udev.Editem el fitxer /etc/udev/rules.d/20-names.rules:

$ sudo joe /etc/udev/rules.d/20-names.rules

I modifiquem la línia:

KERNEL=="tun",                          NAME="net/%k"

per:

KERNEL=="tun",                          NAME="net/%k",  GROUP="vboxusers",     MODE="0660"

Recursos:

Muntar discs durs VDI

Mida variable

Recursos:

Mida fixa

Recursos:


Instal·lació de Guest Additions

Instal·lació a Debian

Aneu al menú

Dispositivos/Instal·lar Guest Additions ("Aplicaciones de Huesped")

Us muntara un CD amb les Guest Additions. El fitxer d'instal·lació en Linux és:

VBoxLinuxAdditions.run

Abans d'executar-lo cal instal·lar les eines de compilació i capçaleres del nucli:

$ sudo apt-get install build-essential linux-headers-`uname -r`

Un cop instal·lat podeu anar al CD i executar el fitxer .run

$ su
# cd /media/cdrom0
# ./VBoxLinuxAdditions.run

Instal·lació a Ubuntu

No ho he provat però molt segurament és igual o molt similar als passos seguits a Debian.

Màquines Virtuals

IPCOP

$ cd
$ mkdir -p MaquinesVirtuals/IPCOP
$ cd MaquinesVirtuals/IPCOP/
$ wget -N --http-user=anonymous --http-password= http://svn.projectes.lafarga.cat/svn/iescopernic/Administracio_SI_IESCopernic/IPCOP/IPCOP.ovf
$ wget -N --http-user=anonymous --http-password= http://svn.projectes.lafarga.cat/svn/iescopernic/Administracio_SI_IESCopernic/IPCOP/IPCOP1.vmdk

Ara executeu VirtualBox:

$ VirtualBox

I aneu al menú Fitxer > Importa una aplicació virtual... (Ctrl+E)

Escolliu el fitxer .ovf que ens acabem de baixar. Aneu seguint l'assistent per tal d'importar la màquina virtual.

Assegureu-vos que la màquina virtual te 2 targetes de xarxa, la primera en Adaptador Pont i la segona en NAT.

Ara ja podeu executar la màquina.

Usuari de línia de comandes:

  • Usuari: root
  • Paraula de pas: cursice

Usuari interfície web:

  • Usuari: admin
  • Paraula de pas: cursice

Per modificar la configuració de la xarxa executeu:

# setup

Consulteu també l'article IPCOP.

Ubuntu Server

Consulteu:

ASI_IES/VirtualBox#Importaci.C3.B3_de_la_m.C3.A0quina_virtual_Ubuntu_Server

Virtual Box des de la línia de comandes

VBoxHeadless. Executar VirtualBox en servidors sense entorn gràfic

NOTA: Hay que habilitar el VRDP expresamente!!! Se hace con el siguiente comando:
$ VBoxManage modifyvm "VM name" --vrde on

Es pot executar una màquina en un servidor sense entorn gràfic amb:

$ VBoxHeadless -startvm Windows
Oracle VM VirtualBox Headless Interface 3.2.12
(C) 2008-2010 Oracle Corporation
All rights reserved.

Listening on port 3389.

O el que és el mateix:

$ VBoxManage startvm "VM name" --type headless

Podeu consultar la llista de màquines virtuals amb VBoxManage:

$  VBoxManage list vms
...
"Windows" {296c5127-c872-446c-b724-fe9e261502e0}

Un cop executada la màquina us hi podeu connectar utilitzant el protocol RDP. Des de una màquina remota podeu utilitzat tsclient:

$ tsclient

Utilitzeu RDPv5 i poseu la IP de la màquina base i no pas la de la màquina virtual.

NOTA: El port de RDP és l'estàndard: 3389

Podeu controlar la màquina amb l'ordre controlvm. Per exemple per aturar-la:

$ VBoxManage controlvm Windows poweroff

VBoxSDC

Crea les màquines virtuals fixes (al menys és el procés que es veu amb top al crear un disc d'aquest tipus)

Teleporting

Permet moure una màquina virtual d'un servidor a un altre (d'un Virtual Box local a un de remot) sense aturar l'execució de la màquina Virtual.

VboxManage

L'ordre VBoxManage permet gestionar Virtual Box des de la línia d'ordres. Podeu consultar l'ajuda amb:

$ VBoxManage | more
Oracle VM VirtualBox Command Line Management Interface Version 3.2.12
(C) 2005-2010 Oracle Corporation
All rights reserved. 

Usage:

VBoxManage [-v|--version]    print version number and exit
VBoxManage [-q|--nologo] ... suppress the logo

VBoxManage list [--long|-l] vms|runningvms|ostypes|hostdvds|hostfloppies|
                            bridgedifs|hostonlyifs|dhcpservers|hostinfo|
                            hostcpuids|hddbackends|hdds|dvds|floppies|
                            usbhost|usbfilters|systemproperties

VBoxManage showvminfo       <uuid>|<name> [--details] [--statistics]
                            [--machinereadable]
VBoxManage showvminfo       <uuid>|<name> --log <idx>

VBoxManage registervm       <filename>
...

Com podeu veure sempre es mostra el que anomenen logo:

Oracle VM VirtualBox Command Line Management Interface Version 3.2.12
(C) 2005-2010 Oracle Corporation
All rights reserved. 

Podeu no mostrar-lo amb l'opció quiet (-q)

NOTA: No hi ha manual (ordre man) per a VBoxManage

createvm

modifyvm

modifyhd

TODO

$ VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

createhd

storagectl

Storageattach

Mostrar les màquines virtuals existents per a l'usuari

$ VBoxManage -q list vms
NOTA: Només es mostren les màquines virtual registrades

Modificant la configuració d'una màquina Virtual

Per exemple modificar la memòria

$ VBoxManage modifyvm prova -memory “512MB”

Podeu veure l'ajuda amb:

$ VBoxManage modifyvm | more
...
Usage:

VBoxManage modifyvm         <uuid|name>
                            [--name <name>]
                            [--ostype <ostype>]
                            [--memory <memorysize in MB>]
                            [--pagefusion on|off]
                            [--vram <vramsize in MB>]
                            [--acpi on|off]
                            [--ioapic on|off]
                            [--pae on|off]
                            [--hpet on|off]
                            [--hwvirtex on|off]
                            [--hwvirtexexcl on|off]
                            [--nestedpaging on|off]
                            [--largepages on|off]
                            [--vtxvpid on|off]
                            [--synthcpu on|off]
                            [--cpuidset <leaf> <eax> <ebx> <ecx> <edx>]
                            [--cpuidremove <leaf>]
                            [--cpuidremoveall]
                            [--hardwareuuid <uuid>]
                            [--cpus <number>]
                            [--cpuhotplug on|off]
                            [--plugcpu <id>]
                            [--unplugcpu <id>]
                            [--rtcuseutc on|off]
                            [--monitorcount <number>]
                            [--accelerate3d on|off]
                            [--accelerate2dvideo on|off]
                            [--firmware bios|efi|efi32|efi64]
                            [--bioslogofadein on|off]
                            [--bioslogofadeout on|off]
                            [--bioslogodisplaytime <msec>]
                            [--bioslogoimagepath <imagepath>]
                            [--biosbootmenu disabled|menuonly|messageandmenu]
                            [--biossystemtimeoffset <msec>]
                            [--biospxedebug on|off]
                            [--boot<1-4> none|floppy|dvd|disk|net>]
                            [--nic<1-N> none|null|nat|bridged|intnet|hostonly|
                                        vde]
                            [--nictype<1-N> Am79C970A|Am79C973|
                                            82540EM|82543GC|82545EM|
                                            virtio]
                            [--cableconnected<1-N> on|off]
                            [--nictrace<1-N> on|off]
                            [--nictracefile<1-N> <filename>]
                            [--nicspeed<1-N> <kbps>]
                            [--nicbootprio<1-N> <priority>]
                            [--bridgeadapter<1-N> none|<devicename>]
                            [--hostonlyadapter<1-N> none|<devicename>]
                            [--intnet<1-N> <network name>]
                            [--natnet<1-N> <network>|default]
                            [--vdenet<1-N> <network>|default]
                            [--natsettings<1-N> [<mtu>],[<socksnd>],
                                                [<sockrcv>],[<tcpsnd>],
                                                [<tcprcv>]]
                            [--natpf<1-N> [<rulename>],tcp|udp,[<hostip>],
                                          <hostport>,[<guestip>],<guestport>]
                            [--natpf<1-N> delete <rulename>]
                            [--nattftpprefix<1-N> <prefix>]
                            [--nattftpfile<1-N> <file>]
                            [--nattftpserver<1-N> <ip>]
                            [--natdnspassdomain<1-N> on|off]
                            [--natdnsproxy<1-N> on|off]
                            [--natdnshostresolver<1-N> on|off]
                            [--nataliasmode<1-N> default|[log],[proxyonly],
                                                         [sameports]]
                            [--macaddress<1-N> auto|<mac>]
                            [--mouse ps2|usb|usbtablet
                            [--keyboard ps2|usb
                            [--uart<1-N> off|<I/O base> <IRQ>]
                            [--uartmode<1-N> disconnected|
                                             server <pipe>|
                                             client <pipe>|
                                             file <file>|
                                             <devicename>]
                            [--guestmemoryballoon <balloonsize in MB>]
                            [--gueststatisticsinterval <seconds>]
                            [--audio none|null|oss|alsa|pulse]
                            [--audiocontroller ac97|sb16]
                            [--clipboard disabled|hosttoguest|guesttohost|
                                         bidirectional]
                            [--vrdp on|off]
                            [--vrdpport default|<ports>]
                            [--vrdpaddress <host>]
                            [--vrdpauthtype null|external|guest]
                            [--vrdpmulticon on|off]
                            [--vrdpreusecon on|off]
                            [--vrdpvideochannel on|off]
                            [--vrdpvideochannelquality <percent>]
                            [--usb on|off]
                            [--usbehci on|off]
                            [--snapshotfolder default|<path>]
                            [--teleporter on|off]
                            [--teleporterport <port>]
                            [--teleporteraddress <address|empty>
                            [--teleporterpassword <password>]

Podeu consultar l'explicació de cada setting al manual de Virtual Box:

Crear un disc dur

Els dos únics paràmetres obligatoris són el nom i la mida:

$ VBoxManage -q createhd --filename hd --size 4000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 091fb508-891e-4bb0-adc8-2f156cfe5994

Hem creat un disc dur amb els següents valors (la majoria valors per defecte)

  • Nom: hd. El fitxer es guarda a /home/sergi/.VirtualBox/HardDisks/hd.vdi
  • Mida: 4Gb
  • Format: VDI (també es poden crear vmdk i altres formats, vegeu l'ajuda)
  • State: created
  • Type: normal (vegeu els altres tipus més endavant)
IMPORTANT: Si no poseu l'opció remember aleshores no podreu utilitzar aquest disc dur des de l'entorn gràfic o en qualsevol ús futur:
$ VBoxManage -q createhd --filename hd2 --size 4000 --remember
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 344080fa-11fe-4323-8b3e-57ded31e773b

Podeu consultar l'ajuda amb:

$ VBoxManage -q createhd
...
Usage:

VBoxManage createhd         --filename <filename>
                            --size <megabytes>
                            [--format VDI|VMDK|VHD] (default: VDI)
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--type normal|writethrough|
                                    shareable] (default: normal)
                            [--comment <comment>]
                            [--remember]


Tipus de discs durs:

NOTA: For compatibility with earlier versions of VirtualBox, the "createvdi" command is also supported and mapped internally to the "createhd" command.

Obrir un medi (abans registrar un disc dur)

NOTA: Abans les ordres eren registerimage i unregisterimage [1]

Imagineu que creeu un disc dur i no afegiu l'opció --remember:

$ VBoxManage -q createhd --filename hd10 --size 1000
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Disk image created. UUID: 005c99b4-1e41-433c-98d1-5e8bb8013bca

Veureu que no apareix a la llista de discs durs registrats

$ VBoxManage -q list hdds

UUID:        3951d518-fc8e-4f7f-9ca5-3379ad1308c1
Parent UUID: base
Format:      VDI
Location:    /home/sergi/.VirtualBox/HardDisks/NewHardDisk1.vdi
State:       created
Type:        normal

UUID:        344080fa-11fe-4323-8b3e-57ded31e773b
Parent UUID: base
Format:      VDI
Location:    /home/sergi/.VirtualBox/HardDisks/hd2.vdi
State:       created
Type:        normal

Podeu utilitzar openmedium (abans registerimage) per registrar el disc dur:

$ VBoxManage openmedium disk /home/sergi/.VirtualBox/HardDisks/hd10.vdi 

Ara ja apareixereu a la llista:

$ VBoxManage list hdds
...
UUID:        005c99b4-1e41-433c-98d1-5e8bb8013bca
Parent UUID: base
Format:      VDI
Location:    /home/sergi/.VirtualBox/HardDisks/hd10.vdi
State:       created
Type:        normal

L'ajuda de l'ordre és:

$ VBoxManage openmedium
...
Usage:

VBoxManage openmedium       disk|dvd|floppy <filename>
                            [--type normal|immutable|writethrough|
                                    shareable] (disk only)
                            [--uuid <uuid>]
                            [--parentuuid <uuid>] (disk only)

Mostrar els discs durs

$ VBoxManage -q list hdds
UUID:        3951d518-fc8e-4f7f-9ca5-3379ad1308c1
Parent UUID: base
Format:      VDI
Location:    /home/sergi/.VirtualBox/HardDisks/NewHardDisk1.vdi
State:       created
Type:        normal
NOTA: Només es mostren els discs durs recordats (opció remember durant la creació del disc dur)

Modificar els discs durs existents

L'ajuda és la següent:

$ VBoxManage modifyhd

Usage:

VBoxManage modifyhd         <uuid>|<filename>
                            [--type normal|writethrough|immutable|shareable]
                            [--autoreset on|off]
                            [--compact]

Important

Es pot canviar una interfície de xarxa de NAT a bridge sense aturar la màquina?

TODO:

A few extra options are available with controlvm that do not directly affect the VM's running state:

   *
     The setlinkstate<1-N> operation connects or disconnects virtual network cables from their network interfaces.
   *
     nic<1-N> null|nat|bridged|intnet|hostonly: With this, you can set, for each of the VM's virtual network cards, what type of networking should be available. They can be not connected to the host (null), use network address translation (nat), bridged networking (bridged) or communicate with other virtual machines using internal networking (intnet) or host-only networking (hostonly). These options correspond to the modes which are described in detail in the section called “Introduction to networking modes”.
   *
     usbattach and usbdettach make host USB devices visible to the virtual machine on the fly, without the need for creating filters first. The USB devices can be specified by UUID (unique identifier) or by address on the host system.
     You can use VBoxManage list usbhost to locate this information.
   *
     vrdp on|off lets you enable or disable the built-in VRDP server.
   *
     vrdpport default|<ports> changes the port or a range of ports that the VRDP server can bind to; "default" or "0" means port 3389, the standard port for RDP. For details, see the description for the --vrdpport option in the section called “Serial port, audio, clipboard, VRDP and USB settings”.
   *
     setvideomodehint requests that the guest system change to a particular video mode. This requires that the Guest Additions be installed, and will not work for all guest systems.
   *
     The setcredentials operation is used for remote logons in Windows guests. For details, please refer to the section called “Automated guest logons”.
   *
     The guestmemoryballoon operation changes the size of the guest memory balloon, that is, memory allocated by the VirtualBox Guest Additions from the guest operating system and returned to the hypervisor for re-use by other virtual machines. This must be specified in megabytes. For details, see the section called “Memory ballooning”.

Associar una màquina Virtual amb un imatge o disc dur. storagectl / storageattach

Per exemple per afegir el disc dur amb nom hd com a disc sata a la màquina virtual prova2:

$ VBoxManage storagectl prova2 --name hd --add sata

L'ajuda és:

VBoxManage storagectl       <uuid|vmname>
                           --name <name>
                           [--add <ide/sata/scsi/floppy>]
                           [--controller <LsiLogic/BusLogic/IntelAhci/PIIX3/
                                          PIIX4/ICH6/I8207>]
                           [--sataideemulation<1-4> <1-30>]
                           [--sataportcount <1-30>]
                           [--hostiocache on|off]
                           [--remove]

Treu un disc dur/medi d'un màquina virtual

$ VBoxManage storageattach UbuntuGosa --storagectl "Mòdul SATA" --port 0 --device 0 --type hdd --medium none

La informació del nom del storagectl, port i device la podeu consultar amb:

$ VBoxManage showvminfo UbuntuGosa

Desvincular un disc d'una imatge, desregistra-lo i tornar-lo a registrar i vincular-lo

NOTA: Script d'un alumne
#!bin/bash
#scrip per a restablir la configuració inicial de una màquina
#situar-nos al directori /media/extra_NTFS, que el directori on es troben les dues màquines 
cd /media/extra_NTFS
#aturar la màquina UbuntuGosaInicial, en cas que estes en marxa
VBoxManage controlvm UbuntuGosaInicial poweroff 
#aturar la màquina UbuntuGosa
VBoxManage controlvm UbuntuGosa poweroff 
#eliminar la màquina UbuntuGosa
rm -fr /media/extra_NTFS/UbuntuGosa.vdi
#clonar la màquina UbuntuGosa amb el nom de l'altra màquina UbuntuGosa per sobreecriure-la
VBoxManage clonevdi /media/extra_NTFS/UbuntuGosaInicial.vdi /media/extra_NTFS/UbuntuGosa.vdi
#posar en marxa la màquina UbuntuGosa

$ VBoxManage storageattach UbuntuGosa --storagectl "Mòdul SATA" --port 0 --device 0 --type hdd --medium none
$ VBoxManage closemedium disk 03060f71-4595-40bf-a498-03a49fd8baba
$ VBoxManage openmedium disk /media/extra_NTFS/UbuntuGosa.vdi 
$ VBoxManage storageattach UbuntuGosa --storagectl "Mòdul SATA" --port 0 --device 0 --type hdd --medium /media/extra_NTFS/UbuntuGosa.vdi 
$ VBoxManage startvm UbuntuGosa

Controlar màquines virtual en execució. controlvm

Mostrar la informació d'una màquina virtual

$ VBoxManage -q showvminfo prova | more
Name:            prova
Guest OS:        Other/Unknown
UUID:            98d001f8-1162-4146-9598-a0b62a550bb5
Config file:     /home/sergi/.VirtualBox/Machines/prova/prova.xml
Hardware UUID:   98d001f8-1162-4146-9598-a0b62a550bb5
Memory size:     128MB
Page Fusion:     off
VRAM size:       8MB
HPET:            off
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:          off
PAE:             off
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 2010-12-08T11:22:45.675000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address: 
Teleporter Password: 
NIC 1:           disabled
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
VRDP:            disabled
USB:             disabled

USB Device Filters:

<none>

Shared folders:  <none>  

Guest:

Configured memory balloon size:      0 MB

Crear una màquina virtual

L'ordre és:

$ VBoxManage -q createvm --name prova1
Virtual machine 'prova1' is created.
UUID: dacbf605-32b3-4437-a9af-f8a832364121
Settings file: '/home/sergi/.VirtualBox/Machines/prova1/prova1.xml'

Com podeu veure cada màquina té un identificador únic (Universal Unique IDentifier o UUID). La configuració de la màquina es guarda al fitxer XML:

/home/sergi/.VirtualBox/Machines/prova1/prova1.xml
IMPORTANT: Amb l'anterior procés hem crear la màquina virtual però no la hem registra. Si no la registreu no apareixerà a la llista de màquines virtuals ni tampoc a l'interfície gràfica de VirtualBox

Podeu registrar una màquina virtual ja creada:

 VBoxManage registervm /home/sergi/.VirtualBox/Machines/prov1/prova1.xml 

O registrar-la durant la creació:

 $ VBoxManage -q createvm --name prova2 --register

Executar una màquina virtual

$ VBoxManage startvm prova

Clonar un disc dur canviant el UUID

$ VBoxManage disc_dur_original.vdi copia.vdi

Redireccionar ports

TODO:

Redirigir els ports

Per a facilitar encara més la feina podeu fer que el vostre ordinador redirigeixi alguns ports en concret cap a la màquina virtual, de manera que per exemple si teclegeu http://localhost:8000/guifi vagi a la màquina virtual i us retorni la pàgina de guifi. Per a fer-ho heu de teclegar en un terminal (instruccions per a Linux, per a Mac i Windows hauria de ser semblant però no ho puc assegurar):

NOTA: Substituïu NOM_MAQUINA_VIRTUAL per el nom que li heu donat a la màquina virtual. Heu d'executar aquestes ordres amb la màquina virtual completament apagada, sinó no us funcionaran.
# VBoxManage setextradata "NOM_MAQUINA_VIRTUAL" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttpd/HostPort" 8000
# VBoxManage setextradata "NOM_MAQUINA_VIRTUAL" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttpd/GuestPort" 80
# VBoxManage setextradata "NOM_MAQUINA_VIRTUAL" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttpd/Protocol" TCP

També podeu fer el mateix amb el port 22 (ssh):

# VBoxManage setextradata "NOM_MAQUINA_VIRTUAL" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
# VBoxManage setextradata "NOM_MAQUINA_VIRTUAL" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
# VBoxManage setextradata "NOM_MAQUINA_VIRTUAL" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP

Un cop fet això podreu accedir a http://localhost:8000/ i us retornarà el "It works!" de l'Apache i també podreu fer un ssh a la màquina virtual (ssh -p 2222 root@localhost)

Crear més de quatre interfícies de xarxa

$ VBoxManage modifyvm routeros --nic5 bridged --bridgeadapter5 eth0
$ VBoxManage modifyvm routeros --nic6 bridged --bridgeadapter6 eth0

Crear una imatge de virtualbox que utilitzi directament una partició o disc del sistema (raw acces)

$ VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/WinHD.vmdk -rawdisk /dev/sda -partitions 2 -relative -register

After registering, you can assign the newly created image to a virtual machine with

$ VBoxManage modifyvm WindowsXP -hda /path/to/file.vmdk

Recursos:

Convertir una partició existent en una imatge de Virtual Box

Amb VBoxManage podem convertir un imatge de disc (de les creades per eines de l'estil de dd) amb:

VBoxManage convertfromraw imagefile.img DiscDurVirtualBox.vdi




  1. Run the MergeIDE utility as mentioned above on existing windows machine.
  2. Shut down windows machine.
  3. Either pull the drive from the windows machine or copy the data with a low level image tool (like dd) to a USB drive or other removable media. If making an image, DO NOT image just the partition, this will not work!
  4. Use VBoxMange convertfromfaw to convert the image or to copy from the drive you pulled from the windows machine.
        1. If you are converting from the image, the syntax is just
           VBoxManage convertfromraw ImageFile.dd OutputFile.vdi
        2. If you are converting from the drive, you need to use
           cat /dev/sdg | VBoxManage stdin OutPutFile.vdi NUMBEROFBYTES
           Note, if you use fdisk -l in Linux you can see how many bytes each drive is to supply this parameter. Example:
           # fdisk -l /dev/sda
           Disk /dev/sda: 1500.3 GB, 1500301910016 bytes
           To determine the same information on a Mac OS X host, you do
           # diskutil list
           # diskutil info /dev/disk0
           to list available disks and to show the number of bytes under Total Size:. 
  5. Then use the media manager in VirtualBox to add the newly converted drive.
  6. Make a new virtual machine, using the drive you just added with the media manager.
  7. Once it is created, go in and turn on “Enable IO APIC”, select the # of processors you want etc.
  8. Try to boot the new virtual machine. It may “just work”, or you may get a BSOD. If it just works install guest additions and you are done. Depending on your license you might need to re-activate Windows.
  9. If it did not work, and you got a BSOD. Shutdown the virtual machine and boot up from a windows CD. Go through until you get to the select a partition, select the existing partition, and choose “repair”. It will basically reinstall windows and configure it for your new hardware (virtual hardware).
 10. Reinstall patches (Service packs) and updates.
 11. Install guest additions 


Recursos:

export

Aquesta comanda permet exportar una màquina virtual

$ VBoxManage export --vsys 0 --product "Ubuntu Server 9.04" --producturl "http://acacha.dyndns.org/mediawiki/index.php/ASI_IES
/VirtualBox#Importaci.C3.B3_de_la_m.C3.A0quina_virtual_Ubuntu_Server" --vendor "Sergi Tur" --vendorurl "http://acacha.dyndns.org/mediawiki" 
--version "1.0" UbuntuServer_904_cursos_original -o /home/sergi/ExportVirtualBox/UbuntuServer_904_cursos.ovf

VirtualBox Command Line Management Interface Version 2.2.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

0%...10%...

import

Aquesta comanda permet importar una màquina virtual.

Es pot fer una simulació d'un importació amb:

$ VBoxManage import UbuntuServer_904_cursos.ovf --dry-run

O executar la importació real amb

VBoxManage import UbuntuServer_904_cursos.ovf

convertdd

Permet convertir una imatge dd a vdi:

$ VBoxManage convertdd raw.img .VirtualBox/VDI/MyImage.fix.vdi
VirtualBox Command Line Management Interface Version 1.5.0
(C) 2005-2007 innotek GmbH
All rights reserved. 

Converting VDI: from DD image file="/home/ingo/raw.img" to file=".VirtualBox/VDI/MyImage.fix.vdi"...
Creating fixed image with size 10010165760Bytes (9547MB)...

Si utilitzem una imatge creada per nosaltres des zero:

$  VBoxManage convertdd /home/sergi/ProvesDiscs/images/1GB.img ~/VDI/1GB.vdi
VirtualBox Command Line Management Interface Version 3.0.10
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.  

Converting from raw image file="/home/sergi/ProvesDiscs/images/1GB.img" to file="/home/sergi/VDI/1GB.vdi"...
Creating dynamic image with size 1048576000 bytes (1000MB)...

Exemple de creació d'una màquina virtual Windows en un Ubuntu Server 10.10

Utilitzarem la versió 4.1 de Virtualbox (--acacha 07:36, 19 set 2011 (UTC)). Algunes ordres han canviat respecte a versions més antigues de Virtual Box.

Suposem que teniu instal·lat VirtualBox 4.1 a un servidor Ubuntu Server 10.10 i que teniu les extension packs instal·lades.

Exemple amb controladors IDE

$ VBoxManage createvm --name "WindowsXP" --register
$ VBoxManage modifyvm "WindowsXP" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth1
$ VBoxManage createhd --filename WindowsXP.vdi --size 80000
$ VBoxManage storagectl "WindowsXP" --name "IDE Controller" --add ide
$ VBoxManage storageattach "WindowsXP" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium WindowsXP.vdi
$ VBoxManage storageattach "WindowsXP" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/usuari/WindowsXP.iso

Exemple amb controladors SATA tant al dics dur com al CD


$ VBoxManage createvm --name "WindowsXP" --register
$ VBoxManage modifyvm "WindowsXP" --memory 512 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth1
$ VBoxManage createhd --filename WindowsXP.vdi --size 80000
$ VBoxManage storagectl "WindowsXP" --name "SATA Controller" --add sata
$ VBoxManage storageattach "WindowsXP" --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium WindowsXP.vdi
$ VBoxManage storageattach "WindowsXP" --storagectl "SATA Controller" --port 1 --device 0 --type dvddrive --medium /home/usuari/WindowsXP.iso

On hem creat una màquina virtual de Windows amb un disc de 8G, l'arrancada amb CD/DVD (llegeix el fitxer /home/usuari/WindowsXP.iso, on heu de canviar el path cap al lloc on tingueu la vostre ISO). També em configurat la xarxa en mode bridge a l'interfície eth1.

Per provar la màquina segui els passos de:

 VBoxHeadless. Executar VirtualBox en servidors sense entorn gràfic 

Us ha d'aparèixer l'instal·lador de Windows. Seguiu els passos i quan acabau l'instal·lador ja tindreu un Windows XP

NOTA: Per mi és útil tenir un Windows XP virtual al servidor per a fer proves de client. Per exemple, al servidor hi ha un un servidor Samba i m'interessa poder provar un client Windows en aquest servidor per fer proves d'afegir al domini o similars remotament sense necessitat d'estar a la xarxa
IMPORTANT: Si teniu problemes amb el ratolí (us apareixen dos cursors!) cal que instal·leu les Guest Additions. De fet com que tindreu problemes amb el cursor inclús durant la instal·lació de Windows, és a dir, abans que pugueu instal·lar les guest additions, el millor és preparar la màquina virtual Windows en un entorn gràfic i fer una copia a un servidor

Recursos:

VRDP - VirtualBox Remote Desktop Protocol

TODO

Carpetes compartides

Aquest sistema permet que es pugui accedir a una carpeta de l'amfitrió des de la màquina virtual. Les carpetes compartides es veuen a les màquines virtuals com a recursos de xarxa Windows. A Linux també si pot accedir utilitzant samba.

Per "muntar" les carpetes compartides des de Windows:

net use x: \\vboxsvr\share

Des de Linux s'utilitzar l'ordre mount i el sistema de fitxers vboxsf:

NOTA: Les dos comandes anteriors s'executen a les màquines virtuals un cop l'amfitrió a compartir un carpeta compartida.

Vegem un exemple complet amb Linux. Per crear una carpeta compartida cal anar a les propietats de la màquina. Cal crear una carpeta compartida i posar-li:

  • Nom: és el nom amb el que apareixerà la carpeta compartida a recursos de xarxa
  • Path: carpeta física real de l'amfitrio que es comparteix amb la màquina virtual.
Davidginovartcompartircarpetavirtualbox.png

On podem veure com ja hem creat la carpeta compartida:

Davidginovartcompartircarpetavirtualbox2.png

Per tal d'accedir a la carpeta compartida des dé la màquina virtual Linux cal muntar la unitat:

$ sudo mount -t vboxsf Nom carpeta destí

Per exemple:

$ sudo mkdir /media/compartida
$ sudo mount -t vboxsf Carpeta_Compartida_Imatges /media/compartida

El sistema de fitxers tipus vboxfs el podeu instal·lar amb:

$ sudo apt-get install virtualbox-ose-guest-utils

Per tal de fer el muntatge permanent en cada reinici de la màquina virtual cal modificar el fitxer /etc/fstab

Davidginovartcompartircarpetavirtualbox3.png

Recursos:

Muntar una imatge de disc dur de Virtual Box

IMPORTANT: No munteu la imatge si està en ús!

Es pot fer amb kvm/qemu amb les Qemu Tools

$ sudo apt-get install qemu-kvm

Assegureu-vos de tenir el mòdul del nucli nbd (NBD són les sigles de Network Block Device) activat:

$ modprobe nbd

I ara feu:

$ qemu-nbd -c /dev/nbd0 <vdi-file>

Els dispositius ndb són similars als dispositius de loopback i ens permeten accedir a qualsevol imatge de disc que sigui suportada per qemu/KVM.

Cal tenir en compte que amb eixò el que esteu veient és el disc dur sencer amb les particions incloses. El primer que cal fer es indicar-li al nucli que el dispositiu /dev/nbd0 és un disc dur i que per tant llegeixi la seva taula de particions:

$ sudo partprobe /dev/nbd0
Warning: Unable to determine geometry of file/device /dev/nbd0.  You should not use Parted unless you REALLY know what you're doing!

Per exemple la primera partició serà:

/dev/nbd0p1.

Per accedir a aquesta partició cal fer:

$ sudo mount /dev/nbd0p1 /mnt

I podeu accedir al sistema de fitxers amb:

$ chroot /mnt.

Quan hagiu acabat:

$ umount /mnt
$ qemu-nbd -d /dev/nbd0

VirtualBox mirror

Es pot fer amb wget:

Wget#Exemple_de_mirror_de_Virtual_Box

Que jo conegui, no donen suport per a fer mirrors amb rsync.

VirtualBox instalacio desatesa

VirtualBox.exe -extract
start /wait msiexec /norestart /qn /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi ALLUSERS=2

VirtualBox Appliances

Resol·lució de problemes. Troubleshooting

64 bits no funciona en màquina de 64 bits. This kernel requires a X86-64 CPU

Es requereixen dos coses per tal de poder virtualitzar sistemes de 64 bits

  • El sistema base ha de ser de 64 bits.
  • Cl tenir una CPU que suporti virtualització. Consulteu kvm-ok
  • Cal tenir activat el suport per a virtualització a la BIOS. Algunes BIOS el porten desactivat.

Un exemple:

$ sudo apt-get install cpu-checker
$ sudo kvm-ok 
INFO: /dev/kvm does not exist
HINT:   sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
INFO: KVM (vmx) is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
      and then hard poweroff/poweron your system
KVM acceleration can NOT be used
$ sudo modprobe kvm_intel
FATAL: Error inserting kvm_intel (/lib/modules/3.0.0-14-generic/kernel/arch/x86/kvm/kvm-intel.ko): Operation not supported

Calia activar el suport a la BIOS.

ethtool -t eth1 penja la màquina virtual

Doncs això, en una Ubuntu Server amb l'última versió de Virtual Box (4.1) al executa l'ordre la màquina es penja totalment...

No s'executa VRDP. Al executar VBoxHeadless no mostra el missatge

Cal instal·lar l'extension pack.

VirtualBox can't operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot

La solució és eliminar el mòdul del kernel per a KVM:

$ sudo modprobe -r kvm-intel 

Recursos:

Compte amb les MAC

Quan fem una còpia de Virtual Box, si només distribuïm el fitxer vdi, aleshores només distribuïm una copia del disc dur, tota la resta de configuració de la màquina pot ser diferent (MAC, RAM, etc).

A Virtual Box podem escollir la MAC a:

Paràmetres > Xarxa > Avançat > Adreça MAC
NOTA: Per accedir als paràmetres la màquina virtual ha d'estar aturada.

El fet de tenir una MAC diferent pot provocar que en sistemes servidor com Ubuntu o Debian no tinguem ben configurada la xarxa. Tingueu en compte que les targetes de xarxa són anomenades ethx segons el que posi al fitxer d'udev:

/etc/udev/rules.d/70-persistent-net.rules

I que potser acabeu amb un nom de targeta de xarxa eth1 o eth2 o el que sigui diferent a eth0 i que no ho teniu configurat al fitxer /etc/network/interfaces. Cal tenir en compte que això pot afectar a altres serveis com DHCP o Bind, ja que potser només escolten la interfície de xarxa etho. Consulteu els fitxers:

/etc/default/dhcp3-server
NOTA: El problema només s'aplica a sistemes servidors, per què en sistemes amb entorn gràfic si la configuració de xarxa segons els fitxers habituals (/etc/network/interfaces) no és correcta, aleshores l'eina gràfica Network Manager intervé i configura ell la màquina
NOTA: Si en compte de copiar la màquina Virtual, fem un export, el export hauria de guardar la configuració de la màquina incloent la MAC

Pantallazo blau (BSOD Blue Screen Of Death) al canviar el nom de màquina de Windows

Cal canviar al registre de Windows de la màquina virtual:

hkey_local_machine/system/currentcontrolset/services/intelppm

Cal posar el valor start a 4.

No es pot accedir a les terminals virtuals (Ctrl+Alt+F1) del guest

Right Ctrl+<function key>

O si no hi ha tecla Right Ctrl:

Windows+F<n> o Super+F<n>

Recursos:

Error VERR_HOSTIF_INIT_FAILED

VirtualBoxError.png

La sol·lució a aquest problema es afegir permisos d'accés al gorup vboxusers al fitxer /dev/net/tun

$ sudo chown root:vboxusers /dev/net/tun
$ sudo chmod 660 /dev/net/tun

Reconfigurar el mòdul vboxdrv

$ sudo /etc/init.d/vboxdrv setup

No inicia la Ubuntu Server

Només afecta la versió 8.10 d'Ubuntu Server. Cal activar la opció PAE/NX. Consulteu l'article Ubuntu Server.

També tingueu en compte que no podreu instal·lar Ubuntu Server de 64 Bits amb un sistema operatiu Host de 32 bits.

Tunning

Tunning de xarxa

Canviar la targeta AMD que hi ha per defecte per una Intel MT de 1G per a servidors.

Vegeu també

Enllaços externs

Destacats

OpenFPnet
IES Nicolau Copèrnic