Table of Contents

Windows XP Professional Installation Onto SD or SDHC card

Currently there are two reported working methods for installing Windows XP Professional on to an SDHC card for use on the EeePC. Method 1 as discussed by CorvetteZ0606 on the EeeUser Forums. Method 2 as discussed by DonkeyBeliever makes use of nLite for the bootable CD Creation and Acronis True Image Home v11 for the clone of the XP Install.
Also there is a simplification of both methods, so you don't have to bother about changing the driver-files of XP before installation using the freeware xp3eSD.

There is also a method reported in eeepcnews.de-forum which uses instead of Arconis and Winhex the Linux PartedMagic-CD and copys all files with the prompt to the SD-Card.

Method 1

This first method of installing XP on to an SD or SDHC card was documented and tested by CorvetteZ0606, the first documented user to successfully boot XP from an SDHC on an EeePC. His methods are on the EeeUser Forums Related discussion thread and has been successfully replicated by several users on the forum.

Needed Items

You will need:

Setting up the BIOS

First, the BIOS needs set up. Here are my settings:

Advanced:

Boot:

Creating an XP Installation Disk

After setting up your Eee BIOS, you need to go back to your other PC to make a custom XP install disk. I suggest using a rewritable in case you screw up the first time.

Discussion of this topic is in http://forum.eeeuser.com/viewtopic.php?id=1433

Making the disk: Note: this procedure was taken from http://www.ngine.de/index.jsp?pageid=4176). Thank them for inventing this!

1. Copy all files from your XP disk to a folder on your C drive.

2. Move these files from your C:\XP_disk\i386 folder to a separate temp dir:
TXTSETUP.SIF
DOSNET.INF
USB.IN_
USBPORT.IN_
USBSTOR.IN_

3. Install Microsoft cabsdk to the temp folder; cabsdk can be downloaded here

4. Open a command prompt. Type the following:
cabarc x USBSTOR.IN_
cabarc x USBPORT.IN_
cabarc x USB.IN_

Cabarc is located in the BIN directory created by CabSDK.
Cabarc does not support wildcards like '*' or '?'

5. Delete the following files:
USB.IN_
USBPORT.IN_
USBSTOR.IN_

6. Edit the files to match the following:
txtsetup.sif:
move the following lines from [InputDevicesSupport.Load] to [BootBusExtenders.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys

7. Move the following lines from [InputDevicesSupport] to [BootBusExtenders]
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

8. Add the following line to the end of [HiveInfs.Fresh]
AddReg = usbboot.inf,usbservices

9. Add the following line to the beginning of [SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3

10. Save file

11. Open Dosnet.inf

12. Change [Files] block so it looks like this:
[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

Question to author:
original data looks like this:
d1,usetup.exe,system32\smss.exe
d1,ntdll.dll,system32\ntdll.dll

Needs to be added at the bottom, or needs to be removed???
 Answer from someone else:
There are two [Files] sections. Try to find the one with a long listing of *.cpx files, and place it at the top of that one. 

13. Save and close file

14. Open USB.inf

15. Change these two sections so they look like this:

16. Change 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

17. Save and close file.
Open usbport.inf:
Change 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

18. Save and close file.
Open USBSTOR.inf:
Change / Add the 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

19. Save and close.

20. Create a new file:
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

Save and close file.

21. Repack the files:
At the command prompt in the directory where you changed the files, type the following:
cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

22. Delete the files:
usb.inf
usbport.inf
usbstor.inf


23. Move the following files back into your i386 directory for windows XP:
USBBOOT.INF
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_


24. You now can proceed in two ways. You can either continue here, or move to shrinking your new image with nlite. For the latter please refer to the nlite wiki page. Note that you need to skip step 5 in that guide and use the folder where you modified all these files. After running nlite and burning an image, continue at step 30.

25. Unpack your Bootextract software to a temp directory.
If you are a member of codeproject.com you can download it here

Use BootExtract to read the bootsector from your XPSP1 CD. Here’s the text from when I did it:
C:\BootExtract\Release>BootExtract.exe F:
CD/DVD-BootImage-Extractor v1.0 © Jochen Kalmbach
http://blog.kalmbachnet.de/

Reading boot-record-volume from sector 0×11
Valid boot-record-volume found…

Reading boot-catalog from sector 0×13
PlatformID: 80×86
ID-String: Microsoft Corporation

Processing Initial/Default-Entry…
Boot-Indicator: Bootable
Emulation: No emulation
Load segment: 0×0000
Sector count: 4 (2048 bytes)
Starting sector: 0×142
Writing 'Drive-F.NoEmulation_Segment-0000_SecCount-4.bin'

C:\BootExtract\Release>


26. Start up Nero, put your blank disk in, and start a new bootable CD project.

27. On the boot tab, select the file that bootextract made for your bootsector. Enable Expert settings. Set “Kind of Emulation” to “No emulation” set load segment of sectors to 0000. Set number of loaded sectors to 4. (note, these settings should match what Bootextract reported. If your XP CD gives you different info, then use that info.)

28. Add the files you have on your hard drive to the CD project.

29. Burn!

30. Ok, so now you have the xp install CD. Put it in your external CD reader and attach it to your Eee. Do not insert your SDHC card. Boot the CD. At BIOS start, hit the ESC button to get the boot menu. Select the DVD drive and let it boot into windows setup. If it fails to boot, you did something wrong on your XP CD.

31. Proceed with Installing XP onto the 4GB internal flash drive with a FAT32 partition. Make sure you delete all four linux partitions. Durring install you’ll see a lot of windows about unregistered drivers. Just hit continue anyways on all of these windows.

32. When windows boots for the first time, do not install any drivers or anything. First, you need to turn off the swap file, system restore, and the screensaver.

33. Then stick your USB thumb drive into the EEE with the following programs on it: Winhex installer, Hitachi Microdrive Filter.

34. Next copy the files from your thumb drive to the desktop and then properly remove the thumb drive.

35. Unzip the microdrive files to a folder on the desktop. And Insert your SDHC Card into the EEE.

36. You need to then Hit Start go to run, and type regedit. Navigate to HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR\
Inside that you should find a directory called something like Disk&Ven_USB2.0&Prod_CardReader_SD0&Rev_0100. Open it. Inside that you should find another directory wich is just a bunch of numbers. Open it. In the right pane you should see a key called “Hardware ID” Right click on it, and select modify. It should list about 7 lines of text. Copy ONLY the first line to the clipboard. Hit cancel, close regedit.

37. Open cfadisk.inf in the directory you unzipped the microdrive filter to

38. Edit the section called [cfadisk_device] so that rather than containing 11 lines, just have one line. The line begins with: %MicroDrive_devdesc% = cfadisk_install,
After the comma, hit ctrl V to paste what you coppied from the registry into the file.

39.Save the file.

40. Go to Device manager. Under disk drives, you should see SiliconMotion and USB2.0 Card Reader. Right click on the card reader and click update driver. Direct the driver updater window to the Hitachi driver you just edited. It won’t detect the driver automatically, you have to specifty that your supplying the disk for the hardware and force it to use the driver. After the driver is updated, you need to reboot.

41. After rebooting, Install Winhex on your Eee.

42. Open Winhex, go to the tools menu and select disk tools and then clone disk.

43. For the source media, select HD0 from under “Physical Media”. Note this is not selected by default. Select HD1 Usb card reader for the destination under “physical media” not logical drives.

44. Make sure Copy entire medium is checked. Select Simultaneous IO. Set Start sector to 0. Hit ok. It will give you a help screen for some reason. Hit close. And then hit ok in the clone disk window again. This process will take about 20 minutes. Make sure you move your mouse every few minutes so that windows doesn’t think there’s no activity. Do not use the computer AT ALL while this is running. Afterwards, close the application.

45. Set your windows background to something different so that you can tell that you’re booting to the internal SSD instead of the SDHC.

46. Reboot your computer, hit ESC at bios so that you can select to boot from the card reader.

47. When you boot, you should see windows with your old background. (IE, you’ve booted from the SDHC.)

48. At this point you have windows running on the SDHC. I assume that you can use a partition tool to recover the 4GB that you lost on your SDHC by doing this and also you should be able to restore your Linux to the SSD. I haven’t tried either yet.

Method 2

This second method of installing XP on to an SD or SDHC card was documented and tested by DonkeyBeliever. This method was derived from CorvetteZ0606's guide and uses an easier method to create a bootable image without the need of having to buy Nero or download additional software.

However this method makes use of Acronis True Image Home v11 to clone the install to the SD/SDHC/Flash Drive (Referred to from now on as a Flash Storage Device to minimize confusion), Acronis currently retails for a reasonable $35.99 on NewEgg and is an extremely useful tool that can be used to make images of any harddrives.

Acronis is preferred because it will automatically resize the partition to fit the destination (for example when moving a 4gb XP Pro Image to an 8gb Flash Storage Device, Acronis will automatically resize the partition to the full 8gb, conversely if you move a 4gb image to a 2gb Flash Storage Device Acronis will downsize the image to fit [assuming the actual data stored in the image was not larger than the destination]). Acronis also stores its images in a .TIB format which can be easily stored to allow for mulitple Flash Storage Devices to be made with the same Image (a 2gb image of XP takes less than 5 minutes to clone). A discussion forum is here http://forum.eeeuser.com/viewtopic.php?pid=90330#p90330

Needed Items

You will need:

Setting up the BIOS

I did not change any of the stock BIOS Settings, rather I used the EeePC's boot menu (hit the ESC key durring boot) to boot to the needed device.

Creating an Acronis Bootable Recovery CD (REQUIRED IF USING ACRONIS)

If you've bought your Acronis in store or the boxed version on NewEgg the install CD can also act as a bootable recovery disk, if you opted to buy the slightly cheaper Digital Download you will need to create a Bootable Rescue Media Disk. Simply open Acronis and Select Tools→Create Bootable Rescue Media and follow the on screen prompts to create a bootable rescue disk, If you don't know what you're doing I'd suggest you stick with the defaults and don't play around with any of the additional options.

Backing up the Preloaded OS (Optional)

You can skip this step if you don't care about the original OS or you want to reinstall using the included Asus DVD, I'd made some pretty drastic changes to the OS that I didn't want to lose when I installed XP and that I wanted to quickly recover.

I did not want to lose Xandros OS just to get Windows XP on my Flash Storage Device, so the first step I did was make an Acronis Image of the harddrive. I'm going to assume you have some general working knowledge of Acronis if not heres a very very brief overview

With the External USB Optical Drive connected to your EeePC stick in the Acronis Bootable Rescue Media CD (see above) and hit ESC during boot to boot from the external Optical Drive. Select Acronis True Image Home to boot (Don't click the Privacy Clearer unless you want to kiss your current install goodbye).

After Acronis has booted select “Backup” and choose ALL of the partitions and choose backup, you will need to define a place to store the image, I had an external USB harddrive, however you can also setup a Windows File Share and shoot over the image via the wired Ethernet network, for more information consult the acronis users guide or drop me (DonkeyBeliever) a PM on the forums, however I will not answer questions that could have been answered if you googled them.

After you've backed up your current OS Setup you can proceed to create your XP installation disk and install XP.

If you want to recover your old OS install at any time, simply pop the Acronis bootable rescue media again and choose Recovery and point it to your .TIB of your old harddrive

Creating an XP Installation Disk

NOTE This procedure is very similar to the one listed above, however I found using Nlite to handle the creation of the bootable CD easier to follow, I've also added a few hints for users along the guide. If someone (perhaps CorvetteZ0606) would like to perhaps merge these two parts to shorten the wiki feel free.

After setting up your Eee BIOS, you need to go back to your other PC to make a custom XP install disk. I'm a big fan of using CDR's just because they are cheap and generally work better with cheaper External Optical Drives, however YMMV.

Making the disk: Note: this procedure was taken from http://www.ngine.de/index.jsp?pageid=4176). Thank them for inventing this! Also thank you to everyone on the forums CorvetteZ0606, and everyone editing the wiki

1. Copy all files from your XP disk to a folder on your C drive. To do this we will use NLite, Open NLite and select Next, then point it to your XP Professional SP2 CD, next when it asks you for a location to save the files type “C:\xpsdhc” *Note you can use whatever path you want, but this guide will assume this path*

After Nlite has finished extracting the files minimize the application and continue with step 2

2. Download and Extract Microsoft cabsdk to the Desktop, Inside the extracted folder there is a folder named BIN, rename this folder to cabsdk and place it in the root of c:\ (thus resulting in c:\cabsdk); cabsdk can be downloaded here

3. Move these files from your C:\xpsdhc\i386 folder to c:\cabsdk
TXTSETUP.SIF
DOSNET.INF
USB.IN_
USBPORT.IN_
USBSTOR.IN_

4. Open a command prompt. (Start→Run→cmd) Type the following:
cd c:\cabsdk cabarc x USBSTOR.IN_
cabarc x USBPORT.IN_
cabarc x USB.IN_

Leave the command prompt open for convenience. 5. Delete the following files:
USB.IN_
USBPORT.IN_
USBSTOR.IN_

6. Edit the files (*NOTE I recommend using Notepad2 (freeware) to edit files*) to match the following:
txtsetup.sif:
move the following lines from [InputDevicesSupport.Load] to [BootBusExtenders.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys

7. Move the following lines from [InputDevicesSupport] to [BootBusExtenders]
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

8. Add the following line to the end of [HiveInfs.Fresh]
AddReg = usbboot.inf,usbservices

9. Add the following line to the beginning of [SourceDisksFiles]
usbboot.inf = 1,,,,,,_x,3,,3

10. Save file

11. Open Dosnet.inf

12. Change [Files] block so it looks like this:
[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

13. Save and close file

14. Open USB.inf

15. Change these two sections so they look like this:

16. Change 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

17. Save and close file.
Open usbport.inf:
Change 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

18. Save and close file.
Open USBSTOR.inf:
Change / Add the 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

19. Save and close.

20. Create a new file:
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

21. Repack the files:
At the command prompt in the directory where you changed the files (c:\cabsdk), type the following:
cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

22. Delete the files:
usb.inf
usbport.inf
usbstor.inf


23. Move the following files back into c:\xpsdhc\i386\:
USBBOOT.INF
DOSNET.INF
TXTSETUP.SIF
USB.IN_
USBPORT.IN_
USBSTOR.IN_


24. You now can proceed in two ways. You can either continue here, or move to shrinking your new image with nlite. Either way we need to maximize NLite (it should still be running in the background from Step 1). If you wish to strip down your XP install select options from the list as per the Wiki Guide, if you'd rather have an untouched XP install simply select the Create Bootable ISO Option and click next.

[INSERT IMAGE HERE]

25. I'm assuming you just want to make a bootable Image, simply click the Make ISO button and make your ISO, make sure to note where you've saved the image!

26. Burn the Image with CD Burning software that supports the ISO format (I used the freeware ImgBurn program)

27. Ok, so now you have the xp install CD. Put it in your external CD reader and attach it to your Eee. Do not insert your SDHC card. Boot the CD. At BIOS start, hit the ESC button to get the boot menu. Select the Optical drive and let it boot into windows setup. If it fails to boot, you did something wrong on your XP CD, although this is unlikely unless you've nlited something out, this guide is assuming your using an untouched image (minus the USB changes).

28. Proceed with Installing XP onto the 4GB internal flash drive with a FAT32 partition. It is important to use FAT32 to minimize the number of writes on the SSD and eventually the Flash Storage Device. Make sure you delete all four linux partitions, If you've backed them up as described above you can recover them at the end of the process. Durring install you’ll see a lot of windows about unregistered drivers, this is because we've modified them, however don't worry your system will still run stable. Just hit continue anyways on all of these windows.

29. When windows boots for the first time, do not install any drivers or anything. First, you need to turn off the swap file, system restore, and the screensaver. On my install this slimed down the XP install to 900mb small enough for my 2gb SD card.

30. Now we need to shutdown the EeePC and insert our Acronis Bootable Recovery Media that was discussed above, once again boot into Acronis True Image Home.

31. This is the tricky part, I couldn't seem to get Acronis True Image home to recognize my SD Card as a Harddrive, rather it decided it was a removable device, thus I had to use this weird work around. Basically we need to make an Acronis TIB of the SSD in the EeePC, and then transfer it to the PC we've been using to create the XP install disk. I am assuming that you've installed True Image Home on this machine also. There are a number of ways to get the image over there (USB Harddrive, Network, or heck even loading it on the SD card you're about to install windows on [assuming its big enough]). Again I'm assuming you know how to use Acronis, if not follow this very vague guide (and search google, its the same process).

- Select Backup
- Select the SSD thats in the EeePC, assuming you don't have any USB harddrives hooked up it should be the only harddisk image, make sure that you take the entire image including the MBR or you're boned
- Back this image up to a source that you can access on your main PC that you have Acronis True Image Home v11 installed on

32. Now on your main PC where you have True Image Home installed, insert the Flash Storage Device you want to have windows on and then open up Acronis True Image Home v11. Select Restore, then select the .TIB image that you had made in step 31 and have it restore to the Flash Storage Device, and follow the on screen insturctions. After the recovery is done insert the Flash Storage Device into your EeePC

33. While you wait for Acronis to clone the TIB to the Flash Storage Device, Set your windows background on the EeePC to something different so that you can tell that you’re booting to the internal SSD instead of the SDHC.

34. Reboot your computer, hit ESC at bios so that you can select to boot from the Flash Storage Device.

35. When you boot, you should see windows with your old background. (IE, you’ve booted from the Flash Storage Device.)

36. At this point you have windows running on the SDHC. Since you used Acronis you should see the full space of your Flash Storage Device available to you, If you were like me and made an Acronis image of the original install of Xandros you can now safely restore that image using Acronis and be running both Linux and Windows on your EeePC

I suggest that you keep those Acronis .TIB images laying around just incase something ever happens, I can't tell you how many times Acronis has saved me at work, it sure beats doing a full reinstall. One you've used it, you'll always want to make an Acronis image of any box you do a clean install on.
Good luck!


Method simplification

Needed Items

You will need:



After this tutorial you have to continue with one of the 2 methods, so you have to have additional programs. I used method 1.

Setting up the BIOS

You can choose to set up the bios first or, as I did, after I really wanted to boot from the SD-Card.

Boot:


I diddn't change any other things in the bios.

Creating an XP Installation Disk

1. Copy all files from the Windows CD to a folder on the PC. I used nLite for that.
2. On this files I used xp3eSD, which created an iso-file.
3. Next I used 7-zip to extract all files from the iso to another folder.
4. Afterwards I slimmed down Windows with the tutorial here in the wiki and created an iso with nLite
5. This iso has to be burned on a CD.

That's all for the simplification, next you have to contiune with step 30 from method 1 or step 27 from method 2.

Annotation:
I don't know if it's normal, but my XP takes a long time to start. I see the Windows-logo and next a black screen. This last about 5 Minutes. I can not say, if it's a problem with this turorial or my configuration. Afterwards windows runs good.

Have fun,
LeChuck

Transferring Partition Using a LiveCD

The first two guides both require commercial software to complete, which isn't ideal. The same effect - transferring the partition on the SSD to your high capacity SD card, can be achieved using a Linux LiveCD and the Unix terminal. I used the Ubuntu 8.04 LiveCD, available for download from the Ubuntu website ( http://www.ubuntu.com/GetUbuntu/download ). I also followed LeChuck's steps above for creating the XP disc using the xp3eSD utility above, and then followed the first guide from step 27 to step 40. Like the first guide, the target device must have at least as much space as the source hard-drive.

This approach is based on the information on drive imaging available at http://codepoets.co.uk/docs/system_imaging .

The process is as follows: 1. Download and burn the ISO for the LiveCD.

2. Connect an external CD drive to your Eee PC. Hammer Esc at startup as the 'Eee PC' splash screen appears to enter the boot device selection menu, and choose your CD drive, in my case labelled 'Slimtype DVD'.

3. Choose your language if prompted, then choose 'Try Ubuntu without any change to your computer' from the LiveCD menu. Wait for the Ubuntu live session to load.

4. From the menu at the top of the screen at the Ubuntu desktop, choose Applications → Accessories → Terminal.

5. Type

sudo su

and then press enter.

Step 6 and 7, deleting existing partitions on the SDHC, may not be necessary - the other guides don't do anything performing the same task.

6. Type

gparted

and press enter. The partition program GParted will open. It defaults to selecting your Eee PC's internal hard drive, /dev/sda, at the top right. Based on the reported disk size, select your SDHC card, probably /dev/sdb, from the drop down list.

7. You have to delete the partition, if any, on your SDHC. Right click the partition(s) in the lower window and click 'Unmount'. Once this is done, right click the partition and select 'Delete', then click the green 'Apply' tick. When it is finished, quit gparted.

8. In the Terminal window, type

 dd if=/dev/sda | dd of=/dev/sdb 

Note: This was the method I used, but

 dd if=/dev/sda of=/dev/sdb

should do the same thing. I haven't used this method and so can't guarantee it'll work, but I see no reason why it shouldn't.

This copies across the partition on your internal hard drive to the SDHC, and may take a while. If it complains 'Operation not permitted' etc., then chances are you haven't entered superuser mode as per step 5.

9. Shutdown the Ubuntu Live session. Ubuntu can't turn off the Eee PC properly off the bat, so just hold down the power button until the power light turns off.

10. Boot your Eee PC as normal. Once Windows loads, change your desktop background (as per the first guide) to easily tell that that's your internal hard drive install. Shutdown.

11. Turn on your Eee PC. When the Splash screen appears, hammer the Esc key as before, and choose 'USB2.0 CardReader SD0'. You should boot into your SD card's Windows install! This'll be clear because you will have your old background, rather than the new one.

If your SD card is larger than the partition size, then you can use GParted through the LiveCD to resize the partition easily - as before, you have to unmount it to make alterations. Alternatively, you can format the remainder of the SDHC easily through Windows. Right click on My Computer, choose Manage, then select Disk Management. Choose the unpartitioned space on your SD card, and options will allow you to create and format the second partition to your liking. Make it a Primary Partition - there's no good reason to make it Extended.

I had trouble with CHKDSK interrupting the boot process and the computer failing to boot properly even after a checkdisk scan.To prevent CHKDSK on startup, when Windows starts, open regedit (Start → Run…→'regedit' - the 'Run' is directly under 'Search', so you can navigate to it using the arrow keys if you can't see it on screen). In Regedit, open HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager , then change the value of the entry 'BootExecute' to

autocheck autochk /k:c *

This prevents the file system being checked automatically. (This info is from http://www.raymond.cc/blog/archives/2008/02/23/disable-or-stop-auto-chkdsk-during-windows-startup/ )

You probably want to install the drivers on the DVD provided with your Eee PC to get things running smoothly, now.

Preserving Your Xandros/Existing Install

You can use the same transfer method to preserve your original Xandros install. To do this, before installing XP to your internal hard drive start up the Ubuntu LiveCD. Using the Ubuntu LiveCD connect a USB device larger than the size of your internal hard drive. Ascertain the path to your device. Now, in the console, type

sudo su
dd if=/dev/sda | gzip --fast > (path to device)/sda.img.gz

This creates a zip file containing an image of your Xandros partition. Once XP has been installed to the SDHC using one of the processes above, you can restore your Xandros install by starting up the LiveCD again with the device you used attached, and typing in the console

sudo su
zcat -dc (path to device)/sda.img.gz | dd of=/dev/sda

Altering the Bootloader for ease of use

Once Xandros has been restored, it's useful to add your Windows XP SDHC to the bootloader menu, and to have a countdown where you may press a key to get to the menu rather than hammering F9 or Esc at startup. Enter Rescue Mode as explained elsewhere in the wiki. Once at the Grub prompt, get to the menu.lst file on the system partition of the SSD, by typing:

mount /dev/sda1 /mnt-system
cd /mnt-system/boot/grub
vi menu.lst

This enters the text editor vi. You may want to search on the internet for an explanation of its functions, as it isn't that simple to use if you're not used to it. You can't type straight away. What matters is that, to add text, you have to enter insertion mode by pressing 'i' to type, then press 'Esc' to exit insertion mode and ':wq' to save and quit. You can scroll up and down with the arrow keys.

Underneath the other entries of the form

title ...
	root (....)

enter insertion mode (press i) and create a new entry as below. (Info on GRUB bootloader from the manual, http://www.linuxselfhelp.com/gnu/grub/html_chapter/grub_4.html )

title Microsoft Windows XP Professional
root (hd1, 0)
map (hd0) (hd1)
map (hd1) (hd0)
chainloader +1
boot

Now scroll to the line containing 'timeout=0' and change it to

timeout=3

and then scroll to the line containing 'hiddenmenu' and add a # before it to comment it out, so it looks like

#hiddenmenu

Then press Esc to leave insertion mode, and type ':wq' (no quotes) to save and quit. Quit Rescue mode by typing exit twice. Now, whenever you start up, the boot menu appears for 3 seconds, and you can choose the XP option to boot from your SDHC card.