Virtualiza tu partición de XP desde Ubuntu con VirtualBox

vbox_logo2_gradient.png 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:

xp_mipc_perfiles.PNG

Crear la Máquina Virtual

Primero creamos la máquina virtual con los pasos habituales.

Creamos una NUEVA máquina:

VB.01.Crear_Nueva_VM.png

Seleccionando como sistema huesped el Windows XP. En la siguiente pantalla asignaremos la memoria RAM:

VB.02.Asigna_memo.png

No asignaremos ningún disco duro virtual, lo haremos a través de consola en el punto siguiente.

VB.03.Disco_duro.png

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:

VB.pantallazo.XP.png

18 thoughts on “Virtualiza tu partición de XP desde Ubuntu con VirtualBox

  1. 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!!!!!

  2. 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).

  3. 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

  4. 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

  5. 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.

  6. 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

  7. 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.

  8. 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!

  9. 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

  10. 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.

  11. 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.

  12. 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 =)

  13. 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.

  14. 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

  15. 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!

  16. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *