Instalar y configurar VirtualBox
Autor: Samuel Calleros
Sitio Web: TuxSoluciones.com.mx
Copyright
Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: 1) Debes reconocer la autoría de la obra en los términos especificados por el propio autor o licenciante. 2) No puedes utilizar esta obra para fines comerciales. 3) Si alteras, transformas o creas una obra a partir de esta obra, solo podrás distribuir la obra resultante bajo una licencia igual a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Nada en esta licencia menoscaba o restringe los derechos morales del autor. Puede ver la Licencia Completa.
El autor no se hace responsable si el usuario o lector hace mal uso de esta información.
¿Porque VirtualBox?
VirtualBox es una aplicación que nos permite ejecutar diferentes Sistemas Operativos simultáneamente en el mismo equipo de manera virtual. La razón para usar VirtualBox es porque es libre (GNU/GPL) y porque funciona bien. Vmware no es software libre.
Instalación
Para instalarlo en Debian etch editar el archivo /etc/apt/sources.list y agregar el siguiente repositorio:
##virtualbox
deb http://www.virtualbox.org/debian etch non-free
Para instalarlo en ubuntu editar el archivo /etc/apt/sources.list y agregar una de las siguientes lineas dependiendo de la versión que tenga:
deb http://www.virtualbox.org/debian gutsy non-free
deb http://www.virtualbox.org/debian feisty non-free
deb http://www.virtualbox.org/debian edgy non-free
deb http://www.virtualbox.org/debian dapper non-free
Descargar la clave publica para el apt-secure de http://www.virtualbox.org/debian/innotek.asc y agregarla con el siguiente comando:
$ wget http://www.virtualbox.org/debian/innotek.asc
# apt-key add innotek.asc
Actualizar la lista de paquetes e instalar VirtualBox:
# apt-get update
# aptitude install virtualbox
Esto instalara VirtualBox y sus dependencias.
Tambien puede instalar VirtualBox descargando del sitio http://www.virtualbox.org/wiki/Downloads el archivo correspondiente a la versión "Debian etch" e instalarlo con "dpkg -i virtualbox_x.x.x-xxxxx_Debian_etch_i386.deb"
Para instalar VirtualBox en otras distribuciones descargue del sitio "http://www.virtualbox.org/wiki/Downloads" la versión que corresponda a la de su distribución e instalelo manualmente.
Configuración
Para poder usar VirtualBox hay que darle permisos al usuario de que lo utilice, para ello editamos "/etc/group" y agregamos nuestro usuario al grupo vboxusers, quedando así:
vboxusers:x:xxxx:nuestro_usuario
A veces esto no es suficiente, por lo que al correr VirtualBox puede marcar un error de escritura en "/dev/vboxdrv". Esto se soluciona nombrando como propietario de "/dev/vboxdrv" a nuestro usuario:
# chown nuestro_usuario:nuestro_usuario /dev/vboxdrv
Reiniciamos el servicio:
# /etc/init.d/vboxdrv restart
Agregar maquinas virtuales
Desde consola, iniciamos VirtualBox con el comando VirtualBox y damos clic en el botón Nueva(new) para agregar una nueva maquina virtual:
- Especificamos el nombre de nuestra maquina virtual y el sistema operativo a instalar.
- Posteriormente seleccionamos la cantidad de memoria RAM a asignar.
- Luego le asignamos el disco duro virtual, como no tenemos ninguno creamos uno; damos clic en el botón Nuevo(new), seleccionamos "Imagen de expansión dinámica", luego el tamaño del disco duro virtual.
- Finalizamos el asistente y listo. Ya tenemos la maquina virtual creada
Ahora solo falta instalar el sistema operativo que deseen. Para ello inserte el CD en el CD-ROM, inicie la maquina creada y siga las instrucciones de instalación presentadas.
Compartir carpetas
Para poder compartir archivos entre el Host Virtual (Invitado) y el Anfitrión es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".
Pasos a seguir:
- Instalar "virtual box Guest Additions". Cuando la maquina virtual se este ejecutando, hacer clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Guest Additions es un conjunto de utilidades que mejoran las capacidades del sistema virtualizado, entre ellas el compartir carpetas.
- Apagar la maquina virtual
- Compartir la carpeta en el Host Anfitrión con el comando:
VBoxManage sharedfolder add "Nombre_Maquina_Virtual" -name "nombre_a_mostrar" -hostpath "/ruta/carpeta/compartida"
También se puede compartir desde La configuración de la maquina en La opción "Directorios compartidos"
- Iniciar la maquina virtual.
Para acceder a la carpeta compartida:
- En Windows ejecutar: vboxsvrcarpeta_compartida y luego vaya a "Mi PC" y ahí estará montada el directorio compartido.
También puede mapear la unidad de red con: net use z: vboxsrvNombre_Carpeta_compartida
- En Linux se monta la unidad con:
mount -t vboxsf [-o OPTIONS] Nombre_carpeta_Compartida /ruta/donde/se/desea/montar
Para ver las carpetas que tiene compartidas desde el Host Anfitrión se hace con: VBoxManage list vms o desde las configuraciones de la maquina en la Opción "Directorios compartidos"
Podrá leer y escribir en la carpeta compartida desde la maquina virtual.
Habilitar el Copy-Paste entre el Host Anfitrión y el Invitado
Para poder utilizar esta función es necesario instalar en el Host Invitado la aplicación "virtual box Guest Additions".
En un Host Invitado con Windows cuando la maquina virtual se este ejecutando, haga clic en el menú "Dispositivos" y luego en "instalar Guest Additions".
En un Host Invitado con GNU/Linux se requiere instalar los headers del kernel que se este usando. Para saber el kernel que usamos tecleamos "uname -r". Ejemplo: si tenemos el kernel "2.6.18-5-486" instalamos el paquete "linux-headers-2.6.18-5-486":
# aptitude install linux-headers-2.6.18-5-486
Ahora hacemos clic en el menú "Dispositivos" y luego en "instalar Guest Additions". Esto nos montara un CD-ROM virtual. Nos vamos a /media/cdrom/ e instalamos el paquete VBoxLinuxAdditions.run y luego reiniciamos o apagamos la maquina virtual:
# cd /media/cdrom
# sh VBoxLinuxAdditions.run
# poweroff
Ya que instalamos "virtual box Guest Additions" ahora nos vamos en el administrador de VirtualBox, entramos a la configuración de la maquina virtual, en la opción "General", en la pestaña "Avanzado" en la opción "Portapapeles Compartidos" seleccionamos: "Anfitrión a Huesped", "Huesped a Anfitrión" o "Bidireccional" según lo deseado.
Crear Imágenes de nuestra maquina virtual
Las instantáneas (snapshots) sirven para crear imágenes de la partición del disco duro virtual, la cual puede restaurarse en cualquier momento y regresar la partición y los datos como estaban cuando fue creada la imagen. Para crear una imagen vaya al Menú de la maquina virtual y elija "Maquina" y luego "Tomar instantánea".
Configurar la maquina virtual para que forme parte de la red local.
Para entender mejor como configurar la red es necesario una breve explicación de las posibles configuraciones de la red. Al configurar la red de la maquina virtual se pueden elegir entre las siguientes opciones:
- Not attached (No conectado).- Sirve para desactivar la tarjeta de red virtual, por lo que no tendrá acceso a ninguna red
- NAT .- Sirve básicamente para acceder a Internet, descargar archivos y enviar correos, pero las funciones avanzadas de red no están habilitadas. La maquina virtual obtiene una IP de un router que viene siendo VirtualBox y que funciona como DHCP asignando una IP 10.0.2.0 a la primera interface y 10.0.3.0 a la segunda interface, el trafico de la maquina virtual es transparente.
- Host Interface Networking (Interface Anfitrion) .- Simulación de una red real, el Host puede enviar datos al invitado y viceversa, se puede conectar a la red. Se tiene que crear una interface de red virtual en el Host anfitrión por cada tarjeta (interface) de red que use(n) la(s) maquina(s) virtual(es)
- Internal Networking (Red Interna) .- Similar a "Host Interface Networking", sin embargo el acceso a Internet es limitado, de esta manera se mejora la seguridad y velocidad.
La que nos interesa es "Host Interface Networking (Interface Anfitrion)". Esta configuración sirve para configurar la maquina virtual para forme parte de la red.
Configurar la maquina virtual como Host Interface Networking (Interface Anfitrión)
A grandes rasgos lo que se tiene que hacer para configurar interfaces permanentes en el Host anfitrión con GNU/Linux es:
1.- Crear un puente a la interfaz real. Esto permite compartir la interfaz física entre la interfaz real y la virtual
2.- Por cada tarjeta de red virtual (invitada) usada, debe ser creado un nueva interfaz virtual en el Host padre (llamada tap0 o vbox0 o similar) y agregada esta interfaz al puente.
3.- Finalmente especificar la nueva interfaz en las configuraciones de la tarjeta de red virtual de la maquina virtual.
Ahora presentamos detalladamente los pasos para configurar interfaces permanentes en el Host Anfitrión con Debian y derivadas:
1.- Instalar el paquete "uml-utilities" en el Anfitrión, que contienen herramientas para crear tarjetas de red virtuales y el paquete de utilerías bridge "bridge-utils". Generalmente se instalan con el sistema base.
# apt-get install uml-utilities
# apt-get install bridge-utils
Para que el usuario que ejecutará la maquina virtual tenga acceso a la interfaz, el usuario tendrá que pertenecer al grupo "uml-net" por lo que hay que agregarlo:
# gpasswd -a usuario uml-net
Esto modificara el archivo "/etc/group/" quedando la linea del grupo uml-net así:
uml-net:x:NNN:usuario
2.- Editar el archivo "/etc/network/interfaces" para declarar la interfaz de red virtual a utilizar por el Host Invitado espeficando la interfaz a utilizar (tap0) y usuario que la usara, para ello agregamos las siguientes lineas:
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario
Modifique usuario por el usuario que ejecutará la maquina virtual.
Es importante que nuestra interfaz real (ejemplo eth0) este comentada o que no tenga asignada una IP del mismo rango, de lo contrario el Host Anfitrión no saldrá a Internet.
3.- La primera vez que se use, se debe activar el el bridge y la interfaz creada con los siguientes comandos:
# /sbin/ifup tap0
# /sbin/ifup br0
Esto solo es necesario la primera vez, las siguientes veces se activaran automáticamente.
4.- En el archivo "/etc/network/interfaces" hay que declarar el bridge (llamado br0) y agregar la interfaz creada al mismo:
auto br0
iface br0 inet dhcp
bridge_ports all tap0
También, se puede asignar una IP estática dependiendo de las necesidades.
Si hemos seguido correctamente los pasos del 2 al 4, en "/etc/network/interfaces" y deseamos unir a la red dos maquinas virtuales deberíamos tener el siguiente contenido:
auto lo
iface lo inet loopback
#iface eth0 inet dhcp
#auto eth0
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario
auto tap1
iface tap1 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user usuario
auto br0
iface br0 inet dhcp
bridge_ports all tap0 tap1
NOTA: las interfaces virtuales declaradas y que formen parte de un bridge no deben tener ninguna dirección IP asignada, por ello se pone "0.0.0.0" en vez de una IP real.
5.- Reiniciamos el servicio networking:
# /etc/init.d/networking restart
6.- Modifique la configuración de la maquina virtual. Esto se hace desde la aplicación VirtualBox, en "Configuraciones", "Red", “Attached to”, modificando un adaptador de red y especificando "Host Interface Networking"/"Interface Anfitrion" y en el campo “Interface name" tecleamos "tap0" o "tap1" dependiendo del nombre de interfaz virtual configurada en "/etc/network/interfaces".
7.- Finalmente vaya al Host Virtual (Invitado) y configure los paramentros de red apropiadamente.
Clonar una maquina virtual.
- Nos ubicamos donde estan guardados los vdi (/home/usuario/.VirtualBox/VDI) y clonamos el vdi con un UUID diferente:
$ cd /home/usuario/.VirtualBox/VDI
$ VBoxManage clonevdi NombreOriginal.vdi NuevoNombre.vdi
- Desde el administrador de VirtualBox creamos una nueva maquina; elegimos el mismo sistema operativo y otro nombre para la nueva maquina, asignamos memoria. En disco duro elegimos existente y elegimos el creado en el paso anterior (NuevoNombre.vdi) y listo ya tenemos una nueva maquina virtual identica.
Biografía
http://virtualbox.org
http://virtualbox.org/download/UserManual.pdf
Última Edición Wednesday, November 07 2007 @ 01:15 AM MST; 28 Hits 
Enviado por Tigreci el 9 Junio, 2008 - 11:14.
Muchas gracias por el aporte.
Quisiera que me aclaren unas dudas sobre el bridging, porque no termino de comprenderlo.
Si deshabilito la eth0, la maquina host, va a manejar su acceso a la red e internet a traves de una de las interfaces virtuales al igual que la maquina cliente [con tap0 o tap1]?
Si esto es asi, para la interface virtual correspondiente al host, donde debo fijar la configuracion para dejarla etatica?
Gracias
Te comento se deshabilita eth0 porque esta pasa a ser br0(puente de red), es decir en /etc/network/interfaces comentas todas las lineas correspondientes a eth0 y copias y pegas las anteriores lineas sustituyendo eth0 por br0
Es decir por ejemplo
#antes
#allow-hotplug eth0
#iface eth0 inet static
# address 192.168.1.2
# netmask 255.255.255.0
# network 192.168.1.0
# broadcast 192.168.1.255
# gateway 192.168.1.1
#Esto seria despues, notese la diferencia
auto br0
iface br0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 182.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
#Esta linea es la importante
bridge_ports eth0
Bien despues de estas modificaciones es necesario añadir las interfaces virtuales con el comando VBoxAddIF del siguiente modo
VBoxAddIF nombre_iface_virtual tu_usuario bridge
en mi caso
VBoxAddIF vbox0 tigreci br0
Explico
el nombre_iface_virtual es lo que se pone en las propiedades de la máquina virtual configurada, tu_usuario puede ser un grupo del sistema GNU/Linux, pero es para indicar quien tiene permisos para usarlo, y bueno bridge creo que no necesita explicación es tu tarjeta de red real, renombrada a br0 (funcionando como puente)
En mi caso despues de hacer un VBoxAddIF, no me funcionaban las conexiones entre máquinas virtuales ni con el host ni al exterior, con lo que despues de ese VBoxAddIF tuve que reiniciar el sistema, y despues de ese reinicio todo funcionó a la perfección, espero que esta aclaración os ayude a mas gente
P.D: Donde yo pongo vbox0, vbox1 es lo que tu llamas tap0 tap1
P.D2: Si quieres crear dos redes virtuales distintas, con otra tarjeta de red se realiza del mismo modo, solo cambiando eth1 por br1 y con VBoxAddIF indicar el bridge correcto en este caso br1, aunque estés añadiendo interfaces virtuales los nombres no deben (y creo que no se pueden) repetir es decir si en una de los bridges ya tienes vbox0 o tap0 no puedes añadir al br1 el mismo nombre
Enviado por loloyo el 27 Junio, 2008 - 18:02.
Error con Virltualbox
Buenas les comento que ya al parecer realice todo los pasos de la guía de instalacion pero me da un error adicional y no se como resolverlo aquí se los dejo:
por si les sirve de información estoy utilizando debian lenny, haciendo el lsmod me carga el modulo pero de igual forma me sale ese error:S
The VirtualBox support driver which is running is from a different version of VirtualBox. You can correct this by stopping all running instances of VirtualBox and reinstalling the software..
VBox status code: -1912 (VERR_VM_DRIVER_VERSION_MISMATCH).
Código Resultado:
0x80004005
Componente:
Console
Interface:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}
Enviado por edonux el 10 Julio, 2008 - 22:18.
Bueno muchas gracias por este artículo me ha sido de mucha ayuda, me ayudó a montar mi máquina virtual winxp sobre mi ubuntu y lo primordial integrarlo a mi red local.
el archivo /etc/netowork/interfaces me quedó así:
-------------
auto lo
iface lo inet loopback
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user miusuario
auto br0
iface br0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports all tap0
----------------------------
Omití la info de eth0 pues que como están comentadas no tienen relevancia aquí. Y como solo tengo una máquina virtual solo cree una interface virtual.
Bien con esa configuración todo me funciona, yo conservo mi ip y además puedo integrar la máquina virtual a la red local, etc. etc.
Mi pregunta es: porqué debo definir una interface nueva (br0) que ocupe el lugar de eth0 , no puedo simplemente, en lugar de crear una nueva interface utilizar la ya existente (eth0), pues bueno ví que si se podía, pero cuando lo hice perdí acceso a internet y a la red en general. Pero no entiendo porqué no dería. Porqué exactamente debo crear una nueva interface (br0) que haga el puente en lugar de utilizar a eth0.
Saludos
Enviado por Beder76 el 12 Julio, 2008 - 20:50.
Tigreci
Fue clarisimo, muchas gracias!!!
Enviado por kittu el 22 Julio, 2008 - 23:41.
A mi me funcionó dejándolo con NAT, el único detalle es que cuando quiero poner un archivo de la máquina virtual al anfitrión no me deja. También probé el bridge pero después de reiniciar las interfaces y los servicios, la virtual y la anfitrión dejaron de verse, y alternativamente se conectaban a internet según que tocaba, también tuve que tocar las interfaces declaradas en el smb.conf pero así sólo recuperé una parte de la red compartida entre las máquinas con debian, algo rarísimo
. Volví a poner todo como de fábrica y funciona mejor. Otro aspecto que no tienen en cuenta en los tutoriales o en las configuraciones es que todo el mundo no utiliza dhcp, no?
Igualmente tu tutorial me animó y me sirvió. 
Enviado por kittu el 29 Julio, 2008 - 06:17.
A mi me funcionó dejándolo con NAT, el único detalle es que cuando quiero poner un archivo de la máquina virtual al anfitrión no me deja. También probé el bridge pero después de reiniciar las interfaces y los servicios, la virtual y la anfitrión dejaron de verse, y alternativamente se conectaban a internet según que tocaba, también tuve que tocar las interfaces declaradas en el smb.conf pero así sólo recuperé una parte de la red compartida entre las máquinas con debian, algo rarísimo
. Volví a poner todo como de fábrica y funciona mejor. Otro aspecto que no tienen en cuenta en los tutoriales o en las configuraciones es que todo el mundo no utiliza dhcp, no?
Igualmente tu tutorial me animó y me sirvió.
Desde que escribí esto hice unos experimentos con los adaptadores de red, y ahora me funciona todo, ya que recordé que en otro tiempo tenía una pc con dos tarjetas de red una conectaba a internet, la otra a una LAN, con las cuales hacía un puente para que la LAN se conectara a través de la tarjeta con acceso a internet. Así que puse un adaptador de red con NAT, y otro conecte a red interna poniendo el nombre de la red y dentro, de la máquina virtual, configurando la conexión de red con ip fija. La NAT con el dhcp activo. Entónces me conecto a internet y accedo a las carpetas compartidas con control total.
Por lo que no tengo un bridge ni un tap. Ahora porqué tengo que usar XP virtualizado!!! porque el bendito estado que me toco en suerte sólo permite hacer trámites burocráticos con explorer como navegador. Argentina.
Enviado por javiermedina7 el 10 Octubre, 2008 - 22:47.
Hola,
Gracias por el tutorial, esta muy bien explicado.
Ayer hice todo el procedimiento de la red local y funcionó. Estoy montando Windows XP sobre Ubuntu 8.04 con VirtualBox 1.5.6.
Todo estaba funcionando perfectamente, mi /etc/network/interfaces quedó de la siguiente manera:
auto lo
iface lo inet loopback
auto tap0
iface tap0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user miusuario
auto br0
iface br0 inet static
address 192.168.1.115
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports all tap0
Reinicie la maquina y ahora no funciona, la maquina virtual tiene conexion pero el host no. En el post de Tigreci vi que escribieron bridge_ports all eth0, cual es la diferencia con bridge_ports all tap0????
Aqui dejo mi ifconfig, parece que se esta activando eth0, soy nuevo en esto de linux, agradeceria mucho su ayuda porque estoy usando esto en mi trabajo.
br0 Link encap:Ethernet HWaddr 00:1c:c0:06:91:68
inet addr:192.168.1.115 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21c:c0ff:fe06:9168/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1097 (1.0 KB) TX bytes:4273 (4.1 KB)
eth0 Link encap:Ethernet HWaddr 00:1c:c0:06:91:68
inet addr:192.168.1.107 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::21c:c0ff:fe06:9168/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5307 errors:0 dropped:0 overruns:0 frame:0
TX packets:3676 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1107968 (1.0 MB) TX bytes:340541 (332.5 KB)
Memory:90280000-902a0000
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:3035 errors:0 dropped:0 overruns:0 frame:0
TX packets:3035 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:258765 (252.7 KB) TX bytes:258765 (252.7 KB)
tap0 Link encap:Ethernet HWaddr 00:ff:8d:95:c7:40
inet6 addr: fe80::2ff:8dff:fe95:c740/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42 errors:0 dropped:0 overruns:0 frame:0
TX packets:94 errors:0 dropped:1965 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:5946 (5.8 KB) TX bytes:30005 (29.3 KB)
Gracias! Espero su respuesta!
Enviado por elsenyordelcaos el 11 Octubre, 2008 - 09:37.
Por favor JavierMedina7 abre un hilo en el foro con tu problema, este no es el lugar adecuado para ello.
Saludos
Enviado por ZorroPlateado el 3 Noviembre, 2008 - 20:33.
Lo único que falta al artículo es como hacer que Virtualbox arranque el inicio del computador, yo estoy jugando con sudo sobre el usuario que tiene permisos para VirtualBox pero no arranca bien, y si el servidor se apaga tendria que iniciarlo manualmente.
sudo -u vboxuser VirtualBox -startvm Debianlenny
Qt WARNING: VirtualBox: cannot connect to X server
Alguna idea?????
Enviado por ZorroPlateado el 4 Noviembre, 2008 - 21:22.
Me respondo yo mismamente.
start-stop-daemon -b --start --user vboxuser -x /usr/bin/VBoxHeadless -c vboxuser -- -startvm DebianLenny





