USB bootable con syslinux 6 y Windows RE

USB bootable con syslinux 6 y Windows RE 

En posts anteriores hemos visto como crear un USB bootable con syslinux 6
http://cmdcons.blogspot.com.es/2016/04/crear-live-usb-de-puppy-linux-en-un-usb.html

y como añadirle un menu más vistoso que el modo texto
http://cmdcons.blogspot.com.es/2016/04/anadir-menu-de-arranque-al-live-usb-de.html


Ahora vamos a añadirle Windows RE (Windows Recovery Enviroment)
Muy útil para reparar el inicio de Windows Vista, 7, 8.1 ,10 y similares.

Para los que no sepan lo que es Windows RE
https://technet.microsoft.com/en-us/library/hh825173.aspx
https://technet.microsoft.com/en-us/library/cc765966(v=ws.10).aspx

Elementos que necesitamos
7-zip (http://www.7-zip.org/)
Syslinux 6.03 (https://www.kernel.org/pub/linux/utils/boot/syslinux/)
ISO de instalación de Windows (mejor si es de windows 10 o de windows 2012 r2)


Antes de nada, configuramos nuestro equipo windows para que muestre todos los ficheros ocultos y de sistema
En Windows 7, vamos a Inicio-> Panel de control  -> Opciones de carpeta
En la pestaña Ver marcamos la casilla "Mostrar archivos, carpetas y unidades ocultos"


Entre las últimas opciones, desmarcamos "Ocultar archivos protegidos del sistema operativo"

Pulsamos Aceptar


Una vez hecho esto, vamos a ello:

Paso 1 - Crear estructura de carpetas  para WINRE

Creamos la carpeta c:\temp\winre en la que vamos a guardar todo esto.

Creamos estas 2 carpetas
c:\temp\winre\boot
c:\temp\winre\sources

Paso 2 - Descargar una ISO de instalacion de Windows

Obtenemos una iso de instalacion de windows.
En mi caso voy a usar la que tengo más a mano, que es una ISO de Windows server 2012 r2
(se puede descargar desde https://msdn.microsoft.com/en-us/windowsserver2012r2.aspx)

Paso 3 - Extraer ficheros necesarios de la ISO:
Abrimos su contenido con 7-zip.

Extraemos el fichero bootmgr a c:\temp\winre

Extraemos el fichero boot\boot.sdi a la carpeta c:\temp\winre\boot

Extraemos el fichero boot\bcd a la carpeta C:\temp\WinRE\boot

Extraemos el fichero boot\bootfix.bin a la carpeta C:\temp\WinRE\boot

Vamos a la carpeta sources
Localizamos y abrimos el fichero install.wim
Dependiendo de qué tipo de instalacion sea, habrá una o más carpetas con numeros (1,2,3...)

Entramos en la carpeta 1 (por ejemplo)
Vamos a windows\system32
Localizamos la carpeta RECOVERY
Extraemos el fichero winre.wim a c:\temp\WinRE\sources
Renombramos el fichero c:\temp\WinRE\sources\winre.wim como boot.wim

Copiamos el fichero bcd a la carpeta C:\temp\WinRE\boot

Después de todo esto, la estructura de carpetas y ficheros debe quedar así:
C:\TEMP\WINRE
¦   bootmgr
¦
+---boot
¦       bcd
¦       boot.sdi
¦       bootfix.bin
¦
+---sources
¦       boot.wim

Paso 4 - Copiar los datos al USB de arranque

Copiamos el contenido de la carpeta WINRE a nuestro USB


Paso 5 - Añadir configuracion en syslinux.cfg

OJO - CUIDADO - ATENCIÓN:
G: es la letra de unidad del USB que estoy usando. En tu caso puede ser distinta letra.

Ahora hay que reflejar estos cambios en la configuración del arranque de syslinux
Añadir al fichero g:\syslinux\syslinux.cfg

LABEL WinPE
   COM32 /syslinux/chain.c32
   APPEND boot ntldr=/bootmgr


Paso 6 - Copiar el fichero chain.c32 al USB

Necesitamos el fichero chain.c32
Copiamos syslinux-6.03\bios\com32\chain\chain.c32 a g:\syslinux\chain.c32

Paso 7 - Prueba de inicio

Iniciamos desde USB
Escogemos Winpe y nos sale este error

File: \Boot\BCD
Status: 0xc0000225

Para solucionar este error:


En syslinux.cfg hay que cambiar
   APPEND boot ntldr=/BOOTMGR
por  
   APPEND fs ntldr=/BOOTMGR
 
Iniciamos y ya funciona




Nuestro fichero g:\syslinux\syslinux.cfg queda así:

UI vesamenu.c32
MENU TITLE Boot Menu
default puppy
prompt 0
timeout 50

####################################################################################################################################
label puppy
  MENU LABEL Puppy Linux precise-5.7.1
  kernel /puppy/vmlinuz
  append initrd=/puppy/initrd.gz pmedia=usbflash pfix=copy nosmp 

####################################################################################################################################
LABEL WinPE
   MENU LABEL Windows Recovery (w2k12 r2)
   COM32 /syslinux/chain.c32
   APPEND fs ntldr=/BOOTMGR
   


Comentarios

Entradas populares de este blog

Cómo saber el UUID de un equipo

Reducir el tamaño de install.wim a menos de 4 GB

Monitor HP No funciona ningún botón - OSD LOCKOUT