martes, 15 de febrero de 2011

The Walking Dead (OS Version)

Aprovechando el tirón que tuvo la serie en España me he decidido por este título ya que, a fín de cuentas, es lo que pretendo hacer: conseguir reanimar una imagen post mortem de un sistema Windows para iniciarla utilizando VMware.

Seguro que muchos estais pensando que esto es muy fácil desde que existe Live View, pero para lo que yo quiero, simplemente no me sirve. Y os diré porqué.

Resulta que no son pocos los sistemas que caen en mis manos llenitos hasta arriba de todo tipo de fauna y flora, tal que parece les pongan un felpudito de esos de "¡Bienvenido, estas en tu casa!". Resulta también que como siempre prima la pela, y esto implica formatear, parchear y devolver en tiempo record, sin poder meterles mano como a mi me gustaría.

Para estos casos, y previo consentimiento del dueño del equipo, suelo hacer una imagen dd del disco de sistema utilizando, por ejemplo, el proceso aquí descrito. Y ahora llega el momento de la verdad, ¿cómo la ejecuto para jugar con ella?

Convirtiendo la imagen en un disco vmdk

La forma más simple de todas las que he probado para realizar el proceso de conversión pasa por utilizar la herramienta gratuita StarWind V2V Converter. Pero para que el programa sea capaz de detectar nuestra imagen dd primero deberemos asegurarnos de que tenga la extensión img.

Una vez descargada (previo registro) e instalada se iniciará el asistente de conversión que nos permitirá seleccionar la imagen a convertir (recalco, con extensión .img), el formato final tras la conversión (VMWare pre-allocated image en mi caso), el tipo de disco virtual (SCSI) y el nombre y destino del fichero. Una vez finalizado el proceso obtendremos como resultado dos archivos con extensión vmdk: el que contiene los datos convertidos y un fichero de texto con las especificaciones "hardware" utilizadas por vmware para poder manejar el "disco".

Ahora, para poder utilizarlo deberemos crear una máquina virtual definiendo para ello el fichero vmx de configuración. Existen algunas herramientas online como VMBuilder que nos ayudarán en estos lances, pero personalmente lo que mejor me ha funcionado ha sido definir directamente la máquina virtual en vmware.

Lo malo es que, llegado el momento crítico, al arrancar la máquina virtual lo más que conseguiremos será una bonita y críptica BSOD (por cierto, lo de azul es meramente circunstancial).


Bypassing the BSOD

El problema que provoca la aparición de la BSOD está relacionado con el driver del controlador de disco que necesita vmware y que, por supuesto, no estaba instalado en el sistema del que proviene la imagen. Pero tranquilos, podemos solucionarlo de forma relativamente sencilla utilizando BartPE, un plugin y los pasos descritos en este documento.

Primero obtendremos el generador de BartPE desde cualquiera de los mirrors indicados en la página de descarga.

Lo extraeremos, por ejemplo, en C:\PEBuilder y descargaremos también el plugin que nos permitira inyectar los drivers en nuestra maquina virtual. El plugin lo colocaremos extraido en:

C:\PEBuilder\plugin

Ahora obtendremos los drivers para las diferentes versiones de Windows.

Drivers para Windows 2000: VMware SCSi BusLogic

Primero necesitaremos descargar la imagen de diskette que los contiene desde la web de vmware. Tendremos que extraer su contenido labor para la cual yo he escogido la herramienta Virtual Floppy Drive.

Una vez lanzado el binario vfdwin.exe seguiremos los siguientes pasos:
  • En la pestaña Driver primero pulsaremos "Install" y despues lanzaremos el servicio con "Start".
  • En la pestaña Drive0 pulsaremos "Open/Create..." seleccionando en "Image File" el fichero flp descargado desde la web de vmware y por último el botón "Open".
  • También en la pestaña Drive0, junto a "Drive Letter" pulsaremos "Change..." y asignaremos una letra de unidad disponible, B: por ejemplo.


Abriremos la nueva unidad y copiaremos el contenido en:
C:\PEBuilder\drivers\SCSIAdapter\vmscsi

Drivers para Windows XP: SCSi LSILogic

En este caso el proceso es mucho más simple. Bastará con descargar el paquete de drivers y extraerlo en:
C:\PEBuilder\drivers\SCSIAdapter\lsilogic

Tapando agujeros

Resulta que para conseguir generar correctamente la ISO de BartPE hay que solucionar un par de problemas, y el primero aparece mencionado aquí.

Los pasos necesarios: copiamos el contenido del CD de Windows XP por ejemplo en C:\winxp, nos desplazamos a C:\winxp\i386 y situamos allí la herramienta subinacl y el siguiente batch script, el cual ejecutaremos:
REM Version 1.3
reg query HKU | find /i "pebuilder" > fixdell.txt
for /f %%a in (fixdell.txt) do reg unload %%a
reg load HKLM\DELL setupreg.hiv
subinacl /subkeyreg hkey_local_machine\dell\controlset001\services\iastor\
/objectcopysecurity=hkey_local_machine\dell\controlset001\services
reg unload HKLM\DELL
del fixdell.txt
del /ah setupreg.hiv.log
echo Check output to see if there are any errors.
pause

El segundo tiene que ver con el driver iastor.sys y para solucionarlo tendremos que descargar el siguiente paquete que extraremos en:
C:\PEBuilder\drivers\SCSIAdapter\iastor

Por último sólo nos quedará generar nuestro BartPE personalizado, indicando en primer lugar el directorio que contiene las fuentes (C:\winxp), nombre y destino del fichero ISO obtenido como resultado (C:\bartpe.iso) y pulsar en "Construir".


Modificando nuestra maquina virtual

Usaremos la ISO del BartPE recién generada para inyectar los drivers adecuados dentro de nuestra máquina virtual. Así que lo primero, desde el interfaz web de vmware server seleccionamos la máquina virtual y pulsamos sobre "Configure VM" dentro de la sección "Commands". En la nueva ventana que nos aparece, y dentro de la sección "BIOS setup" marcaremos "Enter the BIOS setup screen the next time this virtual machine boots".


Antes de iniciar el sistema virtual modificaremos la definición del lector de cdrom para sustituir el dispositivo físico por la imagen ISO de nuestro BartPE.

Cuando la máquina virtual arranque nos encontraremos en la pantalla de configuración de la BIOS donde modificaremos el orden de los dispositivos utilizados para arrancar la máquina de forma que se inicie en primer lugar desde el CDROM.

Sólo nos faltará dejar que arranque completamente nuestro BartPE para, desde el menú GO, FIX-VMSCSI y una vez seleccionada la partición que contiene nuestro Windows virtual, inyectar los drivers adecuados.


Cuando termine el proceso si lanzamos el sistema habremos conseguido solucionar el problema con el arranque y tendremos nuestro Windows listo para jugar con él.

En breve más y mejor, espero.

3 comentarios:

Samquejo dijo...

Hola
Todo esto lo hago con vmware converter standalone, que tambien es gratis e inyecta los drivers.

Por lo demás, está muy bien

neofito dijo...

@Samquejo:

La idea es conseguir esto disponiendo unicamente de la imagen dd del disco del sistema, y creo recordar que esto vmware converter no podia hacerlo.

Saludos y gracias por el comentario

Nicolas | portaexintorhogar.com dijo...
Este comentario ha sido eliminado por un administrador del blog.