Guía para instalar y ejecutar Windows XP desde una memoria USB o una unidad de disco duro externo
Hola a todos, se me ha creado una duda es la siguiente: ¿Es posible instalar Windows XP en una memoria USB o un disco duro externo? la respuesta es simplemente SI, si se pude hacer y es relativamente sencillo de hacer, solo es seguir unos pasos, los cueles googleando me encontré en la red.
Antes que nada esto que escribo está basado en otra guía que se encuentra en ingles y al final de esta entrada doy el link para que lo consulten.
Ingredientes
- Un PC con Windows para poder hacer los pasos de este tutorial.
- Un disco duro USB2 (es lo mejor por razones de transferencias) ó una memoria USB de 4GB (de menos nó por razones de no quedarnos cortos en espacio)
- Un CD con Windows XP (En mi caso tenía un CD con WindosXP SP2 y le integré el SP3 antes de empezar a con este tutorial)
- Cualquier software que permita la manipulación directa de archivo ISO (en mi caso yo utilicé WinISO)
- El SDK de CAB de Microsoft.
- Y cualquier software que pueda grabar archivos ISO en un CD (si no tienes uno a la mano, puedes utilizar este que es gratuito)
- Y por último muchas ganas y algo de paciencia.
Comentarios antes de empezar
Asumiré que sabes como crear un archivo ISO con WinISO (si no lo sabes puedes googlearlo pero el programa es intuitivo y de muy fácil manejo). También asumiré que sabes entrar en la consola DOS de Windows. Sobra decir que no me hago responsable por ninguna perdida de datos ni daños de hardware ni software pero si te da miedo probar esto en tu maquina, hay buenas opciones de maquinas virtuales como VirtualBOX o VMware y muchas más en las que puedes poner el resultado final a pruebas sin riesgos a perdidas de datos. Debes de tener en cuenta que donde vallas a probar el resultado, debe haber soporte de arranque por el puerto USB, casi siempre cuando el PC está arrancando uno presiona F8 o F12 (esto puede variar según sea la configuración que la tarjeta madre disponga para este proceso) varias veces hasta que sale un menú donde te pregunta ¿por donde desea arrancar? y te muestra varias opciones y entre ellas alguna que diga USB o algo por el estilo.
Manos a la obra
1. Extraer una imagen en un archivo ISO del CD que contiene nuestro Windows XP (aquí es donde utilizamos el WinISO)
2. A esa imagen que acabamos de crear, con la ayuda de WinISO, abrimos ese archivo y entramos ala carpeta I386 y extraemos los siguientes archivos:
- TXTSETUP.SIF
- DOSNET.INF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
3. Usando programa que hemos descargado de Microsoft (el SDK de CAB), desempaquetamos los 3 archivos que terminan en .IN_ para desempaquetar estos archivos entramos a la consola de Windows XP y utilizamos el siguiente comando “cabarc x NOMBRE_DEL_ARCHIVO” Ejemplo “cabarc x USB.IN_” sin las comillas. Al final obtendremos los siguientes 3 archivos
- usb.inf
- usbport.inf
- usbstor.inf
Y ya teniendo esto, es mejor que borres los tres archivos que terminan en .IN_
4. Aquí empezamos el trabajo de verdad (la parte principal), vamos a editar los archivos y puedes hacerlo con el blog de notas para que no te enredes.
TXTSETUP.SIF
En primer lugar, debes mover las siguientes entradas de [InputDevicesSupport.Load] a la sección [BootBusExtenders.Load], como se muestra aquí:
[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
ísapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = Ohci1394.sys
usbehci = usbehci.sys
usbohci = Usbohci.sys
usbuhci = Usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys
[InputDevicesSupport.Load]
usbehci = usbehci.sys
usbohci = Usbohci.sys
usbuhci = Usbuhci.sys
usbhub = usbhub.sys
usbccgp = Usbccgp.sys
hidusb = hidusb.sys
de serie = serial.sys
Serenum = serenum.sys
usbstor = usbstor.sys
ahora el mismo para [BootBusExtenders] y [InputDevicesSupport]
[BootBusExtenders]
pci = “PCI-Bustreiber”,files.pci,pci
acpi = “ACPI Plug & Play-Bustreiber”,files.acpi,acpi
isapnp = “ISA Plug & Play-Bustreiber”,files.isapnp,isapnp
acpiec = “Integrierter ACPI-Controllertreiber”,files.none,acpiec
ohci1394 = “IEEE-1394-Bus-OHCI-konformer Anschlusstreiber”,files.ohci1394,ohci1394
usbehci = “Erweiterter Hostcontroller”,files.usbehci,usbehci
usbohci = “Open Hostcontroller”,files.usbohci,usbohci
usbuhci = “Universeller Hostcontroller”,files.usbuhci,usbuhci
usbhub = “Standard-USB-Hubtreiber”,files.usbhub,usbhub
usbstor = “USB-Speicherklassentreiber”,files.usbstor,usbstor
[InputDevicesSupport]
usbehci = “Erweiterter Hostcontroller”,files.usbehci,usbehci
usbohci = “Open Hostcontroller”,files.usbohci,usbohci
usbuhci = “Universeller Hostcontroller”,files.usbuhci,usbuhci
usbhub = “Standard-USB-Hubtreiber”,files.usbhub,usbhub
hidusb = “HID-Parser”,files.hidusb,hidusb
serial = “Treiber fr seriellen Anschluss”,files.none,serial
serenum = “Enumerator fr seriellen Anschluss”,files.none,serenum
usbstor = “USB-Speicherklassentreiber”,files.usbstor,usbstor
usbccgp = “USB Generic Parent Driver”,files.usbccgp,usbccgp
NOTA: Los mensajes que están entre comillas pueden que no sean los mismos que te aparezcan a ti, ya que tu tal ves estás utilizando la versión en español y las lineas que ahí estoy poniendo son las del tutorial en el que me basé, pero si miras bien te darás cuenta que no hay perdida entre lo que ves aquí y lo que ves en tus archivos.
A continuación, también tenemos que escribir varias claves en el Registro. Inserte lo siguiente en la sección [HiveInfs.Fresh]:
[HiveInfs.Fresh]
AddReg = hivedef.inf,AddReg
AddReg = hivesys.inf,AddReg
AddReg = hivesft.inf,AddReg
AddReg = hivecls.inf,AddReg
AddReg = hiveusd.inf,AddReg
AddReg = dmreg.inf,DM.AddReg
AddReg = usbboot.inf,usbservices
y también en el [SourceDisksFiles]
[SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3
bootvid.dll = 1,,,,,,3_,2,0,0,,1,2
kdcom.dll = 1,,,,,,3_,2,0,0,,1,2
Y por último guardamos y cerramos el archivo TXTSETUP.SIF
DOSNET.INF
Ahora abrimos el archivo DOSNET.INF y cambimos la segunda sección [Files] que se vea así:
[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx (…….)
NOTA: la parte que dice (…….) significa que de ahí para abajo hay más cosas y solo pongo esas 3 líneas para que te hagas a una idea de donde debes hacer los cambios.
usb.inf
OJO aquí CAMBIAMOS las líneas en negrilla en las secciones [StandardHub.AddService] y [CommonClassParent.AddService]:
[StandardHub.AddService]
DisplayName = %StandardHub.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender[CommonClassParent.AddService]
DisplayName = %GenericParent.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbccgp.sys
LoadOrderGroup = Boot Bus Extender
usbport.inf
OJO aquí CAMBIAMOS las líneas en negrilla en las secciones [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] y [ROOTHUB.AddService]:
[EHCI.AddService]
DisplayName = %EHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbehci.sys
LoadOrderGroup = Boot Bus Extender[OHCI.AddService]
DisplayName = %OHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbohci.sys
LoadOrderGroup = Boot Bus Extender[UHCI.AddService]
DisplayName = %UHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbuhci.sys
LoadOrderGroup = Boot Bus Extender[ROOTHUB.AddService]
DisplayName = %ROOTHUB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender
usbstor.inf
OJO aquí CAMBIAMOS y AGREGAMOS las líneas en negrilla en la sección [USBSTOR.AddService]:
[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3
ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender
5. Creamos un archivo con el nombre USBBOOT.INF en el mismo directorio donde tenemos los otros archivos que estamos trabajando y a este nuevo archivo le ponemos lo siguinete:
[usbservices]
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”DisplayName”,0×00000000,”USB Mass Storage Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”ErrorControl”,0×00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”Group”,0×00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”ImagePath”,0×00020000,”system32\DRIVERS\USBSTOR.SYS”
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”Start”,0×00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\USBSTOR”,”Type”,0×00010001,1HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”DisplayName”,0×00000000,”USB 2.0 Enhanced Host Controller Miniport Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”ErrorControl”,0×00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”Group”,0×00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”ImagePath”,0×00020000,”system32\DRIVERS\usbehci.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”Start”,0×00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbehci”,”Type”,0×00010001,1HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”DisplayName”,0×00000000,”USB2 Enabled Hub”
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”ErrorControl”,0×00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”Group”,0×00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”ImagePath”,0×00020000,”system32\DRIVERS\usbhub.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”Start”,0×00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbhub”,”Type”,0×00010001,1HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”DisplayName”,0×00000000,”Microsoft USB Universal Host Controller Miniport Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”ErrorControl”,0×00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”Group”,0×00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”ImagePath”,0×00020000,”system32\DRIVERS\usbuhci.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”Start”,0×00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbuhci”,”Type”,0×00010001,1HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”DisplayName”,0×00000000,”Microsoft USB Open Host Controller Miniport Driver”
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”ErrorControl”,0×00010001,1
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”Group”,0×00000000,”System Reserved”
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”ImagePath”,0×00020000,”system32\DRIVERS\usbohci.sys”
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”Start”,0×00010001,0
HKLM,”SYSTEM\CurrentControlSet\Services\usbohci”,”Type”,0×00010001,1
Guardamos y cerramos (creo que a estas alturas has guardado todos los cambios que hemos realizado en los demás archivos ¿verdad?)
6. Ahora volvemos a crear los archivos .IN_ a partir de los archivos modificados, esto lo hacemos con el SDK de CAB y en la consola de Windows XP con los siguientes comandos respectivamente:
cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf
Ahora ya tenemos los archivos .IN_ y ya podemos borrar los archivos “usb.inf”, “usbport.inf” y “usbstor.inf”. Tranquilo paciencia que ya hemos terminado lo más difícil.
7. Ahora hay que meter los archivos modificados en la carpeta I386 del archivo ISO que hemos creado en el primer paso. Para no tener inconvenientes, es mejor que borremos el siguente listado de archivos de la carpeta que acabo de mencionar:
- Dosnet.inf
- TXTSETUP.SIF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
Una ves que los hemos borrado, ahora si copiamos los siguientes archivos (que son los que hemos modificado) a la carpeta de donde borramos los anteriores archivos:
- USBBOOT.INF
- DOSNET.INF
- TXTSETUP.SIF
- USB.IN_
- USBPORT.IN_
- USBSTOR.IN_
Guardamos los cambios realizados en nuestro archivo .ISO y listo, ya tenemos nuestra imagen de Windows XP con soporte para memorias USB y Discos Duros Externos.
Ahora solo resta quemar la imagen en un CD (para ello utilizamos cualquier programa de quemado que soporte archivos .ISO o también puedes utilizar el programa que te he recomendado, pues es muy fácil, sencillo y gratuito) o también podemos probarla con programas de virtualización.
Notas Finales
Durante la instalación del controlador, los controladores USB, le preguntarán, ya que no son “certificados” – Esto es normal. Nuestros cambios han invalidado la suma de comprobación, por lo que el controlador no está firmado. Sólo tiene que pulsar “sí” un par de veces.
Al terminar de la instalación, el sistema se queja de inmediato en el primer arranque que el archivo de paginación no existe. Puede ignorar esto por ahora, ya que Windows funciona bien sin él. La gente está buscando como solucionar este problema, pero no es crítico, por ahora.
Créditos
En la linkografía está la página de donde saqué la información para escribir esta entrada, de todas maneras puedes enviar un e-mail al autor original de este tutorial emanuel*REMV_ME*@ngine.de (en ingles) ó visitar el foro dedicado a este tutorial (en ingles)
Linkografía
http://www.ngine.de/index.jsp?pageid=4176
