viernes, 9 de diciembre de 2011

Virtualizar una partición real usando VirtualBox y Ubuntu

Virtualizar una partición real usando VirtualBox y Ubuntu

Mensajepor IJAS 02 Mar 2010 19:52
COMO VIRTUALIZAR UNA PARTICIÓN REAL CON WINXP USANDO VIRTUALBOX Y UBUNTU 9.10

Os cuento mi experiencia por si le sirve a alguien....

Objetivo: Virtualizar la partición real existente de Windows XP desde Ubuntu (nunca más necesitaría hacer un arranque de windows, jejejeje)

Situación inicial: Partición con WinXP profesional en /dev/sda y Mis Documentos en otra partición en /dev/sdb. Partición(es) con Linux (Ubuntu 9.10) y Virtualbox OSE instalado con una máquina virtual WinXP profesional.

1) Desde virtualbox ose, exportar la máquina virtual windows (Por si acaso la necesitase algún día).

2) Desinstalar virtualbox ose (desde synaptic, desinstalar todo lo que tenga que ver con virtualbox ose) ya que con la versión OSE no se pueden virtualizar las particiones físicas.

3) Instalar virtualbox de Sun siguiendo las instrucciones de http://www.virtualbox.org/wiki/Linux_Downloads (yo la instalación la hago desde synaptic en lugar de con apt-get install). Cuando pregunta si queremos compilar el módulo del kernel le decimos que siguiente (es decir, si).

4) Para poder montar dispositivos usb y otras cosillas, añadimos nuestro usuario al grupo vboxusers y al grupo disk (Sistema-Administración-usuarios y grupos, pulsar para realizar cambios y añadir el usuario a los grupos mencionados).

5) Creamos un mbr para virtualbox, desde consola:

sudo dd if=/dev/sda3 of=$HOME/.VirtualBox/HDD/.win.mbr bs=512 count=1

los directorios tienen que existir, creamos el archivo .win.mbr (se puede llamar como tu quieras), la partición tiene que ser la que tiene tu linux (en mi caso la /dev/sda3), lo puedes mirar con "fdisk -l" o Sistema-Administración-Utilidad de discos.

6) Enlazar un archivo con la partición de windows que se va a virtualizar y registrarlo como un disco para que nos aparezca al crear una máquina virtual dentro de virtualbox. Desde consola:

sudo VBoxManage internalcommands createrawvmdk -filename $HOME/.VirtualBox/HDD/WXPreal.vmdk -rawdisk /dev/sda -partitions 1 -mbr $HOME/.VirtualBox/HDD/.win.mbr -relative -register

donde WXPreal.vmdk es el archivo que enlaza con la partición windows que en este caso es la /dev/sda1 (sda -partitions 1), también indicamos donde está el mbr que hemos creado en el paso anterior. La contestación es:

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

RAW host disk access VMDK file /home/ijas/.VirtualBox/HDD/WXPreal.vmdk created successfully.

7) En lugar de dar permisos de lectura y escritura a la partición de windows (sda1), que da un poco de cosa, se los damos al disco virtual que hemos creado en el paso anterior:

sudo chmod 666 $HOME/.VirtualBox/HDD/WXPreal.vmdk

8) Si os dais cuenta todavía no hemos arrancado virtualbox... seguiremos esperando un poco más...Ahora nos salimos de Ubuntu y arrancamos Windows de la manera habitual a través de grub. Inicio-Panel de control-Sistema-Hardware-Perfiles de Hardware-actual-copiar. Copiamos nuestro perfil pero con otro nombre p.ej. VBox (este será el perfil que utilicemos en virtualbox, de esta forma evitamos descuajaringar nuestro perfil de windows).

9) Arrancamos Ubuntu y luego Aplicaciones-Herramientas del sistema-Sun Virtualbox. Creamos una nueva máquina virtual y en la pantalla de disco duro virtual elegimos "Usar un disco duro existente" y seleccionamos el que hemos creado en los pasos anteriores (WXPreal.vmdk).

10) Antes de arrancar la máquina recién creada, la seleccionamos y configuramos algunas cosillas:
En Sistema-Placa Base habilitamos IO APIC
En Sistema-Procesador he seleccionado 2 (tengo un Quad y por aquello de darle la mitad... seguro que es una chorrada)
En Sistema-Aceleración tengo todo seleccionado
En Pantalla-Video tengo la mitad de la memoria real (128 MB) y marcadas todas las aceleraciones.

11) Arrancamos la máquina virtual y..... primer guarrazo... e sale un error que dice que no hay sistema operativo.... pienso.... pienso... pienso... esto va a ser del archivo mbr... yo el Grub no lo tengo instalado en la partición (/dev/sda3) sino al principio del disco duro... así que vuelvo al paso 5 pero esta vez copio los 512 primeros bytes del disco duro con la orden:

sudo dd if=/dev/sda of=$HOME/.VirtualBox/HDD/.win.mbr bs=512 count=1

y repetimos todos los pasos desde este. Si lo hacemos así, al llegar a la creación del archivo vmdk nos va a dar un error porque ya lo hemos creado así que primero borramos los archivos VXPreal.vmdk y VXPreal-pt.vmdk que estaban en $HOME/.VirtualBox/HDD y el archivo VirtualBox.xlm en $HOME/.VirtualBox sino borramos este último nos dará otro error al intentar crear el nuevo archivo vmdk.

Después de volver a llegar al paso 11 arrancamos otra vez la máquina recién creada (la anterior la hemos borrado previamente) y ..... segundo guarrazo... ahora localiza el Grub pero da el siguiente error:

GRUB Loading
error: unknown filesystem
grub rescue>_

así que nos quedamos en la consola de grub rescue que no me reconoce las ordenes "help", "boot", "reboot" y de la que solo me se las órdenes "ls" (lista todos los discos y particiones reconocidas) que funciona y me reconoce todas mis particiones y la orden "set" que me dice donde tengo root (hd0, 3) y cual es el prefix ((hd0,3) /boot/grub).... como no se como salir de aquí me inflo a mirar foros y veo que no soy el único con este problema, en uno de ellos aportan la siguiente solución que ¡Funciona!:

a) Mediante synaptic instalamos el paquete "mbr" (viene con ubuntu) y desde consola ejecutamos:

sudo install-mbr --force $HOME/.VirtualBox/HDD/.win.mbr

con lo que creamos el archivo de registro que queríamos con 512 Kb de tamaño.

Volvemos a ejecutar todos los pasos desde el 6 (con las salvedades que se han mencionado más arriba de borrar la máquina anterior y los archivos mencionados) y.... ¡Bingo!... esta vez arranca la máquina virtual. Tenemos que estar atentos a la pantalla que deja elegir el perfil de hardware y elegir el que hemos creado (vbox) para no machacar el nuestro (por si alguna vez entramos en windows directamente). El proceso de arranque tarda un rato largo porque tiene que reconocer todo el hardware.

Una vez la máquina funcionando, tengo que solucionar un pequeño problema... yo tengo Mis documentos en otro disco distinto del que he virtualizado. Apago la máquina virtual, y con una orden parecida a la del paso 6 virtualizo el disco duro donde tengo Mis documentos

sudo VBoxManage internalcommands createrawvmdk -filename $HOME/.VirtualBox/HDD/MisDocumentos.vmdk -rawdisk /dev/sdb -partitions 1 -relative -register

sudo chmod 666 $HOME/.VirtualBox/HDD/MisDocumentos.vmdk

Ahora, sin arrancar la máquina virtual voy a configuración-Almacenamiento y agrego a la controladora el nuevo disco que he creado, arranco la máquina virtual y ¡Voila! ya tengo el otro disco duro en mi windows real virtualizado.

Creeis que ya he terminado con este ladrillo... pues no... todavía me queda otro gran guarrazo. Con mi máquina virtual arrancada decido instalar las Guest Aditions... se toma su tiempo (como comentario debo decir que la virtualización del windows real va un poco a pedales, es decir mucho más lento y pesado que cuando utilizaba una máquina virtual de WinXP clásica, la que exporté en el paso 1, mucho más delgada y ligera y que iba como una bala) da un error pero se instalan...... pero cuando decido meter el ratón en la ventana, me lo captura pero se vuelve completamente loco e inutilizable, y ... eso no es lo peor... salgo de linux arranco directamente WinXP con mi perfil principal y maldición el ratón está loco e inutilizable y no se arregla cambiando el ratón inalámbrico por uno alámbrico... finalmente y para no aburrir, la solución pasó por, utilizando solo el teclado, desinstalar las Gess Aditions. Todo volvió a la normalidad. De todas formas no renuncio a tener las Guest Aditions así que cuando solucione este problemilla ya editaré el post.
EDITADO: He intentado instalar ediciones anteriores de las Guest Aditions en concreto la 3.1.0 en lugar de la 3.1.4 pero el resultado ha sido el mismo. Al desinstalar las mismas, me quedan dos dispositivos con admiración amarilla, la tarjeta gráfica y un dispositivo del sistema. Los borro y hago que windows los vuelva a reconocer y a la hora de instalar les dirijo a la carpeta donde se instalan las Guest Aditions (que copié antes de desinstalar) y de esta forma consigo tener todos los dispositivos bien, eso si sigo sin poder capturar el ratón al vuelo. Con estas modificaciones el sistema va un poco más ligero pero no lo suficiente para cambiar la conclusión de más abajo.

CONCLUSIÓN: Se puede virtualizar la partición de Win XP y todo funciona aparentemente bien pero... va muy lento y pesado, por lo menos en mi caso, sobre todo si se compara con una máquina virtual en al que hemos instalado XP y solo los programas que realmente necesitamos correr en WinXP (en este caso me va como una bala). Se admiten sugerencias para optimizar la virtualización de la partición real.
Sacado de:
http://www.elotrolado.net/hilo_virtualizar-una-particion-real-usando-virtualbox-y-ubuntu_1392455

jueves, 8 de diciembre de 2011

Adaptador puente de Virtualbox en Linux

03/02/2010
Adaptador puente de Virtualbox en Linux
Bueno hoy me dispongo a instalar varios sistemas operativos para realizar algunas pruebas, pero necesito que los sistemas virtuales que instale en la VM pertenezcan a la misma red de mi host real y puedan recibir dirección ip de mi puerta de enlace, entonces para esto debo crear un puente en la tarjeta de red de mi equipo y así poder conectar los demás SO de la VM.

Software:
Ubuntu 9.10
Vitualbox 3.1.2 r56127

Lo primero será descargar dos paquetes:
- sudo aptitude update
- sudo aptitude install bridge-utils uml-utilities

Luego de instalar estos paquetes debemos agregar nuestro usuario (el que utilizara la VM) al grupo de "uml-net" así nos evitaremos problemas mas adelante:
- sudo gpasswd -a tu-usuario uml-net

Nos cercioramos que si halla quedado agregado nuestro usuario:
- cat /etc/group |grep uml
uml-net:x:###:tu-usuario (deberíamos ver algo así)

Ahora editaremos el archivo "/etc/network/interfaces" agregando las interfaces virtuales que necesitemos:

# Interfaces Virtuales
# (interface 1)
auto vbox0
iface vbox0 inet manual
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down
tunctl_user tu-usuario

# Puente

auto br0
iface br0 inet dhcp
bridge_ports all vbox0

En este punto debemos reiniciar la configuración de la red:
- sudo /etc/init.d/networking restart

NOTA: Debemos tener en cuenta que la primera vez que se use se debe activar el puente y la interface creada:
- sudo /sbin/ifup vbox0
- sudo /sbin/ifup br0

Ya tenemos nuestro puente y la interface virtual listos para usar (si no hemos tenido problemas :-)), ahora si podemos configurarla en nuestro host virtual:

Podemos iniciar nuestra maquina virtual y ver que dirección nos ha asignado:

Efectivamente pertenece a mi red, ahora veamos que hay conexión entre la maquina virtual y mi host real (192.168.1.64):

De igual manera responde del host real al virtual y por supuesto ahora pueden navegar en internet ambos host.

Sacado de:
http://0sairux0.blogspot.com/2010/02/adaptador-puente-de-virtualbox-en-linux.html