Para ver la potencia que tiene VirtualBox, y facilitar la migración a Ubuntu a los usuarios que quieran seguir utilizando su anterior Windows XP en Ubuntu, vamos a ver como se virtualiza una partición de XP ya hecha desde Ubuntu 8.04.
Tenemos la misma solución para VMware Workstation en Kriptópolis, pero la licencia de este producto es de 30 días. Probé con el producto gratuito VMware Server, pero no provee la propiedad de virtualizar particiones físicas.
Así que sin duda VirtualBox es la opción más definitiva, y además es Open Source.
Asegurarnos de la edición correcta de VirtualBox
Como primera precaución debemos asegurarnos que la versión de Virtual Box instalada es la comercial. Si no fuera esta no tendríamos la facilidad de visualizar particiones físicas, desde una Máquina Virtual. Tenemos la diferencia explicada en este enlace.
Crear un Perfil de Hardware en nuestro Windows XP
La segunda precaución es crear un segundo “Perfil de Hardware” en nuestro sistema Windows XP, por que cuando lo arranquemos en nuestra máquina virtual el hardware será el estandar que simulaVirtualBox, y empezará como un loco a reconocerlo e instalarlo cargándose los drivers anteriores.
De esta forma podremos arrancar directamente nuestra partición XP desde GRUB eligiendo el perfil de Hardware que no hayamos tocado. Estos perfiles se crean en: Boton derecho sobre Mi PC > Propiedades > Hardware > Perfiles de Hardware > Copiar; y creamos un segundo perfil “Perfil 2” que será el que se modificará al arrancar por primera vez desde VirtualBox:
Crear la Máquina Virtual
Primero creamos la máquina virtual con los pasos habituales.
Creamos una NUEVA máquina:
Seleccionando como sistema huesped el Windows XP. En la siguiente pantalla asignaremos la memoria RAM:
No asignaremos ningún disco duro virtual, lo haremos a través de consola en el punto siguiente.
Enlazar la VM a la partición
En el punto 9.9 del Manual de usuario de VirtualBox tenemos la forma de proceder para crear un disco duro virtual, a partir de una partición física. Ejecutamos lo siguiente en la línea de comandos:
VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda -register |
De modo que crearemos el disco virtual file.vmdk referenciando al dispositivo /dev/sda.
Para utilizar ese disco desde el fichero de referencia tienes que añadir a tu usuario normal (con el que vas a arrancar la máquina virtual) al grupo de sistema disk:
sudo usermod -a -G disk |
Abre el archivo /etc/group y modifica con tu usuario una linea similar a esta:
vboxusers:x:120:USUARIO |
Reiniciamos la máquina para que estos cambios surtan efecto. Y lo asociaremos a la máquina virtual creada anteriormente mediante el siguiente comando:
VBoxManage modifyvm XP_ant -hda /path/to/file.vmdk |
Finalmente …
No deberíamos tener problema al iniciar la máquina, en el siguiente enlace mi escritorio de XP en Ubuntu:
hola k tal, tengo un problema, y es k al hacer: sudo VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk -rawdisk /dev/sda -register me sale el siguiente error:
[!] FAILED calling aVirtualBox->RegisterHardDisk(hardDisk) at line 1132!
[!] Primary RC = NS_ERROR_INVALID_ARG (0x80070057) – Invalid argument value
[!] Full error info present: true , basic error info present: true
[!] Result Code = NS_ERROR_INVALID_ARG (0x80070057) – Invalid argument value
[!] Text = A hard disk with UUID {294e1983-cbf7-4e05-e0b3-a73242b5c38f} or with the same properties (‘/home/abeltran/virtual/winxp.vmdk’) is already registered
[!] Component = VirtualBox, Interface: IVirtualBox, {2d3b9ea7-25f5-4f07-a8e1-7dd7e0dcf667}
[!] Callee = IVirtualBox, {2d3b9ea7-25f5-4f07-a8e1-7dd7e0dcf667}
y no es que el fichero winxp.vmdk ya exista pues lo elimino con rm.
y al hacer sudo VBoxManage modifyvm XP_ant -hda /path/to/file.vmdk me sale el siguiente error:
[!] FAILED calling virtualBox->FindMachine(Bstr(argv[0]), machine.asOutParam()) at line 4331!
[!] Primary RC = NS_ERROR_INVALID_ARG (0x80070057) – Invalid argument value
[!] Full error info present: true , basic error info present: true
[!] Result Code = NS_ERROR_INVALID_ARG (0x80070057) – Invalid argument value
[!] Text = Could not find a registered machine named ‘winxp’
[!] Component = VirtualBox, Interface: IVirtualBox, {2d3b9ea7-25f5-4f07-a8e1-7dd7e0dcf667}
[!] Callee = IVirtualBox, {2d3b9ea7-25f5-4f07-a8e1-7dd7e0dcf667}
y no es que winxp no exista pues yo lo he llamado asi
estoy desesperado si me pudiera ayudar se lo agradeceria. A y otra cosa al hacer sudo usermod -a -G disk me dice k el usuario disk no existe
¡¡¡¡¡HEEEEEEEELP!!!!!
Pues el error creo que está en que cuando pongo /path/to/file.vmdk me refiero a un directorio y un fichero que se pueda crear en tu sistema.
Por ejemplo, yo tengo el fichero vmdk en /home/juanan/winXP.vmdk.
Es decir, sustituir /path/to/file.vmdk por /home/juanan/winXP.vmdk (en mi caso, en vuestro caso el que sea).
Hola Juan Antonio.
Soy un amiguete de Rafa y Raquel.
De hecho, he llegado a tu blog porque me dijo Rafa que le habías hecho su web y he llegado por el enlace de abajo por curiosidad, porque yo también soy programador.
Llevo trabajando de desarrollador web en entorno lamp y usando software libre desde hace unos 2 años (por lo que soy relativamente nuevo), aunque siempre me ha gustado este mundo y me parece interesantísimo todo lo que veo por aqui.
Este fin de semana voy a probar lo que dice este artículo ya que hasta ahora yo usaba el VMWare server para la virtualización y virtualizar el windows de mi partición física de mi ordenador de casa me viene muy bien.
Quería felicitarte por tu blog y la labor de ayuda que realizas con él.
Me he suscrito al rss por lo que seguiré atentamente los artículos que vayas escribiendo.
Un cordial saludo
Hola Chema¡¡
pues bienvenido por estos lares…
Yo también usaba VMWare, hasta que descubrí VirtualBox, y últimamente lo estoy utilizando mucho y estoy encantado.
Saludos
Hola, estoy aprendiendo sobre virtualización y este articulo me ayuda bastante, te agradezco de antemano.
Esto vale para cuando tienes corriendo windows en una partición y ubuntu en otra y allí lo virtualizamos.
Es decir puedo conectar el disco de una maquina windows XP, que lo cargará como sdax y virtualizar este disco…
Es así?
Gracias amigo.
Exacto, Martin.
Tienes tu antigua instalación de XP en una partición, instalas Ubuntu en otra.
Y con esta receta arrancas el sistema XP desde Ubuntu (en realidad desde VirtualBox).
Para esto lo uso yo, creo que es una buena opción para hacer la transición Windows-Linux
Men, esta muy bueno, gracias por el dato. pero tengo un problema:
Al colocar el comando:
sudo VBoxManage internalcommands createrawvmdk -filename /home/lich/file.vmdk -rawdisk /dev/sda -register
me saca este error:
Error opening the raw disk ‘/dev/sda’: VERR_ACCESS_DENIED
The raw disk vmdk file was not created
Algun dato que me sirva, que hago mal?.
Gracias de antemano.
Buenas…
También se puede hacer a la inversa, lanzar Ubuntu bajo XP haciendo por ejemplo:
VBoxManage internalcommands createrawvmdk -filename C:\Ubuntu\ubuntu.vmdk -rawdisk \\.\PhysicalDrive0
Saludos!
1) Crear un registro de inicio maestro en un gestor de archivos
sudo apt-get install mbr (instalamos el paquete necesario)
install-mbr –force myBootRecord.mbr (crear el archivo del registro(
El archivo producido myBootRecord.mbr debe ser de 512 bytes.
2) Llame VBoxManager con opciones
En primer lugar tenemos que saber que es nuestra partición de Windows XP:
fdisk -l /dev/sda (ver las particiones)
Disco /dev/sda: 80.0 GB, 80026361856 bytes
255 cabezas, 63 sectores/pista, 9729 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0x52e42dad
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 1567 12586896 7 HPFS/NTFS
/dev/sda2 1568 9729 65561265 f W95 Ext’d (LBA)
/dev/sda5 1568 7770 49825566 7 HPFS/NTFS
/dev/sda6 7771 7901 1052226 82 Linux swap / Solaris
/dev/sda7 7902 8815 7341673+ 83 Linux
/dev/sda8 8816 9729 7341673+ 83 Linux
Para mí es la partición número 1. y este es el magico comando
VBoxManage internalcommands createrawvmdk -filename ./WinXP.vmdk -rawdisk /dev/sda -partitions 1 -mbr ./myBootRecord.mbr -relative -register
eso seria todo =)
NOTA:
modificar el nombre de “./WinXP.vmdk” en donde quieras crear tu archivo eje: /home/tuusuario/nnombredelarchivo.vmdk
perdon por comentar arriba erroneamente es que no me copia todo lo que escribi ultimo intento igual sale el magico comando 😀
by PunkiD
Que tal??
Segui todos tus pasos, pero cuando lanzo la maquina virtual , me queda una pantalla en negro, no me aparece el escritorio de windows 🙁
Me podrias ayudar?? soy muyyy nuevo con el ubuntu.
Desde ya muchas gracias.
Estimado amigo.
Estoy siguiendo tus instruciones para correr en windows xp en ubuntu. Cuando utilizo el segundo paso crear el registro de inicio
install-mbr –force myBootRecord.mbr (crear el archivo del registro(
El archivo producido myBootRecord.mbr debe ser de 512 bytes.
me sale esta este error.
pedro@pedro-laptop:~$ install-mbr -force myBootRecord.mbr
install-mbr: Offset must be a number: rce
No se si el guion anterior al force es especial.
gracias de antemano.
Pedro Rodriguez
el problema puede ser el guion como tu dices =)
prueba lo siguiente:
install-mbr –force myBootRecord.mbr
o
install-mbr -f myBootRecord.mbr
tambien puedes usar la ayuda =)
‘install-mbr –help
o
‘install-mbr -h
fue un error mio al tipear =)
HOla. sabes e leido tu articulo y en verdad lo encontre genial.
pero tengo un problema, =s lo que pasa que cuando ejecuto el comando.
VBoxManage internalcommands createrawvmdk -filename /home/manolo/win_xp.vmdk -rawdisk /dev/sda -register
me aparece un error:
VirtualBox Command Line Management Interface Version 2.1.4_OSE
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
Error opening the raw disk ‘/dev/sda’: VERR_ACCESS_DENIED
The raw disk vmdk file was not created
pero si le agrego sudo lo ejecuta:
sudo vboxmanage internalcommands createrawvmdk -filename /home/manolo/win_xp.vmdk -rawdisk /dev/sda -register
VirtualBox Command Line Management Interface Version 2.1.4_OSE
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
RAW host disk access VMDK file /home/manolo/win_xp.vmdk created successfully.
Ahora mi pregunta es la siguiente, que aun no me queda clara.
al momento de dar la sentencia /dev/sda, aqui hago referencia en donde esta mi particion de windows o no. ¡??
por que mi particion de windows no esta en ese lugar si no esta en dev/sdc1
pero al cambiar al ejecutar ese cambio me sale es siguiente error:
VirtualBox Command Line Management Interface Version 2.1.4_OSE
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
RAW host disk access VMDK file /home/manolo/win_xp.vmdk created successfully.
[!] FAILED calling aVirtualBox->OpenHardDisk2(filename, hardDisk.asOutParam()) at line 1250!
[!] Primary RC = NS_ERROR_INVALID_ARG (0x80070057) – Invalid argument value
[!] Full error info present: true , basic error info present: true
[!] Result Code = NS_ERROR_INVALID_ARG (0x80070057) – Invalid argument value
[!] Text = Cannot register the hard disk ‘/home/manolo/win_xp.vmdk’ with UUID {5ca34d26-a1cf-4aec-86eb-28692a6fefa8} because a hard disk ‘/home/manolo/win_xp.vmdk’ with UUID {a84edac7-06da-450e-88c8-1fb984ddb9ea} already exists in the media registry (‘/root/.VirtualBox/VirtualBox.xml’)
[!] Component = VirtualBox, Interface: IVirtualBox, {339abca2-f47a-4302-87f5-7bc324e6bbde}
[!] Callee = IVirtualBox, {339abca2-f47a-4302-87f5-7bc324e6bbde}
que puedo Hacer Al respecto??
AYUDA PLEASE.
Funcionara con una particion de vista??
Nesecito me puedan orientar al menos de donde obtener informacion que pueda entender..
(aclaracion: dispongo del archivo de imagen “vdi” andando bajo win y quiero pasarlo bajo linux pero desde consola)
mi problema es el siguiente.. (Bajo windows) tengo andando un server corriendo un programa de gestios con base de datos en mysql y lo que pretengo hacer es hacerlo correr con virtualbox pero en ubuntu server y “DESDE CONSOLA”. nose como comenzar mi busqueda o de donde puedo obtener alguna buena guita que yo pueda “interpretar” o “entender”.
resumiendo un poco discongo del archivo “DiscoServidor.vdi” (ya andando con virtualbox desde windows) y nesecito hacerlo correr desde consola de ubuntu server asi dejo de usar una pc como server ya que no quiero instalar ningun entorno X de linux.
se que suena engorroso pero agradeceria informacion al respecto.
dejo mi correo palenke2k@cygcomputacion.com.ar
desde ya muchas gracias al que me pueda ayudar
Hola, he estado siguiendo los pasos pero tengo un problema.
hago: sudo VBoxManage internalcommands createrawvmdk -filename /home/roxkleis/windxp.vmdk -rawdisk /dev/sda -partitions 1 -mbr ./myBootRecord.mbr -relative -register
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/roxkleis/windxp.vmdk created successfully.
Hast hay todo va bien, pero luego quiero hacer: sudo usermod -a -G disk
y me dice: usermod: el usuario «disk» no existe
Ayuda x favor!
Hola a todos los lectores.
Conseguí virtualizar mi partición de windows en virtualbox, mi problema es que cuando arranco windows me da un pantallazo azul (el tipico que aparece cuando cambias algo en el hardware de windows).
Cuando instale windows, lo instale normalmente, la inforamación hardware que posee windows es la del hardware real, y no la virtual, por eso me da un pantallazo azul. Mi pregunta es ¿como puedo modificar uno de los perfiles hardware para que mi windows pueda ejecutarse en virtualbox sin que me de el pantallazo?
Muchas gracias por vuestra atención.
y alguna manera para hacerlo sobre windows 7?