gentoo linux, java, software libre y otras hierbas
sep, 23 2008 - 12:01 am

Ejecutar Windows instalado en el disco duro desde Ubuntu usando VirtualBox

Muchas veces tenemos un sistema Windows instalado/configurado/personalizado antes de instalar nuestra distro favorita, y desearíamos no perder dicho trabajo y poder a la vez ejecutar aplicaciones nativamente para Windows desde nuestro querido Linux.

Lo que podemos hacer en este caso es crear una imagen de acceso virtual de nuestro disco duro, y con ella ejecutar Windows desde Linux. 

Paso cero (opional): muchas veces, cuando Windows inicia, éste reescribe información de drivers en su configuración, de acuerdo al hardware sobre el que corre. Por tanto, y para no correr riesgos de estropear nada, podríamos crear un nuevo perfil de hardware alterno. Para ello vamos a las propiedades de Mi PC, seleccionamos la pestaña Hardware y hacemos clic en Perfiles de hardware. Luego hacemos clic en Copiar y ya está, aceptamos todo, reiniciamos y volvemos a la tranquilidad de nuestro Linux.

Paso 1: crear imagen del disco duro

:~/.VirtualBox$ VBoxManage internalcommands createrawvmdk -filename $HOME/.VirtualBox/WinXP.vmdk -rawdisk /dev/sdb2 -relative -register

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

RAW host disk access VMDK file /home/cristian/.VirtualBox/WinXP.vmdk created successfully.

En realidad lo que se crea es un especie de “acceso directo” al disco, es decir, NO crea una imagen con los datos del disco duro sino acceso al mismo. 

Paso 2: añadir el disco duro virtual a VirtualBox

Abre VirtualBox y selecciona Archivo->Administrador de discos virtuales (File->Virtual Disk Manager en inglés), clic en el botón Añadir (Add) y seleccina el archivo que acabas de crear.

Paso 3: crear una nueva máquina virtual

Clic en el botón Nueva (New) y Siguiente (Next) en el asistente de creación de máquinas virtuales. Digita WinXP como nombre y selecciona Windows XP como tipo de máquina virtua, clic en Siguiente (Next).

virtualbox

Selecciona la cantidad de memoria RAM que deseas otorgar a la máquina virtual.

virtualbox

Ahora es donde debemos seleccionar el disco duro que hemos creado, así que has clic en Existente (Existing) y selecciona el disco duro que añadiste en el paso 2. Clic en Siguiente y luego en Finalizar.

Paso 4: configurar la nueva máquina virtual

Selecciona la máquina virtual WinXP, clic derecho y Configuración (Settings). Allí habilita el audio, los Puertos seriales (Serial Ports), los Puertos USB (USB ports), asigna el drive CD/DVD a la unidad local, y añade los Directorios Compartidos (Shared Folders) que sean necesarios, etc.

Ahora simplemente has clic en Iniciar (Start) y verás el menú de tu grub (o lilo), donde podrás seleccionar y ejecutar Windows XP (no es recomendable ejecutar el SO Linux que ya está corriendo). Recuerda que todos los cambios que realizes sobre la máquina virtual se verán reflejados en el SO original.

Problemas y soluciones

Uno de los problemas normales que pueden ocurrir, es al momento de crear el disco virtual. En la mayoría de los casos se trata de problemas de permisos, y tenemos algunas opciones para solventarlo:

  1. Realizar todo como root (NO RECOMENDADO)
  2. Cambiar los permisos de los discos duros:
    sudo chmod 666 /dev/sdb2

    (Más o menos recomendado)

  3. Crear un nuevo usuario con los permisos indicados:
    sudo adduser rawvb –ingroup MYGROUP –no-create-home
    sudo adduser rawvb disk
    sudo adduser rawvb vboxusers

    Luego puedes crear un script que ejecute VirtualBox adecuadamente:

    #! /bin/bash
    VBUSER=rawvb # nombre del usuario que es miembro del grupo disk
    VM_NAME=xpraw # nombre de la maquina virtual      

    chmod -R g=u /home/$USER/.VirtualBox # asegurarse que el otro usuario tenga acceso a la configuracion del VirtualBox
    xauth extract /home/$USER/cookieTmp $DISPLAY
    chmod g+r /home/$USER/cookieTmp
    sudo -u $VBUSER XAUTHORITY=/tmp/.Xauthority_$VBUSER xauth merge /home/$USER/cookieTmp
    rm /home/$USER/cookieTmp
    sudo -u $VBUSER XAUTHORITY=/tmp/.Xauthority_$VBUSER VBOX_USER_HOME=/home/$USER/.VirtualBox VBoxManage startvm $VM_NAME&

    Es la manera RECOMENDADA aunque es un poco más larga. Es tu desición.

Otro problema puede ser que Windows no arranque :( (pequeño problema :D ), lo cual se puede deber al hardware, por ejemplo: supón que tienes una nVidia y haces uso de ella en Windows… luego VBox (que no tiene soporte para aceleración gráfica) carga Windows con su hardware emulado, entonces Windows dice ¿Qué demonios pasa? ¿No pillo bien el hardware? ¿Qué ha pasado? Bueno, mejor ni arranco, que se las apañe el usuario solito. En esos casos no podrás ¿disfrutar? de tu Windows.

En lo personal, me ha funcionado en uno de dos computadores donde hice la prueba. Aunque eso no dice mucho, así que lo mejor será leer sus comentarios.

Actualización: me envía Pablo Derendinger los pasos que el siguió y que le funcionaron… se basó en esta guía pero añadió un par de pasos que seguro resultarán útiles a algunos usuarios con problemas.

156 Comentarios | deja el tuyo

5 enlaces entrantes

151 Comentarios en “Ejecutar Windows instalado en el disco duro desde Ubuntu usando VirtualBox”

  1. Cristian dice:

    Hola Anikan,

    Ese es un problema un poco más difícil de resolver. Lo que yo intentaría (bajo mi propio riesgo) sería crear un nuevo perfil de Hardware desde Windows que no cargara los drivers de la Nvidia.

    Ten en cuenta además lo de tener habilitado el IO APIC.

    Por otra parte, solo por aclarar, aun si corres Windows sobre VirtualBox no serás capaz de ejecutar juegos 3D demasiado pesados. Te lo digo solo para que lo tengas en cuenta.

    Un saludo.

  2. Anikan dice:

    Gracias Cristian…
    Eres mi heroe jajaja bueno el sitio en realidad uno de los poco que he visto esta info bien detallada para el ubuntu
    y VBox…

  3. Cristian dice:

    Umm, dime eso cuando ya esté corriendo el Windows…

    Un saludo.

  4. anikan dice:

    Claro Cristian con lo que me dijiste arranco el windows viste casi llegue a emocionarme el tema es que despues de cada solucion viene un pequeno problema no sin la cosa no puede ser perfecta jjaja bueno como hago para usar el mouse en windows por que no funciona gracias Master

  5. Cristian dice:

    NPI… ahí si no se :P

  6. e_terno dice:

    Buenas buenas..tengo un pequeño problema… estoy tratando de levantar un Win Xp en el virtualbox instalado en ubuntu 9.04 … puedo crear la imagen del disco siguiendo las indicaciones de este tutorial, el problema se plantea cuando selecciono la imagen del disco, ya que el virtualbox no reconoce el tamaño de disco… pero me crea la maquina virtual de todas maneras, sin dar errores.. pero a la hora de correrlo, me da errores de permisos… alguien tiene idea de que puedo hacer?? antes de hacer la imagen debo montar el disco manualmento o algo asi?….

    Algo que me olvide de decir es que soy novato con Linux..pero quiero migrar y necesito tener algo para salvar situaciones de aprendizaje.. je je je

    SALUDOS!!!!

  7. Cristian dice:

    ¿Podrías poner los errores que te arroja?

  8. e_terno dice:

    estoy en Ubuntu 9.04

    esta es la version del VB que instale:

    virtualbox-2.2_2.2.4-47978_Ubuntu_jaunty_i386.deb

    Asi cree la imagen:

    terno@terno-laptop:~$ VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/WinXXPP.vmdk -rawdisk /dev/sda -relative -register
    VirtualBox Command Line Management Interface Version 2.2.4
    (C) 2005-2009 Sun Microsystems, Inc.
    All rights reserved.

    RAW host disk access VMDK file /home/terno/.VirtualBox/WinXXPP.vmdk created successfully.

    Ai aparece la imagen del disco:
    IDE Primario Maestro: WinXXPP.vmdk (Normal, Inaccesible)

    y el error que da es el siguiente:

    Fallo en iniciar la maquina virtual win xp

    Medium ‘/home/terno/.VirtualBox/WinXXPP.vmdk’ is not accessible. Could not open the hard disk ‘/’/home/terno/.VirtualBox/WinXXPP.vmdk’

    VD: error opening image file
    ‘/home/terno/.VirtualBox/WinXXPP.vmdk’
    (VERR_ACCESS_DENIED)

    alguna idea?

    :S

  9. Cristian dice:

    Solo para ver si corre… ejecuta todo como root y nos cuentas.

  10. e_terno dice:

    a ver… a ver… que ejecute la cracion de la imagen como root?

    en consola me paso a root con su …

    pero tamben debo ser root para ejecutar el VB??

    perdon por la ignorancia…

  11. Cristian dice:

    Síguete todos los pasos pero siendo root: es decir, primero ejecuta

    sudo su

    Y luego, al final, tambien abres virtual box como root (sudo VirtualBox).

  12. e_terno dice:

    MASTEA AND COMMANDERS!!! funciona! todo como root…

    anda todo..al iniciar la maquina reconocio primero todos los dispocitivos y los instalo.. puedo moverme de una pantalla a la otra tranquilamente, el control del mause y teclado lo haces con el CTL derecho..

    un balazo!

    lo unico que tengo que ver es que el cpu esta casi al palo todo el tiempo ( uno de los nucleos al 100% y el otro al 50% y van cambiado pero se manejan en esos limites…)

    lo que no veo aun es el segundo HDD ….

    Grax!

  13. e_terno dice:

    dispositivos, perdon

  14. Cristian dice:

    OK… entiendo… Eso era solo para ver si funcionaba… porque tienes que tener en cuenta que andar logueado como root no es seguro.

    Lo que probablemente pasa es que no tienes los permisos sobre el disco duro. Soluciones hay muchas, la mas rapida es ejecutar siempre esto antes de iniciar la maquina virtual.

    sudo chmod 666 /dev/sda

    Igual… es peligroso. Otra cosa mas segura es darle privilegios sobre ese disco duro al grupo vboxusers. Eso si te lo dejo de tarea; busca en Google.

    Un saludo

  15. e_terno dice:

    Ok..no problem…
    GRacias por todo!

    Un abrazo!

¡Déjanos tu comentario!