Installing Windows XP to a SD or SDHC card on Asus EEE pc
Tutorial written by CorvetteZ0606
You will need:
-
PC with DVD burner
-
External DVD reader
-
USB thumb drive ( I used a Corsair Flash Voyager 8GB)
-
Blank CD
-
SDHC card ( I used a Transcend TS8GSDHC6 8GB)
-
Eee pc
-
WinHex version 14.5 full version
-
Hitachi Microdrive Filter (can be downloaded from http://www.xpefiles.com//files/xpfildrvr1224_320.zip)
-
Nero (I used version 6)
-
BootExtract (freeware)
-
Cabsdk (Microsoft freeware)
-
Windows XP SP1 (I used my Virginia Tech Volume Licensing Disk. I don’t know if this matters.)
SETTING UP THE BIOS
First, the BIOS needs set up. Here are my settings:
Advanced:
-
IDE Config:
-
Master and Slave both set to “Auto”
-
-
Onboard Devices: All enabled (originally the camera was disabled, but somehow it got enabled without me changing it. I don’t know what’s up there.)
-
OS Installation: Finished (I kept it this way through the whole process)
Boot:
-
Priority:
-
1st: Removabe Device
-
2nd: HDD sm-siliconmoti
-
3rd: USB-Pioneer DVD-RW
-
-
Hard disk Drives: (I somehow got this feature added to the BIOS. I don’t know exactly what I did to get it, it wasn’t there originally. I have NOT updated the BIOS. I have version 02.58 BIOS. I think it might be from something I set in Advanced.)
-
1st: HDD:sm-siliconmoti
-
2nd: USB: USB 2.0 CardRea
-
-
Boot Settings Config:
-
Quickboot enabled
-
Quietboot disabled
-
-
Onboard LAN boot ROM: disabled
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_
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
…
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, 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.