Virtualizar una partición física de Windows XP con Virtualbox. 5


Hace mucho tiempo me resigne a que tengo que tener un Windows en mi vida por mas empeño que le ponga a evitarlo. Las soluciones empresariales, por lo menos lo que yo me encuentro, requieren de entornos mixtos y es necesario conocer, estar en grado de usar y disponer de ambos sistemas (Linux y Windows).

Linux es mi opción de base, pero conservo mi arranque dual y como entorno de trabajo “integrado” tengo una máquina virtual XP sobre VirtualBox. Indudablemente esto es una perdida de recursos enorme así que después de algunos intentos he conseguido arrancar la partición física de Windows desde VirtualBox. Tiene muchos detallitos así que los comento a continuación (lo he hecho sobre Ubuntu 9.10 Karmic Koala).

Prerequisitos.

Instalación de Virtual Box:

  • Incluir en el /etc/apt/sources.list (también se puede hacer desde Sistema > Administración > Origenes de SW):
~$  deb http://download.virtualbox.org/virtualbox/debian karmic non-free
  • Para incluir la firma se haría con:
~$  wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
  • Para instalar:
~$  sudo apt-get install virtualbox-3.0
En la documentación he visto muchos errores asociados a permisos y grupos. Así que es bueno comprobar que los tenemos. El usuario debe pertenecer a los grupos disk y vboxusers.

 

Yo he ejecutado todos los comandos con mi usuario y me ha funcionado. En general en la documentación he leído que se hiciera con root, CUIDADO, hay operaciones que se ejecutan sobre la configuración del usuario ($HOME/.VirtualBox/ … ) si no se tiene un poco de cuidado se puede armar un pequeño lío.

Creación de un perfil de HW.

Es una buena idea crear un nuevo perfil Hardware específico para cuando arranquemos el XP desde la virtualización. Y sobre este perfil se recomiendan desconectar tantos dispositivos cuanto se pueda, en particular la tarjeta gráfica puede dar muchos problemas ya que parece que Vb no las soporta, después se podrán conectar los dispositivos.

 

Estos perfiles se crean en: Botón derecho sobre Mi PC > Propiedades > Hardware > Perfiles de Hardware > Copiar; y creamos un segundo perfil “Vbox″ que será el que se modificará al arrancar por primera vez desde VirtualBox.
 
 

Creación de un MBR

La siguiente precaución es los SO de Microsoft no arrancan en ausencia de un MBR y como no queremos que virtualizar todo el disco tendremos que crear un MBR para poder arrancar desde VirtualBox. Con el siguiente comando crearemos un MBR “virtual”, solo tenemos que sustituir sdXY por nuestro disco y partición respecticamente (ej: sda3):

 

~$ sudo dd if=/dev/sdXX of=$HOME/.VirtualBox/HDD/.win.mbr bs=512 count=1
En algunos casos se recomienda virtualizar todo el disco, pero corremos el riesgo de arrancar la Ubuntu virtualizada y que se reconfigure todo el HW, y ya le hemos liado.

 

Para localizar el sector de arranque, que es donde está el MBR, lo que podemos hacer es:
  • Consultar la tabla de particiones con:
~$ sudo fdisk -l
 
     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: 0x74ea74ea 

    Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema 
    /dev/sda1   *           1        3824    30716248+   7  HPFS/NTFS 
    /dev/sda2            8658        9729     8610840   83  Linux 
    /dev/sda3            3825        5041     9775552+  83  Linux 
    /dev/sda4            5042        8657    29045520   83  Linux 

 

  • Consultar la configuración de grub:
~$ sudo grub
grub> find /boot/grub/stage2 
(hd0,2) 

 

La respuesta nos indica que el disco de arranque es el hd0 y la partición donde arranca mi Ubuntu es la 3 (ojo. Grub comienza a contar en 0)

Creación del Disco virtual.

Lo que vamos a hacer es generar un disco virtual que apunte al disco físico, indicarle que donde está el MBR que tiene que usar y registrar el disco.Para crear el disco virtual se usa una utilidad del propio VirtualBox. Y lo curioso, por lo menos a mi me lo parece, es que usa el formato de VMWare.

 

~$ VBoxManage internalcommands createrawvmdk -filename /home/ds00671/.VirtualBox/HDD/WXPreal.vmdk
 -rawdisk /dev/sda -partitions 1 -mbr /home/ds00671/.VirtualBox/HDD/.win.mbr -relative -register 

 

El tamaño del disco aparecerá como el de todo el /dev/sda/. Es algo que me mosquea, pero que hasta el momento no me ha dado problemas.

Creación de la Máquina Virtual.

Ya solo tenemos que crear una nueva maquina virtual y asignarle el disco WXPreal que ya aparece registrado en el gestor de discos de VirtualBox.
Ojo a los parámetros que se indican. Pueden hacer la máquina no funcione. En concreto a mi de han dado guerra:
  • La red. Tuve que probar varias configuraciones hasta que fue (Intel Pro/1000 MT Server).
  • Sistema, activar ACPI y OI ACPI.
  • Procesadores. Si se escogen mas de uno hay que activar Vtx/AMD-V en Vbox y en la Bios del equipo.

Activación de Windows.

Teóricamente ya debería de estar listo. Pero en algunos casos Windows decide que necesita que lo actives. ¿¿COMO??. Pues eso.

 

Microsoft licencia de muchas maneras y en mi caso la licencia es una OEM y está vinculada a la configuración del equipo. Así que habrá que indicarle a VirtualBox que le pase la información relativa al equipo para que funcione.

 

NOTA: No considero que esté violando los términos de la licencia porque realmente estoy ejecutando el mismo SO en el mismo equipo. Es cualquier caso para ser escrupuloso también tengo una licencia Corporativa de XP que me serviría.

Vamos a mirar los parámetros de nuestro equipo:

~$ sudo dmidecode -t0   
# dmidecode 2.9 SMBIOS 2.4 present. 

  Handle 0x0000, DMI type 0, 24 bytes 
  BIOS Information 
  Vendor: Hewlett-Packard 
  Version: 68MCD Ver. F.16 
  Release Date: 08/18/2008 
  Address: 0xE0000 
  Runtime Size: 128 kB 
  ROM Size: 1024 kB 
  Characteristics: 
    ... 

 BIOS Revision: 15.22 
 Firmware Revision: 104.53 

De aquí obtenemos:

  • DmiBIOSVendor
  • DmiBIOSVersion
  • DmiBIOSReleaseMajor 
  • DmiBIOSReleaseMinor 
  • DmiBIOSFirmwareMajor 
  • DmiBIOSFirmwareMinor
  • Si las reviciones de la Bios y del Firmware no aparecen se debe incluir los valores de la versión de la SMBIOS.

 

~$ sudo dmidecode -t1 
  # dmidecode 2.9 
  SMBIOS 2.4 present. 

  Handle 0x0001, DMI type 1, 27 bytes 
  System Information 
  Manufacturer: Hewlett-Packard 
  Product Name: HP Compaq 6910p 
  Version: F.16 
  Serial Number: CZC8427WRQ 
  UUID: 26E4CA29-76A3-DD11-FC08-F699104C6129 
  Wake-up Type: Power Switch 
  SKU Number: RH243AV 
  Family: 103C_5336AN 

Con esto encontramos

  • DmiSystemVendor
  • DmiSystemProduct
  • DmiSystemVersion
  • DmiSystemSerial
  • DmiSystemUuid
  • DmiSystemFamily
  • Si no se muestra un valor o se indica como "Not Specified" indicarlo como "" .


Ahora le pasamos los parámetros a Vbox con el siguiente script:

#! /bin/bash 
VM_NAME="WXPreal" # Name of your Virtual Machine 
VSETED="VBoxManage --convertSettings setextradata $VM_NAME" 
CFG_PATH="VBoxInternal/Devices/pcbios/0/Config" 
$VSETED $CFG_PATH/DmiBIOSVendor       "Hewlett-Packard" 
$VSETED $CFG_PATH/DmiBIOSVersion      "68MCD Ver. F.16" 
$VSETED $CFG_PATH/DmiBIOSReleaseDate  "08/18/2008" 
$VSETED $CFG_PATH/DmiBIOSReleaseMajor  15 
$VSETED $CFG_PATH/DmiBIOSReleaseMinor  12 
$VSETED $CFG_PATH/DmiBIOSFirmwareMajor 104 
$VSETED $CFG_PATH/DmiBIOSFirmwareMinor 53 
$VSETED $CFG_PATH/DmiSystemVendor     "Hewlett-Packard" 
$VSETED $CFG_PATH/DmiSystemProduct    "HP Compaq 6910p" 
$VSETED $CFG_PATH/DmiSystemVersion    "F.16" 
$VSETED $CFG_PATH/DmiSystemSerial     "CZC8427WRQ" 
$VSETED $CFG_PATH/DmiSystemUuid       "99999C9C-9999-9999-999C-CAC99F999999" 
$VSETED $CFG_PATH/DmiSystemFamily     "103C_5336AN" 

 

A mi con esto me bastó. En otros casos se indica que lo que es necesario es trasladarle la MAC del equipo a la interfaz de red de Vbox.

Y listo. Espero que os resulte tan “fácil” como a mi.

Referencias:
Procedimiento de instalación:

Manual Virtual Box:

Página de descargas de Virtual Box:

Activación de Windows:

Compartir
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

5 ideas sobre “Virtualizar una partición física de Windows XP con Virtualbox.

  • dayer

    En mi caso «dmidecode -t2» me devuelve un campo que a VirtualBox no le gusta al iniciar: «Family: 0000000000»

    En el script le pongo por tanto:
    $VSETED $CFG_PATH/DmiSystemFamily “0000000000”

    Pero al tratar de arrancar la máquina virtual me lanza el siguiente error:

    «Fallo al iniciar la máquina virtual WXPreal.
    Configuration error: Querying “DmiSystemFamily” as a string failed (VERR_CFGM_NOT_STRING).
    Unknown error creating VM (VERR_CFGM_NOT_STRING).

    Detalles:

    Código Resultado:
    NS_ERROR_FAILURE (0x80004005)
    Componente:
    Console
    Interfaz:
    IConsole {6375231a-c17c-464b-92cb-ae9e128d71c3}»

    He probado a ponerle “” en ese campo o bien poner lo típico que otra gente pone de “X86-based PC”, pero entonces arranca y me pregunta que si quiero activar Windows. También he probado a ponerle en la configuración de la máquina virtual la MAC de la Ethernet o de la WiFi pero no sé si el problema puede estar en lo de DmiSystemFamily que no sea el valor que Windows espera :/

  • Anonymous

    El DmiSystemFamily lo obienes ejecutando -t1 y no el -t2.
    En mi caso me sale el campo vacio, con lo cual en el script se lo indicas como “”.

    Muchas gracias por la guia, me fué muy útil.

    saludos

  • Fernando

    Hola he tratado de hacer lo que dices, sin embargo el sistema no me permite ejecutar nada si no es con sudo.

    Despues de hacerlo como sudo, el programa no me permite accesar a la particion dice lo siguiente:

    Fallo al abrir el disco duro /home/torres/.VirtualBox/HardDisks/Windows.vmdk.
    Could not open the medium ‘/home/torres/.VirtualBox/HardDisks/Windows.vmdk’.
    VD: error VERR_ACCESS_DENIED opening image file ‘/home/torres/.VirtualBox/HardDisks/Windows.vmdk’ (VERR_ACCESS_DENIED).

    Que puedo hacer al respecto?

  • Guillermo

    Hola Fernando.
    Perdona la tardanza, pero los de las vacaciones ya se sabe lo que tiene.
    Lo primero que se me ocurre es que los permisos no son correctos ¿Que permisos tiene /home/torres/.VirtualBox/HardDisks/Windows.vmdk?.
    También puede ser que tu usuario no tenga los grupos adecuados, por lo menos debe pertenecer a los grupos de virtualbox y disk
    Mirando en google también indican que puede ser un problema de que el disco se haya registrado mal en Vbox. Podrías probar a quitarlo y volver a ponerlo desde la interfaz gráfica de VBox.
    Espero que haya suerte.