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.

150 Comentarios | deja el tuyo

5 enlaces entrantes

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

  1. miguel dice:

    muy bueno el tuto… ahora alguien podria hacer uno para hacer correr la una instalacion de win7… este se complica porque tiene 2 particiones (una de arranque y la otra con el so)…
    Si alguien tiene alguna idea de como hacerlo estaría muy bueno lo publicase por aqui…

    saludos

  2. cARLOS dice:

    Hola… todo esta perfecto, pero me gustaria tener mas desmenuzado el punto 1…. no logro crearlo..

  3. Chachi dice:

    Estoy en la msma que cARLOS; me pone:
    bash: :~/.VirtualBox$: No existe el fichero ó directorio

    • Eder dice:

      esa parte de ~/.VirtualBox$ no va, ademas tienes que agregar sudo asi:
      $sudo VBoxManage internalcommands createrawvmdk -filename $HOME/.VirtualBox/WinXP.vmdk -rawdisk /dev/”sda6″ -relative -register.

      Esa es la instrucción que ejecuté en el mío. Ádemas la parte que esta entre comillas varía dependiendo de donde tienes instalado una de tus particiones linux. en mi caso yo no tenia una sdb2 sino la sda6 y la creo perfecto
      pd:recuerda que las comillas no van

  4. StoneFran dice:

    He hecho todo lo que me decís y he trasteado un rato hasta que he podido ver mi grub…

    Os comento que cuando creéis el disco wmdk debéis hacerlo apuntado a dónde esté vuestro grub o gestor de arranque. yo he tenido que poner /dev/sda y me arranca el grub perfectamente…

    El problema que tengo es que el Windows XP home que tengo preinstalado, casca cuando lo arranco… He generado un perfil “VritualBox”, me permite seleccionarlo, pero el Windows casca al arrancar…

    Ahora sí que ya no sé que hacer…

    Saludos

  5. JOn dice:

    estoy igual que algunos:

    bash: :~/.VirtualBox$: No existe el fichero ó directorio

    jajaja pero me tinca que ya es error 300 ajajajaja.. hace rato que no ocupo linux… (usuario de mandrake 9) pero me tinka que es eso…

    ayuda para los novatos plisss

  6. alvaro dice:

    Hola, podrías especificar mas el punto por favo, y como hacemos los que tenemos el disco particionado (linux en una particion y win7 en la otra) y queremos correr desde el VB win7 desde linux???

    gracias.

¡Déjanos tu comentario!