WinPE y BartPE

29
Sobre el BartPE. Arrancar Windows/BartPE desde una memoria USB. http://www.vicente-navarro.com/blog/2007/07/03/sobre-el-bartpe-arrancar-windowsbartpe-desde-una-memoria-usb/ Mientras que hay infinidad de LiveCD s y CDs de rescate de sistemas operativos UNIX, no abundan en absoluto los de Windows, ya que Microsoft da pocas facilidades para crearlos, aunque sí ofrece una posibilidad, gracias a su Windows Preinstallation Environment (WinPE) . Con esta herramienta, diversos fabricantes de software han creado interesantes CDs bootables como el del Symantec Ghost o el del ERD Commander (un producto de Winternals , empresa comprada por Microsoft, que nos permitía editar passwords de Windows, entre otras útiles funcionalidades).

description

WinPE y BartPE

Transcript of WinPE y BartPE

Page 1: WinPE y BartPE

Sobre el BartPE. Arrancar Windows/BartPE desde una memoria USB.http://www.vicente-navarro.com/blog/2007/07/03/sobre-el-bartpe-arrancar-windowsbartpe-desde-una-memoria-usb/

Mientras que hay infinidad de LiveCDs y CDs de rescate de sistemas operativos UNIX, no abundan en absoluto los de Windows, ya que Microsoft da pocas facilidades para crearlos, aunque sí ofrece una posibilidad, gracias a su Windows Preinstallation Environment (WinPE). Con esta herramienta, diversos fabricantes de software han creado interesantes CDs bootables como el del Symantec Ghost o el del ERD Commander (un producto de Winternals, empresa comprada por Microsoft, que nos permitía editar passwords de Windows, entre otras útiles funcionalidades).

Page 2: WinPE y BartPE

Pues bien, Bart Lagerweij, creador de muchos tipos de disquetes y CDs de rescate basados en MS-DOS, al ver el panorama, y empeñado en tener un CD bootable de Windows, se decidió a crear un producto gratuito similar al WinPE, el Bart’s Preinstalled Environment (BartPE) bootable live windows CD/DVD. Con esta utilidad, a partir de un CD de instalación de Windows, podemos crear un CD bootable de un Windows bastante limitado pero muy versátil como herramienta de recuperación de un sistema. Además, el BartPE acepta plugins que permiten añadir aplicaciones preparadas para funcionar en este entorno read-only. Hay una gran cantidad de plugins ya creados y listos para añadir.

El BartPE tiene dos grandes ventajas sobre el WinPE: Es gratuito y tiene muchísimos plugins creados por la comunidad listos para usar.

Page 3: WinPE y BartPE

A su vez, el impagable esfuerzo de Bart tiene su justificación en la gran utilidad de un CD bootable de Windows respecto de uno de DOS (disponibilidad de drivers de almacenamiento -SATA, SCSI-, de red, acceso 100% seguro a unidades NTFS…), como él mismo nos cuenta en su página:

Here are a few things that are possible with PE and are not possible with any type of dos-based boot disk, even when using network support and ntfsdos:

Accessing very large (>2TB) NTFS volumes or accessing volumes that are not seen by the BIOS, like some fibre channel disks.

Very reliable scanning and cleaning of viruses on NTFS volumes using a “clean boot”. Active Directory support. Have remote control over other machines, using vnc or remote desktop.En realidad no aporta gran cosa con respecto a lo que un Knoppix nos ofrece hoy en día, pero en un apuro, contar con un BartPE puede suponer una gran ayuda, especialmente si no se tiene conocimientos de Linux.

Cómo crear un CD de BartPE bootable

Lo primero es preparar un CD de Windows o tener listos los ficheros en una unidad. Los Windows aceptados por el BartPE 3.1.10a son:

Windows XP Home Edition (must be slip streamed with Service Pack 1 or higher) Windows XP Professional (must be slip streamed with Service Pack 1 or higher) Windows Server 2003, Web Edition Windows Server 2003, Standard Edition Windows Server 2003, Enterprise EditionA continuación tenemos que descargar el PEBuilder e instalarlo (versión autoinstalable) o descomprimirlo (versión zip) en el directorio de nuestra elección (yo he elegidoE:\pebuilder3110a). A continuación ejecutamos el pebuilder.exe del directorio donde tengamos el PEBuilder y nos aparece un diálogo que nos

pregunta si queremos que la aplicación busque en todas las unidades los ficheros de instalación de Windows. Creo que vale la pena decir que no y directamente especificar a mano dónde tenemos el CD de Windows (o en qué directorio lo tenemos copiado):

Page 4: WinPE y BartPE

Si en este punto sin más complicaciones queremos darle al botón Construir tras especificar que nos genere una imagen, el PEBuilder nos generará un fichero .iso listo para ser grabado (a ser posible en un CD regrabable para probarlo antes de grabarlo definitivamente):

Page 5: WinPE y BartPE

Arrancamos desde el CD y ya tenemos un Windows/BartPE con unas funcionalidades básicas:

Page 6: WinPE y BartPE

Añadir drivers al BartPE

Antes de generar nuestro BartPE definitivo, es muy importante que copiemos los drivers de nuestras tarjetas de red y de nuestros dispositivos de almacenamiento (SCSI, SATA, RAID) en carpetas separadas dentro de drivers\Net y drivers\SCSIAdapter, respectivamente. Esto está explicado en el fichero help\english\drivers.htm.

Por ejemplo, para un interfaz de red Marvell Yukon y una controladora SATA/RAID (son dos drivers) NForce lo dejaríamos así:

E:\pebuilder3110a\drivers>dir /s /bE:\pebuilder3110a\drivers\NetE:\pebuilder3110a\drivers\SCSIAdapterE:\pebuilder3110a\drivers\Net\marvellE:\pebuilder3110a\drivers\Net\marvell\yk51x86.catE:\pebuilder3110a\drivers\Net\marvell\yk51x86.htmE:\pebuilder3110a\drivers\Net\marvell\yk51x86.infE:\pebuilder3110a\drivers\Net\marvell\yk51x86.sysE:\pebuilder3110a\drivers\Net\marvell\yk51x86.txtE:\pebuilder3110a\drivers\SCSIAdapter\sataraidE:\pebuilder3110a\drivers\SCSIAdapter\sata_ideE:\pebuilder3110a\drivers\SCSIAdapter\sataraid\disk1E:\pebuilder3110a\drivers\SCSIAdapter\sataraid\idecoi.dll

Page 7: WinPE y BartPE

E:\pebuilder3110a\drivers\SCSIAdapter\sataraid\idecoiins.dllE:\pebuilder3110a\drivers\SCSIAdapter\sataraid\nvatabus.sysE:\pebuilder3110a\drivers\SCSIAdapter\sataraid\nvraid.catE:\pebuilder3110a\drivers\SCSIAdapter\sataraid\nvraid.infE:\pebuilder3110a\drivers\SCSIAdapter\sataraid\nvraid.sysE:\pebuilder3110a\drivers\SCSIAdapter\sataraid\nvraidco.dllE:\pebuilder3110a\drivers\SCSIAdapter\sataraid\txtsetup.oemE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\idecoi.dllE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\idecoiins.dllE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\nvata.catE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\nvata.infE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\nvata.sysE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\nvcoi.dllE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\nvide.nvuE:\pebuilder3110a\drivers\SCSIAdapter\sata_ide\nvuide.exe

Los plugins del BartPE

Claro, a este Windows no le podemos instalar aplicaciones. En cambio, hemos de configurar y habilitar los plugins que el PEBuilder ya trae o incluso añadir de entre los cientos que tenemos disponibles en Internet.Para ello, hay un directorio plugins donde encontramos los plugins ya incluidos en el PEBuilder y donde podemos poner cualquiera que queramos añadir. Es importante entender que el plugin es el fichero .inf, el fichero .xml detallando las entradas de menú que se han de crear, un fichero .htm con las instrucciones de

uso del plugin y tal vez algunos ficheros más adicionales necesarios. El plugin no incluye la aplicación en sí misma, que habremos de descargar de Internet o comprar según sea el caso. El primer paso para tener el plugin listo es leer y entender la información del fichero .htm. Por ejemplo, esta es la información para el plugin

del putty:PuTTYPuTTY by Simon Tatham (PuTTY/MIT licence) is a Free Win32 Telnet/SSH Client.

Before you can use the putty plugin you must download the program and copy it to the plugin directory.

Download the Windows 95, 98, ME, NT, 2000 and XP binary.Copy the following files into the plugin\putty directory:putty.exeY estas son las instrucciones para el plugin del UltraVNC:UltraVNCUltraVNC (GNU-GPL) is a free remote control package derived from the popular VNC software. With UltraVNC, you can see the desktop of a remote machine and control it with your local mouse and keyboard, just like you would do it sitting in the front of that computer.

Before you can use the plugin you must download the program and copy it to the plugin directory.

Download the latest version of Ultr@VNC Binaries Zip (at this time v1.0.0 RC18).Extract all files from the downloaded file into the plugin\ultravnc\files directory.Or you can get the latest version and install it on your workstation and copy files from c:\program files\ultravncThe default VNC password is set to “bartpevnc”.

De entre los plugins que vienen en el PEBuilder que necesitan ficheros no incluídos, son especialmente interesantes los siguientes:

putty , cliente de SSH UltraVNC cliente y servidor de VNC Ad-Aware , para búsqueda de SpyWare ERD Commander , entre otras interesantísimas utilidades está la de resetear y modificar passwords McAfee , antivirus (hay dos, el Stinger y otro de línea de comandos) Ghost , para clonar particiones y discos

Page 8: WinPE y BartPE

Luego, es fundamental buscar los plugins para Firefox, para algún programa de grabación de CDs/DVDs (como el DeepBurner Portable), para algún programa de compresión de ficheros, como el WinZip o el WinRar y tal vez para el Acrobat Reader.Hay, además, un par de plugins que pueden resultar útiles y no necesitan ningún fichero adicional: el dospe, que nos permitirá usar aplicaciones DOS de 16 bits en línea de comandos y el bootfix que nos mostrará el mensaje “Press any key to boot from CD” antes de arrancar el BartPE para que por defecto el sistema arranque del disco duro normal (lo mismo que hace el CD de instalación de Windows, vamos).Y finalmente, hay un plugin que no debemos dejar de configurar: el keyboard, para tener el teclado configurado para nuestro idioma. Tenemos que editar el ficherokeyboard\keyboard.inf y eliminar el símbolo ; que sigue

a la línea de Spanish (Traditional Sort):; Remove the semicolon at the beginning of the following line to set the default keyboard to: Spanish (Traditional Sort)0x1, "Keyboard Layout\Preload", "1", "0000040A"Con todos los plugins bien configurados, en el PEBuilder le damos al botón plugins y ya podemos habilitar los plugins que hemos configurado. Si a alguno le falta algún fichero requerido, no podremos habilitarlo y nos encontraremos con un error:

Page 9: WinPE y BartPE

Volvemos a generar el .iso y ya tenemos un Windows/BartPE con las aplicaciones de los plugins dentro:

Arrancar un Windows/BartPE desde una memoria USB

Este fue el complicado objetivo de Bart durante mucho tiempo. En los foros del BartPE Boot Bartpe From Usb Flash Drive, please try this! se puede ver la dificultad que representaba el tema. Pero afortunadamente, Bart encontró una solución definitiva apoyándose en un par de ficheros de Windows 2003 SP1: Pe2usb: Installing Bartpe To Usb Flash Disk. El procedimiento es:

Obtener los ficheros setupldr.bin y ramdisk.sys de un Windows 2003 SP1 haciendo:1. Descargar el fichero del SP12. Descomprimirlo (sin instalarlo) a un directorio ejecutando el .exe descargado con el parámetro -x3. Copiar el fichero i386\setupldr.bin a un nuevo directorio srsp1 dentro del directorio del PEBuilder (en mi

caso en E:\pebuilder31110a\srsp1)4. Expandir el fichero ramdisk.sys: expand -r path_al_W2K3SP1\i386\ramdisk.sy_

path_al_pebuilder\srsp1 Generar el BartPE como hemos hecho anteriormente. Esta vez no es necesario generar el .iso Ejecutar pe2usb -f unidad_memoria USB:. El comando pe2usb.cmd ya viene incluido en el

PEBuilder ¡Ojo! ¡Esto formateará la memoria USB y se perderán los datos! ¡Además, el formato se hará en FAT16 con las limitaciones que lleva de tamaño de clúster y de tamaño máximo de partición de 2Gb!Microsoft Windows XP [Version 5.1.2600]

(C) Copyright 1985-2001 Microsoft Corp.

Page 10: WinPE y BartPE

C:\>WindowsServer2003-KB889101-SP1-x86-ENU.exe -x

C:\w2k3sp1>mkdir e:\pebuilder31110a\srsp1

C:\w2k3sp1>cd i386

C:\w2k3sp1\i386>copy setupldr.bin e:\pebuilder31110a\srsp1

1 file(s) copied.

C:\w2k3sp1\i386>expand -r ramdisk.sy_ e:\pebuilder31110a\srsp1\

Microsoft (R) File Expansion Utility Version 5.1.2600.0

Copyright (C) Microsoft Corp 1990-1999. All rights reserved.

Expanding ramdisk.sy_ to e:\pebuilder31110a\srsp1\ramdisk.sys.

ramdisk.sy_: 12504 bytes expanded to 22528 bytes, 80% increase.

E:\pebuilder3110a>pe2usb -f h:

BartPE USB Installer v1.0.1

Copyright (c) 2005 Bart Lagerweij. All rights reserved.

This program is free software. Use and/or distribute it under

the terms of the Nu2 License.

USB target drive set to "H:"

Checking drive "H:"

Checking files...

Page 11: WinPE y BartPE

*******************************************************************************

Drive H: will be formatted!!! All data on drive will be erased!

*******************************************************************************

Type "YES" (uppercase) to continue:YES

Formating drive "H:"...

The type of the file system is FAT32.

The new file system is FAT.

Verifying 240M

Initializing the File Allocation Table (FAT)...

Format complete.

251.805.696 bytes total disk space.

251.805.696 bytes available on disk.

4.096 bytes in each allocation unit.

61.476 allocation units available on disk.

16 bits in each FAT entry.

Volume Serial Number is 98CB-E1FC

Installing bootsector from E:\pebuilder3110a\pe2usb.bin on drive H:

* Expert mode (-x)

* Volume label set to "BartPE"

Reading source boot sector from "E:\pebuilder3110a\pe2usb.bin"

Checking Boot sector information

Reading target boot sector from "\\.\H:"

Writing boot sector back to "\\.\H:"(try 0)

Page 12: WinPE y BartPE

Checking bootsector from drive H:

* Expert mode (-x)

* Inspect mode (-i)

Checking Boot sector information

Boot sector type is "FAT"

Signature=55AAh, OK

Jump instruction=EB, OK

Jump offset=3C, OK

OEM ID="MSDOS5.0"

Bytes per sector=512, OK

Sectors per Cluster=8

Reserved sectors=6

Number of FATs=2, OK

Root entries=512

Media Descriptor=F8h

Sectors per FAT=241

Sectors per Track=63

Number of Heads=255

Hidden Sectors=61

Large Sectors=492331 (0.23GB)

Physical Drive Number=00

Reserved=00h

Extended Boot Signature=29h, OK

Volume Serial Number=98CBE1FCh

Volume Label="BartPE "

System ID="FAT16 "

Boot sector looks OK!

Copying E:\pebuilder3110a\srsp1\ramdisk.sys to E:\pebuilder3110a\BartPE\i386\sys

tem32\drivers

Page 13: WinPE y BartPE

1 file(s) copied.

Copying E:\pebuilder3110a\srsp1\setupldr.bin to H:\ntldr

1 file(s) copied.

Copying E:\pebuilder3110a\BartPE\i386\ntdetect.com to H:\

1 file(s) copied.

Building H:\winnt.sif

Generating ISO image H:\bartpe.iso

Warning: Creating ISO-9660:1999 (version 2) filesystem.

Warning: ISO-9660 filenames longer than 31 may cause buffer overflows in the OS

Size of boot image is 4 sectors -> No emulation

5.48% done, estimate finish Mon Jul 02 23:53:00 2007

10.96% done, estimate finish Mon Jul 02 23:53:00 2007

16.42% done, estimate finish Mon Jul 02 23:53:06 2007

21.89% done, estimate finish Mon Jul 02 23:53:09 2007

27.36% done, estimate finish Mon Jul 02 23:53:11 2007

32.82% done, estimate finish Mon Jul 02 23:53:06 2007

38.30% done, estimate finish Mon Jul 02 23:53:03 2007

43.77% done, estimate finish Mon Jul 02 23:53:02 2007

49.25% done, estimate finish Mon Jul 02 23:53:00 2007

54.72% done, estimate finish Mon Jul 02 23:52:56 2007

60.18% done, estimate finish Mon Jul 02 23:52:58 2007

65.65% done, estimate finish Mon Jul 02 23:52:57 2007

71.12% done, estimate finish Mon Jul 02 23:52:56 2007

76.60% done, estimate finish Mon Jul 02 23:52:55 2007

82.06% done, estimate finish Mon Jul 02 23:52:56 2007

87.53% done, estimate finish Mon Jul 02 23:52:56 2007

93.01% done, estimate finish Mon Jul 02 23:52:55 2007

98.48% done, estimate finish Mon Jul 02 23:52:56 2007

Page 14: WinPE y BartPE

Total translation table size: 2048

Total rockridge attributes bytes: 0

Total directory bytes: 178452

Path table size(bytes): 1656

91398 extents written (178 MB)

Ready!

ISO image size is 178MB

*******************************************************************************

You should be able to boot this on systems with at least 242MB of memory!

*******************************************************************************

Y ya tenemos un Windows/BartPE listo para arrancar de la memoria USB.

Es importante tener en cuenta que toda la imagen es leída y cargada desde la memoria USB en cada arranque, por lo que si ponemos muchos plugins que ocupan mucho espacio, la carga puede ralentizarse mucho, especialmente teniendo en cuenta que esta carga se hace a base de llamadas a la BIOS y, según mi experiencia, hay BIOS que hacen esto mucho más rápido que otras. Y en las que va lento, esos megas extra pueden llegar a suponer minutos adicionales de tiempo de carga.

También hay que tener en cuenta que hemos formateado la partición e instalado un sector de arranque para ella, pero no hemos tocado el MBR. Si habíamos estado jugueteando con el GRUB, por ejemplo, y no tenemos un MBR válido, el BartPE no arrancará, por lo que necesitamos instalar un MBR o un GRUB adecuado.

Comentarios finales

Igual que hicimos en Arrancar MS-DOS desde una memoria USB, ahora podríamos instalar un GRUB en esta memoria USB e incluso copiar el sector de arranque a un fichero. Se haría exactamente igual. Pero como en muchos casos no nos interesará tener una memoria USB con FAT16, para lograr el objetivo que perseguimos de tener varios sistemas operativos en una memoria USB, lo que haremos será dejar una partición separada para el BartPE con su sector de arranque propio.Finalmente, comentar que además del BartPE, en la guía Installing and booting Windows XP from USB drive nos cuentan cómo modificar el CD de Windows XP para poder instalarlo en un disco USB. He de decir que yo lo probé y aunque tenía muy buena pinta cuando la instalación detectó la unidad y se puso a instalar Windows en ella, todo se torció cuando en el primer arranque tras la instalación me apareció un pantallazo azul… ¿Me equivoqué en algo? ¿Problema específico de mi hardware?Actualización 25/9/08:Si te ha interesado esta entrada, es muy probable que te interese su continuación en: Arrancar BartPE desde memorias USB en FAT32, ¡y mucho más rápido!.

Page 15: WinPE y BartPE

Arrancar BartPE desde memorias USB en FAT32, ¡y mucho más rápido!

Ya ha pasado bastante tiempo (más de un año) desde la última vez que hablamos del BartPE:

Sobre el BartPE. Arrancar Windows/BartPE desde una memoria USB. Arrancar Linux, Windows y MS-DOS de una memoria USB

La verdad es que durante este tiempo, apenas lo he usado, ya que siempre que he necesitado recuperar algún sistema o hacer alguna operación sin arrancar el sistema operativo principal, siempre he contado con mi inestimable Knoppix. Sin embargo, recuerdo un par de ocasiones en las que me vino muy bien porque un sistema Windows se había cerrado mal, la partición NTFS necesitaba un chkdsk y, por tanto, el NTFS-3G no la

podía montar. El BartPE me sacó del apuro, ya que pudo montar las unidades NTFS sin problemas.En las entradas anteriores en las que traté el BartPE vimos que el mayor inconveniente de ponerlo en una memoria USB era que la partición tenía que ser FAT, con una tamaño máximo de partición de 2 GiB y un tamaño de cluster excesivamente grande (ver La pesadilla de compartir partición entre Linux y Windows). Esto quizá no era mayor problema cuando las memorias USB eran de 512 MiB o de 1 GiB, pero hoy en día sí lo es. También lo es si queremos instalar el BartPE en un disco duro externo USB.Además, las posibilidades que tenemos con el BartPE son mucho mayores ahora, porque además de poder añadirle plugins, algo limitado y que necesita un esfuerzo para crearloso, al menos, para buscarlos y configurarlos correctamente, tenemos una enorme variedad de aplicaciones portables (p.e. PortableApps) que podemos usar sin problemas y sin preinstalación desde BartPE.Bueno, el caso es que tenía un poco abandonado el tema del BartPE hasta que hace unos días Alfredo Lozano me habló de una utilidad que había usado él para conseguir instalar un BartPE en una memoria USB formateada en FAT32. La he probado y ¡es realmente buena! Funciona con FAT y con FAT32 y además, como en vez de cargar una imagen ISO bien grande en memoria, funciona como un disco duro grabando los ficheros individualmente en la memoria USB, sólo carga los ficheros que necesita en ese momento. Así, en vez de necesitar hasta los 20 minutos que pueden necesitar algunas BIOS en cargar unos 250 MiB, la carga es muchísimo más rápida, tanto con FAT como con FAT32.Pasemos ahora a ver cómo usar la utilidad que nos lo facilita y posteriormente pasaremos a entender cómo funciona por dentro.

El USB-Stick

La utilidad es el USB-Stick.zip, que su autor, Willi Furter, nos presentó en: Utility for creating FAT/FAT32 BartPE USB-Sticks.Nos descargamos el fichero USB-Stick.zip, lo descomprimimos en su propia carpeta USB-Stick dentro de la carpeta del PEBuilder, al mismo nivel que las carpetas plugin odrivers y ejecutamos el script USB-Stick.cmd. Nos encontraremos con el siguiente menú:-------------------------------------------------------

[n] = Create a (n)ew bootable BartPE USB-Stick - FAT32

-------------------------------------------------------

[f] = Change (f)ilesystem for Option [n] (FAT or FAT32)

[x] = E(x)it

Enter your choice [n,f,x]:

Vemos en la cabecera que por defecto estamos en modo FAT32. Si pulsamos la tecla f, cambiaremos el modo a FAT. Podemos seguir pulsando n y el script nos advertirá de que va a formatear la memoria USB:******* ALL DATA ON YOUR USB-STICK WILL BE ERASED! *******

Continue? [y,n]:

Si aceptamos el borrado de los ficheros con la tecla y, obtendremos el diálogo de selección de memoria USB:

Page 16: WinPE y BartPE

----------------------------------------------------------------------

Setup the USB-Stick

----------------------------------------------------------------------

Enter the Drive-ID of your USB-Stick:

Drive-ID = '?' : List the ID's of the connected USB-Drives

Drive-ID = 'Enter' : Back to main menu

Continue:

---------

Drive-ID = 'Drive-Letter' or 'Drive-Number', example 'F:' or 'HD2'

Drive-ID =

Dándole a ? nos aparecerá el listado de memorias USB detectadas en el sistema:Drive-ID = ?

HP USB Disk Storage Format Tool, Version 1.00.012 (11/13/2003)

Copyright (c) 2003 Hewlett-Packard Development Company, L.P.

Connected USB Disk Storage devices:

ID Label Description

----- ----------- --------------------

F: TREKSTOR TrekStor USB Stick CS-D

H: UT163 USB Flash Disk 0.00

HD1 UT163 USB Flash Disk 0.00

HD2 TrekStor USB Stick CS-D

Press <Enter> to view the command-line syntax of this tool, or

<Esc> to exit this help screen...

Page 17: WinPE y BartPE

Tras pulsar ESC para salir, volveremos al diálogo de selección donde podremos introducir la unidad escogida y

confirmar nuestra selección para que la utilidad nos instale nuestro BartPE en la memoria USB con formato FAT32:----------------------------------------------------------------------

Setup the USB-Stick

----------------------------------------------------------------------

Enter the Drive-ID of your USB-Stick:

Drive-ID = '?' : List the ID's of the connected USB-Drives

Drive-ID = 'Enter' : Back to main menu

Continue:

---------

Drive-ID = 'Drive-Letter' or 'Drive-Number', example 'F:' or 'HD2'

Drive-ID = H:

Preparing a new BartPE USB-Stick on 'H:'

Press 'y' to continue [y,n]: y

HP USB Disk Storage Format Tool, Version 1.00.012 (11/13/2003)

Copyright (c) 2003 Hewlett-Packard Development Company, L.P.

The type of the current file system is FAT32.

QuickFormatting 480.38MB...

Initializing file system structures...

Format completed successfully.

System files transferred successfully.

Files transferred successfully.

Page 18: WinPE y BartPE

The type of the new file system is FAT32.

Volume Serial Number is 2829-2CAE

502,677,504 bytes total disk space.

502,345,728 bytes available on disk.

4,096 bytes in each allocation unit.

122,724 total allocation units on disk.

122,643 available allocation units on disk.

------------------------------------------------------------

Copying BartPE files to the USB-Stick H:

------------------------------------------------------------

..\BartPE\autorun.inf

..\BartPE\bootsect.bin

..\BartPE\menu.bat

..\BartPE\WIN51IP

..\BartPE\WIN51IP.SP3

..\BartPE\I386\BIOSINFO.INF

..\BartPE\I386\EXPLORER.EXE

..\BartPE\I386\NTDETECT.COM

...

2165 File(s) copied

------------------------------------------------------------

BartPE USB-Stick Creation done!

------------------------------------------------------------

Page 19: WinPE y BartPE

Press any key...

¡Y ya está! ¡Ya lo tenemos! ¡Y además ahora arranca mucho más rápido!

¿Cómo funciona el USB-Stick?

Entonces, ¿cuál es la diferencia en el modo de funcionamiento entre el USB-Stick y el veterano pe2usb?El resultado del pe2usb es una memoria USB formateada en FAT con un sector de arranque adecuado y apenas

cuatro ficheros:ntldr

NTDETECT.COM

winnt.sif

bartpe.iso

El sector de arranque es uno de Windows NT/2000/XP, de modo que lo que intentará hacer es cargar el ntldr (NT Loader), un código que normalmente buscaría el boot.ini y que cargaría el ntdetect.com para

Page 20: WinPE y BartPE

que detectara el hardware y le devolviera información sobre el resultado para finalmente cargar el kernel de Windows, el ntoskrnl.exe.Sin embargo, en nuestro caso, el ntldr (por ser una copia del setupldr.bin, más detalles al final de la sección) leerá el winnt.sif, que contiene las liguientes líneas:[SetupData]

BootDevice = "ramdisk(0)"

BootPath = "\I386\SYSTEM32\"

OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=bartpe.iso"

y cargará la imagen bartpe.iso en memoria RAM para arrancar desde allí. La técnica la describe Microsoft

en Boot into RAM with Windows PE. Esto tiene un par de problemas. El primero, que necesitamos bastante memoria RAM, al menos tanta como sea la ISO de grande más la cantidad de memoria requerida para mover el Windows. En un sistema de 512 MiB ya sería difícil usar este BartPE, y en uno de 256 MiB casi imposible a menos que la imagen sea muy pequeña. El segundo problema es que hay BIOS que son realmente lentas para leer de memorias USB durante el arranque, y la carga de una imagen de tamaño considerable puede llevar muchos minutos. También influye si la BIOS lee por defecto en modo USB 1.0, 1.1 o 2.0 (BartPE loading speeds).La nueva técnica usada por USB-Stick ya se había descrito anteriormente en How To: Boot BartPE From A

FAT32 Formatted Drive (Easy) y Bartpe Usb One Button Installer, pe2usb UPDATED for HDD like install, pero Willi Furter, con su utilidad, nos ha facilitado su implementación enormemente.El problema que hay con FAT32 es que el sector de arranque de estas particiones creado por los Windows NT/2000/XP no funciona bien con memorias USB. Sin embargo, podemos usar un sector de arranque de FAT32 creado por MS-DOS/Windows 9x y funcionará bien con memorias USB. Por eso podemos hacer fácilmente memorias USB que arranquen MS-DOS. La diferencia entre un sector de arranque de MS-DOS/Windows 9x y uno de NT/2000/XP, es que mientras que el primero intentará cargar el ficheroio.sys y el msdos.sys, el segundo intentará cargar el ntldr, del que ya hemos hablado anteriormente.La ayuda del comando de Linux ms-sys, que ya hemos usado a menudo previamente precisamente para estos

menesteres, nos muestra los diferentes tipos de sector de arranque y de MBR que existen:# ms-sys

Usage:

ms-sys [options] [device]

Options:

-1, --fat12 Write a FAT12 floppy boot record to device

-2, --fat32nt Write a FAT32 partition NT boot record to device

-3, --fat32 Write a FAT32 partition DOS boot record to device

-6, --fat16 Write a FAT16 partition DOS boot record to device

-l, --wipelabel Reset partition disk label in boot record

-p, --partition Write partition info (hidden sectors and drive id)

to boot record

-m, --mbr Write a Windows 2000/XP/2003 MBR to device

-9, --mbr95b Write a Windows 95B/98/98SE/ME MBR to device

-d, --mbrdos Write a DOS/Windows NT MBR to device

Page 21: WinPE y BartPE

-s, --mbrsyslinux Write a public domain syslinux MBR to device

-z, --mbrzero Write an empty (zeroed) MBR to device

-f, --force Force writing of boot record

-h, --help Display this help and exit

-v, --version Show program version

-w, --write Write automatically selected boot record to device

Default Inspect current boot record

Warning: Writing the wrong kind of boot record to a device might

destroy partition information or file system!

Pues bien, la solución que aporta la nueva técnica es arrancar un MS-DOS estándar que lo único que haga sea cargar el grub4dos, una interesante variante de GRUB que, entre otras cosas, nos permite ejecutar el gestor de arranque desde dentro de MS-DOS. Y desde el grub4dos se ejecuta el ntldr y comienza la carga del BartPE desde el directoriominint (por ser una copia del setupldr.bin, más detalles al final de la sección).Así, si estos son los ficheros y directorios que el USB-Stick nos deja en nuestra memoria USB:H:\>dir

Volume in drive H has no label.

Volume Serial Number is 2829-2CAE

Directory of H:\

23/04/1999 22:22 222.390 IO.SYS

30/06/2008 08:53 0 MSDOS.SYS

23/04/1999 22:22 93.890 COMMAND.COM

21/09/2008 20:30 <DIR> grub4dos

27/06/2008 15:38 124 CONFIG.SYS

30/06/2008 12:25 129.078 LOGO.SYS

13/04/2008 22:13 47.564 NTDETECT.COM

14/04/2008 00:02 260.288 ntldr

14/05/2008 09:23 167 winbom.ini

02/11/2004 15:05 46 autorun.inf

Page 22: WinPE y BartPE

02/11/2003 10:08 52 menu.bat

21/09/2008 19:36 0 WIN51IP

21/09/2008 19:36 0 WIN51IP.SP3

21/09/2008 19:36 <DIR> minint

21/09/2008 19:36 <DIR> Programs

10 File(s) 531.209 bytes

3 Dir(s) 141.889.536 bytes free

vemos que el CONFIG.SYS contiene únicamente una llamada al grub4dos al que ya le pasamos las opciones en los parámetros, en lugar de en el típico fichero menu.lst:device=\grub4dos\grub.exe --config-file="timeout 0;default 0;title Booting BartP

E;find --set-root /ntldr;chainloader /ntldr"

El menú, si lo ponemos en el formato en el que estamos acostumbrados a verlo, es éste:

timeout 0

default 0

title Booting BartPE

find --set-root /ntldr

chainloader /ntldr

Lo genial del grub4dos es que el “chainloader /ntldr” funciona, y digo esto porque el GRUB de siempre, el que instalamos en el MBR, no es capaz de hacerle un chainloaderal ntldr. Yo lo he probado sólo para

darme de bruces una y otra vez con este error:grub> chainloader /ntldr

Error 13: Invalid or unsupported executable format

Si miramos detenidamente lo que hace el script, veremos que:

Usa la utilidad de HP hpusbf.exe para buscar y listar las unidades USB.

Usa la misma utilidad para formatear la unidad, haciendo la unidad “bootable” y copiando los fichero de arranque de MS-DOS sólo en el caso de FAT32:

if "%fs%"=="FAT32" (

hpusbf.exe %id% -FS:%fs% -Q -Y -B:dos_files -D:minint\SYSTEM32 -S:%WorkDir%\Stick-Flag

if errorlevel 1 goto HPUSBF

) else (

Page 23: WinPE y BartPE

hpusbf.exe %id% -FS:%fs% -Q -Y -D:minint\SYSTEM32 -S:%WorkDir%\Stick-Flag

if errorlevel 1 goto HPUSBF

)

En el caso de FAT, su sector de arranque sí que es capaz de buscar el fichero NTLDR en unidades USB, como hacía el pe2usb, de forma que le ponemos el sector de arranque estándar de NT/2000/XP usando el comando bootsect.exe, utilidad que viene en el DVD de Windows Vista:if "%fs%"=="FAT32" goto COPYFILES

:: ensure that we have always a correct XP-bootsector if fs=FAT:

bootsect.exe /nt52 %DrvLetter% /force >nul

Además, también parchea el sector de arranque tal y como describió Bart Lagerweij en su famoso post Boot Bartpe From Usb Flash Drive, please try this!::: ensure that 'Drive ID' in the bootsector has the correct value:

mkbt.exe -x -c %DrvLetter% %Temp%\BartPE_Temp\bootsector.dat >nul

gpatch.exe %Temp%\BartPE_Temp\bootsector.dat /i%offset% /n1 /h80 >nul

mkbt.exe -x -c %Temp%\BartPE_Temp\bootsector.dat %DrvLetter% >nul

¡Ah! Y también mira que la memoria USB sea de al menos 1 GiB:

:OK

cd /d %WorkDir%

freedisk.exe %DrvLetter% 700000000 >nul

if errorlevel 1 goto TOOSMALL

goto SIZEOK

:TOOSMALL

echo.

echo ************************************************************

echo * THIS USB-STICK HAS NOT ENOUGH CAPACITY! *

echo * (MIN. 1GB-STICK IS REQUIRED FOR BARTPE) *

echo ************************************************************

echo.

echo Press any key...

pause >nul

if exist %DrvLetter%\minint\nul rd /s /q %DrvLetter%\minint >nul

Page 24: WinPE y BartPE

goto END

1 GiB es un poco exagerado, ya que yo he conseguido instalar el BartPE sin problemas en una memoria de 512 MiB. Sólo he tenido que comentar la línea:

REM if errorlevel 1 goto TOOSMALL

Por último, sabiendo que el fichero ntldr que usa el pe2usb es el setupldr.bin del SP1 de Windows 2003, tenía curiosidad por saber qué era el que lleva el USB-Stick en el propio zip, y tras un poco de investigación, resulta que es el setupldr.bin del Windows XP SP3, de ahí la reciente fecha: 14/4/2008.La diferencia entre el ntldr estándar y el setupldr.bin es que mientras que el primero busca directamente el boot.ini para ver qué Windows arrancar, el segundo se usa en el Windows PE, o para crear discos de rescate, buscando directamente el kernel en la carpeta i386 o en minint. Es lo habitual en dichos casos copiar el setupldr.bin comontldr.

Arrancar Linux, Windows y MS-DOS de una memoria USB a partir del USB-Stick

Una vez que tenemos una memoria USB formateada en FA32 y preparada con USB-Stick para arrancar BartPE

con éxito, lo tenemos extraordinariamente fácil para lograr lo mismo que hacíamos en Arrancar Linux, Windows y MS-DOS de una memoria USB de forma bastante más sencilla.Para empezar, ya tenemos BartPE y MS-DOS. Lo del BartPE es evidente, y para obtener MS-DOS sólo tenemos que editar el CONFIG.SYS, que ya hemos visto antes que lleva únicamente una línea para cargar el grub4dos, para añadir un menú que nos permita simplemente quedarnos en el MS-DOS sin cargar el grub4dos:[menu]

menuitem=DOS, MS-DOS

menuitem=BARTPE, grub4dos/BartPE

menudefault=BARTPE, 10

[COMMON]

[DOS]

DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF

DOS=UMB

DOS=HIGH

DEVICEHIGH=C:\DOS\DISPLAY.SYS CON=(EGA,,1)

COUNTRY=034,850,C:\DOS\COUNTRY.SYS

[BARTPE]

Page 25: WinPE y BartPE

device=\grub4dos\grub.exe --config-file="timeout 0;default 0;title Booting BartPE;find --set-root /ntldr;chainloader /ntldr"

Los ficheros de C:\DOS que aparecen en la sección [DOS] tendremos que copiarlos a la memoria junto a todos los que nos hagan falta. También convendría añadir unAUTOEXEC.BAT que fuera al menos esto:@ECHO OFF

SET PATH=C:\DOS

LH DOSKEY

MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)

MODE CON CODEPAGE SELECT=850

LH KEYB SP,,C:\DOS\KEYBOARD.SYS

Si no tenemos disponibles los ficheros adicionales de MS-DOS, también podemos dejar la sección [DOS] vacía y no tener AUTOEXEC.BAT, pero no tendremos el teclado en castellano ni el juego de caracteres habitual.

Una vez cargado el grub4dos, no tenemos por qué limitarnos a cargar el /ntldr y ya está. Podemos usarlo para cargar el memtest (como el autor del USB-Stick propone con los ficheros de la carpeta custom) o, por

ejemplo, un Knoppix. Veámos cómo hacerlo.En el CONFIG.SYS le vamos a decir al grub4dos que cargue un menu.lst:[BARTPE]

device=\grub4dos\grub.exe --config-file=\grub4dos\menu.lst

Copiamos el memtest.img.gz del directorio custom del USB-Stick al directorio grub4dos de la memoria

USB.

Page 26: WinPE y BartPE

Copiamos también del CD de Knoppix la carpeta entera KNOPPIX, así como los ficheros linux y minirt.gz de boot/isolinux, que pondremos en el directorio raíz de la memoria USB

(ver Arrancar Knoppix desde una memoria USB usando SYSLINUX).Creamos un menu.lst en el directorio /grub4dos de la memoria USB con este contenido:## Menu for Grub4Dos

timeout 5

default 0

color white/blue yellow/cyan

title Booting BartPE

find --set-root /ntldr

chainloader /ntldr

title Memtest

map --mem /grub4dos/memtest.img.gz (fd0)

map --hook

chainloader (fd0)+1

rootnoverify (fd0)

map --floppies=1

title Knoppix Linux Directo ES

kernel /linux ramdisk_size=100000 init=/etc/init lang=es apm=power-off vga=791 initrd=minirt.gz nomce loglevel=0 quiet BOOT_IMAGE=knoppix

initrd /minirt.gz

title Knoppix Linux Directo ES / init 2

kernel /linux ramdisk_size=100000 init=/etc/init lang=es apm=power-off vga=791 initrd=minirt.gz nomce loglevel=0 quiet BOOT_IMAGE=knoppix 2

initrd /minirt.gz

title Knoppix Linux Failsafe / init 2

kernel /linux ramdisk_size=100000 init=/etc/init lang=us vga=normal atapicd nosound noapic noacpi pnpbios=off acpi=off nofstab noscsi nodma noapm nousb nopcmcia nofirewire noagp nomce nodhcp xmodule=vesa initrd=minirt.gz BOOT_IMAGE=knoppix 2

Page 27: WinPE y BartPE

initrd /minirt.gz

Y así, de esta forma tan sencilla, ya hemos conseguido una memoria USB que arranque MS-DOS, Windows y Linux sobre la base que nos deja el USB-Stick.

Yo, que ya tenía una memoria USB preparada con el sistema descrito hace meses en Arrancar Linux, Windows y MS-DOS de una memoria USB, sólo he tenido que copiar los ficheros del BartPE y editar el CONFIG.SYS para lograr una memoria USB que arranca un GRUB clásico, desde el que podemos pasar al menú de MS-DOS, que nos permite arrancar el grub4dos. ¿No es de locos?

Cuidado con los discos externos USB con varias particiones

En las memorias USB de estado sólido (los dedos USB), Windows no nos permite tener particiones (Linux sí que nos lo permite). En los discos duros externos USB mecánicos, Windows sí que nos deja tener diferentes particiones, como si de un disco interno se tratara. En tales casos, el USB-Stick no funcionará bien, ya que la utilidad que maneja por debajo, el HPUSBFW, cuando detecta un disco con varias particiones, no acepta

formatear sólo una de ellas, sino que tiene que ser todo el disco de forma que sólo haya una gran partición en el disco.Si queremos instalar BartPE en uno de estos discos, USB-Stick no nos va a ayudar. Sin embargo, la utilidad clásica, el pe2usb no tiene problemas en estos casos, aunque tiene que ser formateando la partición en FAT. Lo malo es que ya sabemos que el BartPE que instala el pe2usb necesita siglos para arrancar.Pues si tenemos otra memoria USB normal, ejecutamos el USB-Stick sobre ella y después copiamos todos los ficheros que hay en ella en la partición del disco externo preparada con pe2usb, conseguiremos arrancar el BartPE también de un disco duro externo sin problemas. Otra opción sería combinar el pe2usb.cmd, que también es un script, para la parte de formateo y escritura del sector de arranque con el USB-Stick.cmd, para

la parte de copiado de los ficheros relevantes del BartPE.En cualquier caso, ¡cuidado con los discos externos con particiones no sea que las perdamos!