Windows XP na dysku USB? Czemu nie.

Zastanawialiście się kiedyś, jak odpalić Windowsa XP na dysku USB?
Zwykle to kończyło się BSoD'em. "No dobrze ale jak się do tego zabrać?" - pewnie myślicie zniecierpliwieni ;)
Musimy się uzbroić w:
  • najlepiej drugi, działający system jedynej słusznej firmy
  • dysk USB
  • płytkę z Windowsem
  • jakiś program do zamiany plików w ISO (np. WinISO)
  • Majkroszoftowe CAB SDK
  • program do nagrywania płyt
  • no i w najważniejsze - cierpliwość ;)
Gdy mamy wszystko możemy zabrać się do roboty. Najpierw musimy zamienić płytkę Windowsową na plik ISO (w WinISO "Actions -> Make ISO" ;)) Kolejnym krokiem będzie wypakowanie plików (z folderu I386):
  • TXTSETUP.SIF
  • DOSNET.INF
  • USB.IN_
  • USBPORT.IN_
  • USBSTOR.IN_
Teraz trzeba rozpakować pliki, które mają "IN_" na końcu rozszerzenia. Aby to zrobić wystarczy odpalić "cabarc x PLICZEK.IN_". Po wypakowaniu można usunąć te pliki. Teraz pora zabrać się do modyfikacji plików.

Pierwszy plik - TXTSETUP.SIF

Najpierw przenosimy wybrane punkty z sekcji [InputDevicesSupport.Load] do [BootBusExtenders.Load] jak jest pokazane niżej:
[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
Teraz robimy to samo dla [BootBusExtenders] i [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 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
Następnie do sekcji [HiveInfs.Fresh] dodajemy AddReg = usbboot.inf,usbservices
Później na początek sekcji [SourceDisksFiles] dodajemy usbboot.inf = 1,,,,,,_x,3,,3

Następny plik - DOSNET.INF

Na początek sekcji [Files] dodajemy d1,usbboot.inf

No i kolejny plik - USB.INF

Zamień na pogrubione wartości w sekcjach [StandardHub.AddService] i [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

Kolejnym plikiem będzie USBPORT.INF

W nim zamieniamy na pogrubione wartości w sekcjach [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] oraz [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


W pliku USBSTOR.INF zamieniamy/dodajemy następujące wartości w sekcji [USBSTOR.AddService]

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

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

Teraz powoli dochodzimy do końca :)
Tworzymy plik USBBOOT.INF zawierający:

[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

Rozpakowane pliki IN_ teraz trzeba spakować poleceniem:
cabarc n USB.IN_ usb.inf
cabarc n USBPORT.IN_ usbport.inf
cabarc n USBSTOR.IN_ usbstor.inf
Na koniec wyrzucamy z pliku ISO: DOSNET.INF, TXTSETUP.SIF, USB.IN_, USBPORT.IN_, USBSTOR.IN_. Teraz dodajemy zmodyfikowane pliki USBBOOT.INF, DOSNET.INF, TXTSETUP.SIF, USB.IN_, USBPORT.IN_, USBSTOR.IN_. Ostatecznym krokiem będzie wypalenie płyty i instalacja systemu ;)

Ten artykuł jest bardzo wolnym tłumaczeniem artykułu How to boot Windows XP off a USB drive
Dodam od siebie, iż trzeba bardzo uważnie zamieniać/dodawać/etc w plikach bo bardzo łatwo można zrobić błąd i z takiej płyty już nie zainstalujemy systemu na naszym dysku USB.
Mam nadzieję, że ten artykuł was nie znudził :)

Komentarze do notki “Windows XP na dysku USB? Czemu nie.”

  1. Xinill 

    A ja zawsze się zastanawiałem, jak zainstalować XP z dysku usb – niektóre aplikacje nie lubią wine, a na laptopie beznapędowcu, i do tego bez napędu optycznego pod usb… :)

  2. yoshi314 

    a ja sie zawsze zastanawialem po co w ogóle instalowac windows :]

  3. kubz 

    @yoshi314: no dobra, ale niektórym to się może przydać

  4. Livio 

    I tyle zabawy, żeby tylko go z USB odpalić? Ja „piedziut”. Każda lepsza dystrybucja Linuksa w instalatorze ma opcję instalacji na pendrive’ie :> .

  5. yOSHi314 

    nooo, biedny pendrive ktory ktos windowsem pokarał :D

  6. Livio 

    Wolałem tego nie mówić wprost :> .

  7. Black 

    Ciekawe jak telefon zareaguje, jak zainstaluje to na karcie pamięci.

  8. Mizu 

    Yoshi, a Ty już takiego mądrego nie zgrywaj dziecko bo sam 80% czasu posiadania komputera spędziłeś na windowsie – może Ci sie ten system nie podobać, ale takie teksty sobie daruj bo linux ani tobie ani nikomu innemu jak narazie windowsa w pełni nie zastąpi.

  9. Kefi 

    Szkoda tylko ze tak zainstalowany widnows nie uruchomi sie na każdym komputerze do ktorego podłącze taki dysk. Czy może jestem w błedzie i ktos powie mi ze jednak można :)

  10. BeteNoire 

    Mizu, mi zastąpił. Zdziwiony?

    Kefi, a niby jak ma sobie ten głupi Windows sam za każdym razem wykrywać prawidłowo czipsety, procesory, karty graficzne, dźwięĸowe, sieciowe i inne?

  11. yoshi314 

    Mizu – nie nazywaj mnie mądrym, ja sobie wypraszam.

  12. kufel1968 

    zrobiłem jak w opisie instalka przeszła poprawnie ale przy pierwszym odpaleni lipa znowu zaczyna odłaczać usb

  13. kubz 

    Widocznie coś musiałeś źle przepisać. Spróbuj jeszcze raz – mi za 3 razem wyszedł dobrze zrobiony obraz.

  14. Rafalski 

    A ja tam liczę, że uda się za pierwszym ;) Teoretycznie wszystko zrobiłem poprawnie. BTW zgadzam się z Mizu – linuxy są świetne, pod względem dopracowania graficznego naprawdę przewyższają windę, jednak ciągle jest wiele problemów (ot choćby niewygodna lub niemożliwa konfiguracja kart wi-fi) albo soft do którego trudniej znaleźć ogólnodostępne porady na forach..także póki co linux tylko jako system awaryjny ;)

  15. Rafalski 

    no i nie udało się ... instalator ciągle nie wykrywa dysku ..próbowałem 2 razy krok po kroku, dokładnie i precyzyjnie.. widocznie ciągle za słabo ;)

  16. Anonim 

    jesli komuś udało sie to zrobić ludzie pomozcie ga dulec 7033773 .

  17. bobi 

    plików, po restarcie mówi że brakuje mu lub jest uszkodzony plik hal.dll. Plik ten odnalazłem, więc zostaje tylko uszkodzenie… Zgrywałem też go z kompa z XP-kiem ale nic to nie dało, znowu ten komunikat. A już się cieszyłem z XP na pendrive-ie. Sam boot działa ale cóż z tego…

  18. westhowski 

    hmmm…

  19. dave 

    ja uruchomiłem instaltor xp normalnie z płyty, instalowałem na dysk usb i bootowałem z dysku usb. I też wyświetlił mi się komunikat że plik hal.dll nie istnieje lub jest uszkodzony, a plik ten jest na dysku usb. o co chodzi?

  20. Rutuki 

    mak ktoś przerobione te trzy pliki IN_ bo mi nie może rozpakować. Sciągnąłem sobie pliki inf. przerobiłem ale i tak d…. bo nie moge spakować ;(. jak ktoś ma przerobione te pliki i dziłają niech podrzuci . rutuki@poczta.fm z góry dzięki za pomoc ;)

  21. yeti 

    Ja też poprosiłbym te przerobione pliczki. Jeśli ktoś ma :D
    yetinakotlety@o2.pl

  22. kubz 

    Se przerób ;p
    Ja tu waręzów robić nie będę.

  23. yeti 

    Przerobiłbym sobie, ale na Linuxie xię nie da :/
    Ja tylko proszę o maila z pliczkami ;)

  24. kubz 

    Również zależy jaką wersję Windowsa chcesz mieć na dysku (Pro/Home) bo wydaje mi się, że trochę różnią się te pliki

  25. yeti 

    Mam Pro na płytce i chcę go mieć na penie. Jednakże próbowałem zmodyfikować te pliki na Home (na innym PC) i coś nie działało. Ten pakiet CAB SDK w ogóle nie działa. Czytałem, że na Win Serwer 2003 i Xp Pro tylko działa.
    Płytka z Pro nie wykrywa mojego twardziela, więc instalacja na lapku nie ma szans. (mam Dell Inspiron 1525 z dyskiem SATA, chyba. I Ubuntu).
    Przez to ładnie proszę o pliczki :D

  26. podpis 

    żeby zainstalować Windows na USB trzeba wyciągnąć przy instalowaniu dysk twardy z komputera, żeby instalator utworzył MBR na pendrive a nie na twardym dysku, zrobiłem wszystko według powyższej instrukcji i działa. Za pierwszym razem instalowałem normalnie i mi pokopało dysk twardy, po restarcie przestało go wykrywać, musiałem ghostem przywracać:p

  27. podpis 

    Jeszcze a propos wydajności Windowsa na pendrive, rzeczywiście jest tragiczna, ale są dwa sposoby: po uruchomieniu wejść we właściwości dysku pendrive > Sprzęt > zaznaczyć urządzenie pendrive i kliknąć „Właściwości” > karta „Zasady” i włączyć buforowanie zapisu na dysku, to znacznie poprawi wydajność. Drugi sposób (nie wiem czy połączenie ich nie spowoduje jakichś sensacji, ale wydaje mi się że nie) zainstalować sterownik EWF http://tiny.pl/bff7

  28. kubz 

    O, dzięki za takie informacje, nie wiedziałem ;)

  29. laro 

    ja próbowałem instalować na fujitsu siemens i lipa zrobiłem dokładnie wszystko krok po kroku podczas wyboru partycji windows mi widzi dysk usb ale nie można zainstalować na nim systemu

  30. spider 

    mam pytanko. moze troche to smieszne ale jak odpalic CAB SDK ?? mam windowsa 2000
    prosze o pomoc

  31. xD 

    przerobil to ktos by dal pliki moje gg 13759648 prosze pisac

Zostaw odpowiedź