сряда, 7 октомври 2009 г.

Windows XP Professional Installation onto SD card or USB stick

There are many ways describing this procedure. May be this isn't the simplest but this is method that worked for me on Asus Eee PC 4G and many other PCs.

sources:

http://wiki.eeeuser.com/howto:installxp
http://www.ngine.de/index.jsp?pageid=4176
http://www.overclockers.com/index.php?option=com_content&view=article&id=4346:clonexp&catid=54:howto&Itemid=4260

Needed items

1. Asus Eee PC (in this case)
2. USB thumb drive ( I used a Corsair Flash Voyager 1G)
3. SDHC Card (or other USB stick if you want to install your Windows on USB)
4. Windows XP Pro (SP1 or SP2) Original installaton CD or ISO image
5. Hitachi Microdrive Filter (download it from here)
6. WinISO
7. Hiren Boot CD - ISO image (ver. 9 or 10)
8. Cabsdk
9. WinSetupFromUSB 0.2.3 (download from here) Thanks Ilko for this great program
10. Daemon tools

As you see, you don't need any external CD/DVD devices.

I. Creating an XP Installation ISO image file.


This procedure is taken from here http://www.ngine.de/index.jsp?pageid=4176

1. Dumping the original Windows CD into an ISO File


Pretty easy one. Simply open WinISO, and select Actions -> Make ISO from CDROM, and save your CD image.

2. Extracting the files we need to work on



After the CD dump is done, close and reopen WinISO. Then, open the ISO file you just created using File ->

Open.
Now, click the I386 folder, and select the following files (Ctrl key to multi-select)

* TXTSETUP.SIF
* DOSNET.INF
* USB.IN_
* USBPORT.IN_
* USBSTOR.IN_

Select Actions -> Extract and put the resulting files into some folder to work on them.

3. Unpacking IN_ files



Use the Cab SDK (from the command line) for extracting the contents of the .IN_ files. Each of them contains exactly one .inf file. If you are unsure how to use the Cab SDK, here is an example command line:

"cabarc x USBSTOR.IN_" . You should end up with three new files in the folder, called:

* usb.inf
* usbport.inf
* usbstor.inf

You can now delete the .IN_ files.

4. Editing the files

This is the main job. i ll also try to explain a bit whats happening. Use a simple Texteditor like Notepad.

4-A) TXTSETUP.SIF


This file is loaded on the initial install step by the Windows XP CD installer. In this file, we will change the way Windows treats USB devices during system setup -- the default is to only treat them as input devices during installation -- we will change this to include mass storage driver support (which needs to be loaded into the installer much earlier in order to work).
First, move the following entries from [InputDevicesSupport.Load] to the [BootBusExtenders.Load] section , as shown here


[BootBusExtenders.Load]
pci = pci.sys
acpi = acpi.sys
isapnp = 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
serial = serial.sys
serenum = serenum.sys
usbstor = usbstor.sys

... now the same for [BootBusExtenders] and [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 = "Enhanced Host Controller",files.usbehci,usbehci
usbohci = "Open Host Controller",files.usbohci,usbohci
usbuhci = "Universal Host Controller",files.usbuhci,usbuhci
usbhub = "Generic USB Hub Driver",files.usbhub,usbhub
usbstor = "USB Storage Class Driver",files.usbstor,usbstor



[InputDevicesSupport]
usbehci = "Enhanced Host Controller",files.usbehci,usbehci
usbohci = "Open Host Controller",files.usbohci,usbohci
usbuhci = "Universal Host Controller",files.usbuhci,usbuhci
usbhub = "Generic USB Hub Driver",files.usbhub,usbhub

hidusb = "HID-Parser",files.hidusb,hidusb
serial = "Serial Port Driver",files.none,serial
serenum = "Serial Port Enumerator",files.none,serenum
usbstor = "USB Storage Class Driver",files.usbstor,usbstor
usbccgp = "USB Generic Parent Driver",files.usbccgp,usbccgp


Next, we also have to write several keys into the registry. Convieniently, the txtsetup.sif allows you to specify files that are parsed and instered into the registry at install time. Insert the following in the

[HiveInfs.Fresh] section:

[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



and also in [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

Finally, save and close TXTSETUP.SIF. We are done with it.

4-B) DOSNET.INF


Now, open DOSNET.INF , and change the second [Files] section to look like this:

[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

....

4-C) usb.inf

Change the bolded lines in the [StandardHub.AddService] and [CommonClassParent.AddService] sections:

[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

4-D) usbport.inf

Change the bolded lines in the [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] and

[ROOTHUB.AddService] sections:

[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

4-E) usbstor.inf

Change / Add the bolded lines in the [USBSTOR.AddService] section

[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3

ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender

4-F) new file: USBBOOT.INF

Create a new file called USBBOOT.INF in the same directory as your other changed files, and put the following content into it:

[usbservices]

HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","DisplayName",0x00000000,"USB Mass Storage Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ImagePath",0x00020000,"system32\DRIVERS\USBSTOR.SYS"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","DisplayName",0x00000000,"USB 2.0 Enhanced Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ImagePath",0x00020000,"system32\DRIVERS\usbehci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","DisplayName",0x00000000,"USB2 Enabled Hub"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ImagePath",0x00020000,"system32\DRIVERS\usbhub.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","DisplayName",0x00000000,"Microsoft USB Universal Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ImagePath",0x00020000,"system32\DRIVERS\usbuhci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Type",0x00010001,1

HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","DisplayName",0x00000000,"Microsoft USB Open Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ImagePath",0x00020000,"system32\DRIVERS\usbohci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Type",0x00010001,1


5. Repack the inf files into their original IN_ format


If you have not already deleted your extracted .IN_ files, do so now. They need to be replaced. Open a DOS
shell again, and navigate to the folder with your changed files. Then exceute the following commands:

cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

The three IN_ files should now exist again.

Congratulations. All out modifications are done.

6. Inject the changed files into the ISO

Open your Windows CD image again with WinISO. Navigate to the I386 folder, and delete the following files
from the ISO, saving the changes to the ISO afterwards:

* DOSNET.INF
* TXTSETUP.SIF
* USB.IN_
* USBPORT.IN_
* USBSTOR.IN_

Just to be sure all is updated in the ISO, cloase and repoen the ISO in WinISO. Now, again go to the I386

folder and select "Add Files". Now add your changed files, in detail:

* USBBOOT.INF
* DOSNET.INF
* TXTSETUP.SIF
* USB.IN_
* USBPORT.IN_
* USBSTOR.IN_

Save the ISO. You are done.


II. Creating Bootable USB Stick using WinSetupFromUSB


1. Install the program with default settings

2. Mount the previous created modified Windows XP ISO image file with Daemon tools

3. Start WinSetupFromUSB.exe from C:\WinSetupFromUSB

4.

4-A) In the first field locate the mounted virtual CD.

4-B) Force Target disk type as Removable

4-C) Format USB disk pressing RMPrepUSB

4-D) Use the same settings as screenshot

4-E) Press Prepair Drive

4-F) Click on GO button






When the procdure finish you have a bootable Windows Installation USB drive


III. Install Windows XP Pro on the local Assus Eee PC SSD drive.

1. Setup your installation USB drive to be first boot device

2. Choose "First part of XP Professional setup" if not selected and install and follow the standart frocedure

of Windows installation

3. After the pc restarts boot again from the USB drive and choose "Second part of XP Professional setup" if not
selected by default. Follow the GUI part of Windows installation. During driver installation, the USB drivers
will prompt you, as they are "not certified" - This is normal. Our changes invalidated the checksum, and
therefore the driver is no longer signed. Just press "yes" a couple of times.

4. When the pc restarts boot for the last time from the USB drive and choose again Second part. Remember that's
important because otherwise you can got message like hall.dll is missing!

5. Now you a have Windows XP Pro installed on you SSD disk and you can remove the USB drive.

6. Install all drivers for your Eee PC.

IV. Representing your SDHC card (or USB drive) as fixed drive.


I take that from

http://www.overclockers.com/index.php?option=com_content&view=article&id=4346:clonexp&catid=54:howto&Itemid=4260


1. Unpack Hitachi Microdrive Filter in some folder.

Open file ‘cfadisk.inf’ in Notepad. Look for something that looks like this entry (it will mention some Hitachi drive models):

[cfadisk_device]

%Microdrive_devdesc% = cfadisk_install,IDE\DiskIBM-DSCM-11000___________SC2IC801

IDE\DiskIBM-DSCM-1100_________SC2IC801 should be changed to match Hardware ID of your USB flash drive - the

Hardware ID can be found in the registry under this key:

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR

Look for a key for your SDHC Card reader drive.

Look at the key on the right stating HardwareID. Double click on it and copy the first entry.

Return to the inf file

[cfadisk_device]

%Microdrive_devdesc% = cfadisk_install,IDE\DiskIBM-DSCM-11000_____________SC2IC801

Replace the bolded text with copied line so that the line looks like:

[cfadisk_device]

%Microdrive_devdesc% = cfadisk_install,USBSTOR\DiskJetFlashTS256MJF2A/120___8.07

Now go to Device Manager and under Disk Drives choose your Card reader. Update the driver for your Card reader

with the Hitachi Microdrive driver. Use manual advanced install and point it to the folder where your

cfadisk.inf driver is located. Restart as many times as needed.

This way your Card reader will be represented as fixed drive in Windows Drive Management. This is exactly what
we need.

V. Make a bootable Hiren USB drive

This procedure is fully described in: http://www.hiren.info/pages/bootcd-on-usb-disk

You can use your Windows installation USB for this purose.


VI. Cloning local SSD disk onto SDHC (or USB) drive



Boot the hiren USB and start Norton Ghost from Backup tools. (You can use also Acronis)

Clone your local SSD disk onto the SDHC (or USB) drive

Now you can freely boot Windows from your SDHC card.

1 коментар: