วันอาทิตย์ที่ 26 ธันวาคม พ.ศ. 2553

วิธีการติดตั้ง Windows XP ใน USB Harddisk


สิ่งที่ต้องมี :
  • เครื่องคอมพิวเตอร์ที่มี CD Writer
  • แผ่นติดตั้ง Windows XP SP1/SP2 ดั้งเดิมที่ไม่ถูกดัดแปลงมาก่อน
  • โปรแกรมแก้ไขไฟล์ ISO เช่น WinISO หรือ UltraISO
  • โปรแกรม CAB SDK
  • โปรแกรมเขียนแผ่น CD ที่สามารถเขียนแผ่นจากไฟล์ ISO ได้
มาเริ่มขั้นตอนยากๆ กันดีกว่า

1. ขั้นแรกให้เปิดโปรแกม WinISO หรือ UltraISO ขึ้นมา ขอยกตัวอย่างเป็น UltraISO ก็แล้วกัน แล้วสร้างไฟล์นามสกุล ISO ขึ้นจากแผ่นติดตั้ง Windows XP ที่อยู่ใน CD Drive โดยคำสั่ง Tool > Make CD/DVD Image จากนั้นก็เปิดไฟล์ ISO ที่เพิ่งสร้างขึ้นมาด้วยคำสั่ง File > Open


2. คัดลอกไฟล์ต่อไปนี้ออกมาไว้ที่โฟลเดอร์ใหม่

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

3. คลายไฟล์ zip ของ cabsdk ที่ดาวน์โหลดมา แล้วคัดลอกโปรแกรมชื่อ CABARC.EXE มาไว้ในโฟลเดอร์ที่เก็บไฟล์ทั้งห้าข้างต้น

4. ไฟล์นามสกุล IN_ เป็นไฟล์ที่ถูกบีบอัดมา ดังนั้นต้องใช้โปรแกรม CABARC.EXE ช่วยในการคลายไฟล์ออกมา ให้เข้า Command prompt และเปลี่ยนไปอยู่ในโฟลเดอร์ที่เก็บไฟล์ทั้งห้านั้นๆ แล้วใช้คำสั่ง

cabarc x usb.in_
cabarc x usbport.in_

cabarc x usbstor.in_

หลังจากนั้นจะได้ไฟล์ใหม่อีกสามไฟล์ชื่อ USB.INF, USBPORT.INF และ USBSTOR.INF สามารถลบไฟล์นามสกุล *.IN_ เดิมออกได้เลย

5. คราวนี้ก็มาถึงนานยากหน่อยแล้ว คือต้องแก้ไขค่าต่างๆ ในไฟล์ทั้งหมดนี้

5.1 เริ่มต้นกันที่ไฟล์ TXTSETUP.SIF ก่อนเลย ขั้นแรกคือย้ายค่าต่างๆ เหล่านี้ในส่วน
[InputDevicesSupport.Load] ไปที่ [BootBusExtenders.Load]

[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
แล้วก็ย้ายค่าต่างๆ จาก [InputDeviceSuport] มาที่ [BootBusExtender]
[BootBusExtender]pci = "PCI-Bustreiber",files.pci,pciacpi = "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,usbhu

hidusb = "HID-Parser",files.hidusb,hidusb
serial = "Treiber f�r seriellen Anschluss",files.none,serial
serenum = "Enumerator f�r seriellen Anschluss",files.none,serenum
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor
usbccgp = "USB Generic Parent Driver",files.usbccgp,usbccgp

จากนั้นก็เพิ่มค่าใน [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

และที่ [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

หลังจากแก้ไขแล้วก็บันทึกไฟล์ให้เรียบร้อย
5.2 มาที่ไฟล์ DOSNET.INF ให้เพิ่มค่าเข้าไปหนึ่งค่าในส่วน [Files] จากนั้นก็บันทึกไฟล์ให้เรียบร้อย
[Files]
d1,usbboot.inf
d1,_default.pif
d1,12520437.cpx
d1,12520850.cpx

5.3 แ้ก้ไขไฟล์ USB.INF บ้าง โดยให้แก้ไขค่าตามที่ทำตัวเข้มไว้ในส่วน [StandardHub.AddService] และ [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
5.4 มาที่ไฟล์ USBPORT.INF ให้แก้ไขค่าในส่วนต่างๆ ตามตัวอย่าง แล้วก็บันทึกไฟล์ให้เรียบร้อย
[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

5.5 แก้ไขและเพิ่มค่าในไฟล์ USBSTOR.INF ตามตัวอย่าง แล้วบันทึกไฟล์ให้เรียบร้อย
[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3

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

5.6 สร้างไฟล์ใหม่ชื่อ USBBOOT.INF แล้วใส่ค่าดังต่อไปนี้ แล้วก็บันทึกไฟล์ไว้ในโฟลเดอร์เดียวกัน
[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


6. จัดการบีบอัดไฟล์ให้เหมือนเดิมโดยใช้โปรแกรม CABARC.EXE โดยใช้คำสั่งดังนี้
cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf

7. ลบไฟล์ USB.INF, USBPORT.INF และ USBSTOR.INF ออกไปได้เลย
8. คัดลอกทุกไฟล์คือ TXTSETUP.SIF, DOSNET.INF, USBBOOT.INF, USB.IN_, USBPORT.IN_ และ USBSTOR.IN_ กลับไปไว้ในไฟล์ ISO เดิมแล้วก็บันทึกไฟล์ ISO นั้นๆ ให้เรียบร้อย
9. นำไฟล์ ISO ที่ได้ไปเขียนเป็นแผ่นซีดีด้วยโปรแกรมเขียนแผ่นที่เปิดไฟล์ ISO ได้ เช่น Nero Buring ROM จะได้แ่ผ่นติดตั้ง Windows XP ที่สามารถติดตั้งไว้ใน USB Harddisk หรือ USB Flash Disk ได้
10. เสียบ External CD Drive ที่มีแผ่นติดตั้ง Windows XP ที่แก้ไขแล้ว และ USB Harddisk หรือ USB Flash Disk ไว้ที่ Eee แล้วเปิดเครื่อง
11. เมื่อหน้าจอบูทปรากฎขึ้น ให้กด F2 เข้าสู BIOS เลือกไปที่ Advanced > IDE Configuration แล้วเปลี่ยนค่า IDE Master ให้เป็น Type : Not Installed
12. ไปที่ Boot > Hard Disk Drives แล้วเปลี่ยนค่าของ HDD:SM-SILICONMOTI] เป็น Disabled เปลียนค่าของ Boot Devices Priority ให้ 1st Boot Device เป็น ATAPI CD-ROM
13. เลือก Exit > Exit &Save Change
14. เครื่องจะบูทอีกครั้ง สามารถติดตั้ง Windows XP ตามปกติ โดยไดรฟ์ปลายทางที่ติดตั้งจะเป็น USB Harddisk / USB Flash Disk ซึ่งในหน้าที่แสดงพาร์ติชั่นต่างๆ ไดร์ฟนี้จะต้องเป็น C: หากยังไม่ใช่ ให้ย้อนกลับไปตรวจสอบการแก้ไข BIOS ก่อนหน้านี้
15. หลังจากติดตั้งเสร็จเรียบร้อยแล้ว ให้แก้ไขค่าใน BIOS กลับมาเหมือนเดิม เวลาจะบูทเข้า Windows XP ให้กด ESC ในหน้าบูท จะมีเมนูมาให้เลือกว่าจะบูทจากอุปกรณ์ตัวไหน
Credit http://www.trendypda.com/modules/newbb/viewtopic.php?topic_id=1022&forum=17

ไม่มีความคิดเห็น: