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. PunkiD dice:

    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 fdisk -l /dev/sda

    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 :P

    #>VBoxManage internalcommands createrawvmdk -filename ./WinXP.vmdk -rawdisk /dev/sda -partitions 1 -mbr ./myBootRecord.mbr -relative -register

    eso seria todo =)
    ahora a virtualizar tu winsuck xD
    NOTA:
    modificar el nombre de “./WinXP.vmdk” en donde quieras crear tu archivo eje: /home/tuusuario/nnombredelarchivo.vmdk

    by PunkiD

  2. Cristian dice:

    Excelente aporte PunkiD, muchas gracias.

  3. PunkiD dice:

    ahh me olvide de poner para que era, arriba explico como posible solucion para “la pantalla negra” al querer arrancar la maquina virtual

  4. PunkiD dice:

    Posible solucion para la “pantalla negra” al querer arrancar maquina virtual con tu particion de Windows XP.
    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 (creamos el archivo)
    fdisk -l /dev/sda (vemos las particiones del disco)

    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: 0×52e42dad

    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 :P

    VBoxManage internalcommands createrawvmdk -filename ./WinXP.vmdk -rawdisk /dev/sda -partitions 1 -mbr ./myBootRecord.mbr -relative -register

    eso seria todo =)
    ahora a virtualizar tu winsuck xD
    NOTA:
    modificar el nombre de “./WinXP.vmdk” en donde quieras crear tu archivo eje: /home/tuusuario/nnombredelarchivo.vmdk

    perdon por comentar seguido el problema que lo hice rapido entonces tenia que tener errores
    un saludo!

    by PunkiD

  5. Chapaev dice:

    Hola
    También me salieron problemas de permisos y lo solucioné agregando mi usuario al grupo disk: adduser tu_usuario disk

    Vituabox ya reconoce la particion, el problema es que XP no reconoce la partición. La ve como una particion sin formatear ni nada.

    La particion que quiero compartir con windows es mi home y esta en formato ext3

    Alguna idea de como solucionarlo?

  6. Carlo dice:

    Bueno siguiendo todos los paso y mediante el metodo de prueba y error… el virtualbox ejecutado como root funciona y reconoce el disco duro virtual. Tuve que activar el IO APIC en la configuracion de la maquina virtual para que no se quedase en pantalla negra con el guion cuando arrancaba…

    Veo el logo de windows… me pregunta que perfil de hardware quiero elegir. selecciono el que duplique… pantalla negra con guion… y recibo el pantallazo azul que no me da ni tiempo a leer por que se reinicia. me da la opcion de arrancar a prueba de fallos pero termina don identico resultado.

    ¿Alguna idea…

    voy a probar a reiniciar en windows y ver si puedo desactivar algunas cosa…

  7. Wilson Arteaga dice:

    Donde se debe colocar el script de la forma larga y como se debe nombrar el archivo creado…?????

  8. Sintra dice:

    ¿Alguien sabe cómo hacer que la máquina virtual de Virtual Box arranque al inicio de Ubuntu?

  9. Cristian dice:

    Hola Sintra…

    Bastaría con que añadieras algo como esto en los programas de inicio de sesión (Sistema->Preferencias->Sesiones):

    VirtualBox --startvm "Nombre Maquina Virtuak"

    Un saludo!

  10. Jeronimo dice:

    Para los que no les aparece el grub, mejor creen el acceso directo a todo el disco.

    A mi me aparece el grub, pero cuando se lecciono el para iniciar con winXP solo se quedta en starting up… y de ahi o pasa.. alguna solucion.

  11. gabrielx dice:

    yo tengo una nvidia y lo corro como root y cuadno entro a la particion de xp selecciono profile 2 y se queda la pantalla negra con una barra gris abajo, alguna idea a lo mejor a de ser lo la nvividia que tengo?

  12. Jose dice:

    Hola a todos
    Por favor si pueden ayudarme con el siguiente problema.
    ekufar@ekufar-desktop:~$ VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/WinXP.vmdk -rawdisk /dev/sda
    WARNING: The vboxdrv kernel module is not loaded. Either there is no module
    available for the current kernel (2.6.31-14-generic) or it failed to
    load. Please recompile the kernel module and install it by

    sudo /etc/init.d/vboxdrv setup

    You will not be able to start VMs until this problem is fixed.
    WARNING: The compilation of the vboxdrv.ko kernel module failed during the
    installation for some reason. Starting a VM will not be possible.
    Please consult the User Manual for build instructions.
    VirtualBox Command Line Management Interface Version 1.6.6
    (C) 2005-2008 Sun Microsystems, Inc.
    All rights reserved.

    Error opening the raw disk ‘/dev/sda’: VERR_ACCESS_DENIED
    The raw disk vmdk file was not created
    ekufar@ekufar-desktop:~$.

    he seguido al pie de la letra las instrucciones de Pablo pero estoy atrancado en eso y no encuentro solucion.

    Gracias

  13. PunkiD dice:

    Jose: ahi te dice bien claro lo que tienes que hacer, usa el comando sudo “/etc/init.d/vboxdrv setup” y si en un caso no te resulta eso! intenta usar “modprobe vboxdrv” (los comandos son los que estan entre comillas (“”) usalos sin las mimas, espero que te sirva
    saludos PunkiD

  14. Jose dice:

    Gracias PunkiD no me resulto nada. Y me volvi un ocho todo para intentar desistalar y volver a instalar el virtualbox; asi que toco la formatiada y volver de cero a ver como es la vaina como buen novato .pues llevo 8 dias con linux.

    Tengo una duda y es sobre la version ,pues antes de formateo tenia la 1.6.6 y ahora en la web de virtualbox veo la 3.0.10.
    Por ahy seria mi inicial problema ?

  15. PunkiD dice:

    Jose… no se que distro estas usando pero por lo que vi en el error es que no cargas el modulo vboxdrv, con respecto a a la version de tu VirtualBox … seguramente tu distro usa una version estable de virtualbox, y por eso usas esa version, en mi arch uso la 3.8 y no tengo ningun tipo de problemas te recomedo actualizar y bienvenido al mundo linux !

¡Déjanos tu comentario!