Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Instalacja Windows XP na dysku USB [TŁUMACZENIE]

tzok 07 Sie 2009 14:12 53218 0
  • #1 07 Sie 2009 14:12
    tzok
    Moderator Samochody

    Ostatnimi czasy często powraca temat instalacji systemu Windows XP na dysku USB. Jakkolwiek odradzam tego typu rozwiązanie to jest ono wykonalne i nie trzeba się posiłkować środowiskiem BartPE, lecz można zainstalować pełnowartościowy Windows XP. Kwestią dyskusyjną jest zgodność tego zabiegu z umową licencyjną - należy mieć oddzielną licencję na system zainstalowany na dysku USB. Co do samej modyfikacji instalatora - Microsoft oficjalnie nie ma nic przeciwko przygotowywaniu spersonalizowanych instalatorów ze zintegrowanym sterownikami (np. do SATA) czy aktualizacjami - do Waszej oceny pozostawiam czy opisana modyfikacja mieści się w dozwolonych ramach.

    UWAGA
    W sekcji CODE znaki +, -, * na początku wierszy oznaczają linie, które należy dodać, usunąć bądź zmienić i nie należy ich dopisywać do modyfikowanych plików.


    Oryginalny artykuł:
    How to install and run a FULL Windows XP from a USB drive


    1. Czy Twój komputer obsługuje bootowanie z USB?

    Zazwyczaj, jeśli w BIOS-Setupie jest stosowana opcja wśród ustawień sekwencji rozruchowej - odpowiedź brzmi tak. Jeśli opcji brak - sprawdź aktualizacje BIOSu. Jeśli nie jesteś pewien wykonaj kolejny krok i zobacz czy będzie działało ;-)

    2. Sprawdzania "bootowalności" dysku USB

    Podłącz dysk USB do komputera (bezpośrednio, bez koncentratora). Następnie wyłącz komputer, odłącz od niego pozostałe dyski i włóż płytę instalacyjną Windows XP do napędu CD/DVD. Rozpocznij instalację i kontynuuj do momentu wyboru dysku/partycji. Jeśli uda Ci się przejść dalej, twój dysk nadaje się do uruchamiania Windows XP. Jeśli nie (jak ma to miejsce z niektórymi dyskami Freecom'a), otrzymasz zapewne komunikat, że instalator nie może znaleźć żadnego dysku stałego w Twoim komputerze i instalacja zostanie przerwana. To zazwyczaj nie jest duży problem, wystarczy "właściwie" sformatować dysk. Uruchom Windows normalnie i pobierz to narzędzie ze strony HP - użyj go do sformatowania dysku. Sugeruję użycie formatu NTFS, po tym zabiegu instalator powinien wykryć partycję jako nadającą się do zainstalowania na niej systemu (nie udało mi się natomiast stworzyć partycji FAT32, którą instalator uznał by za zdatną do instalacji systemu).

    3.Zgrywanie płyty instalacyjnej do pliku ISO

    Prosty krok. Otwórz WinISO i wybierz Czynności -> Utwórz obraz ISO z płyty CD, na koniec zapisz obraz do pliku.

    4. Wypakowanie plików, które będą modyfikowane





    Po zgraniu obrazu płyty, zamknij i ponownie otwórz WinISO, następnie otwórz wykonany uprzednio obraz poprzez
    Plik -> Otwórz.
    Następnie otwórz folder i386 i wybierz następujące pliki (użyj klawisza CTRL aby zaznaczyć wiele plików)

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


    Wybierz Czynności -> Ekstrakcja... i zapisz pliki w katalogu na dysku.

    5. Rozpakowanie plików IN_

    Użyj CAB SDK (z linii poleceń) aby rozpakować zawartość plików .IN_. Każdy z nich zawiera dokładnie jeden plik .INF. Jeśli nie wiesz jak używać CAB SDK, oto przykład: "cabarc x USBSTOR.IN_". Na koniec powinieneś otrzymać następujące pliki:

    Code:
            * usb.inf
    
            * usbport.inf
            * usbstor.inf


    Teraz możesz usunąć pliki .IN_.

    6. Edycja plików

    To jest główne zadanie. Przy okazji będę się starał wyjaśniać co jest wykonywane. Używaj prostego edytora tekstu, np. notatnika.

    6-A) TXTSETUP.SIF

    Ten plik jest ładowany w początkowej fazie instalacji przez instalatora Windows XP. Zostanie w nim zmieniony sposób w jaki Windows traktuje dyski USB podczas instalacji systemu. Zmienimy to zachowanie aby dodać obsługę masowych urządzeń magazynujących już na etapie rozruchu.

    Najpierw przenieś poniższe wpisy z sekcji [InputDevicesSupport.Load] do sekcji [BootBusExtenders.Load] , jak pokazano poniżej

    Code:
       [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 zrób to samo dla [BootBusExtenders] i [InputDevicesSupport]

    Code:
       [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  = "Rozszerzony kontroler hosta",files.usbehci,usbehci
    +   usbohci  = "Otwarty kontroler hosta",files.usbohci,usbohci
    +   usbuhci  = "Uniwersalny kontroler hosta",files.usbuhci,usbuhci
    +   usbhub   = "Rodzajowy sterownik koncentratora USB",files.usbhub,usbhub
    +   usbstor  = "Sterownik klasy magazynów USB",files.usbstor,usbstor

       [InputDevicesSupport]
    -   usbehci = "Rozszerzony kontroler hosta",files.usbehci,usbehci
    -   usbohci = "Otwarty kontroler hosta",files.usbohci,usbohci
    -   usbuhci = "Uniwersalny kontroler hosta",files.usbuhci,usbuhci
    -   usbhub = "Rodzajowy sterownik koncentratora USB",files.usbhub,usbhub
       hidusb = "HID-Parser",files.hidusb,hidusb
       serial = "Treiber fur seriellen Anschluss",files.none,serial
       serenum = "Enumerator fur seriellen Anschluss",files.none,serenum
    -   usbstor = "Sterownik klasy magazynów USB",files.usbstor,usbstor
       usbccgp = "USB Generic Parent Driver",files.usbccgp,usbccgp


    Następnie trzeba dodać kilka kluczy do rejestru. Tak się składa, że plik txtsetup.sif pozwala na dodanie plików które mają być przetworzone i dodane do rejestru podczas instalacji. Dodaj więc poniższą linię do sekcji [HiveInfs.Fresh]:

    Code:
       [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


    oraz do [SourceDisksFiles]

    Code:
       [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


    Na koniec zapisz i zamknij plik TXTSETUP.SIF. Skończyliśmy z nim.

    6-B) DOSNET.INF[b/]

    Teraz otwórz plik DOSNET.INF i zmień jego drugą sekcję [Files] aby wyglądała tak:

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

       ....


    [b] 6-C) usb.inf


    Zmień zaznaczone linie w sekcjach [StandardHub.AddService] i [CommonClassParent.AddService]:

    Code:
       [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


    6-D) usbport.inf

    Zmień zaznaczone linie w sekcjach [EHCI.AddService], [OHCI.AddService] , [UHCI.AddService] oraz [ROOTHUB.AddService]:

    Code:
       [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


    6-E) usbstor.inf

    Zmień / dodaj wskazane linie w sekcji [USBSTOR.AddService]:

    Code:
       [USBSTOR.AddService]
    
       DisplayName = %USBSTOR.SvcDesc%
       ServiceType = 1
    *   StartType = 0
    *   Tag = 3
       ErrorControl = 1
       ServiceBinary = %12%\USBSTOR.SYS
    *   LoadOrderGroup = Boot Bus Extender


    6-F) nowy plik: USBBOOT.INF

    Stwórz nowy plik nazwany USBBOOT.INF w tym samym folderze co inne modyfikowane pliki i wstaw do niego następującą treść:

    Code:
    [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


    7. Spakuj zmodyfikowane pliki do pierwotnego formatu .IN_

    Jeśli jeszcze nie usuąłeś wypakowanych plików .IN_, zrób to teraz. Ponownie otwórz okno poleceń i przejdź do katalogu ze zmodyfikowanymi plikami. Następnie wydaj poniższe polecenia:

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


    Trzy pliki IN_ powinny znów się pojawić.

    Gratulacje. Wszystkie modyfikacje są już gotowe.

    8. Wstaw zmienione pliki do obrazu ISO

    Ponownie otwórz obraz ISO przy pomocy WinISO. Przejdź do folderu i386 i usuń następujące pliki, na koniec zachowując zmiany w obrazie ISO:

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


    Dla pewności zamknij i ponownie otwórz WinISO. Przejdź do folderu i386 i wybierz opcję "Dodaj pliki...". Teraz dodaj cztery uprzednio zmienione pliki:

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


    Zapisz obraz ISO. Gotowe.

    9. Nagraj płytę z obrazu ISO

    Użyj swojego ulubionego programu do nagrywania. Ja polecam darmowy i prosty BurnAtOnce

    10. Zainstaluj Windows XP z płyty CD

    Wyłącz komputer. Odłącz WSZYSTKIE wewnętrzne i zewnętrzne dyski (aby instalator nie uszkodził ich sektorów rozruchowych). Niektóre komputery mogą mieć problem z rozuchem gdy nie mają podłączonego żadnego dysku stałego, sprawdź opcje w BIOS-Setupie i jeśli to możliwe usuń HDD z sekwencji startowejm natomiast jako pierwsze źródło rozruchu systemu ustaw USB Harddisk, a kolejne - CDROM.

    Teraz podłącz Twój dysk USB bezpośrednio do komputera, bez żadnych dodatkowych koncentratorów.

    Windows powinien się bez problemu zainstalować, jedyne wyjątki są wymienione poniżej.

    Możliwe problemy podczas instalacji:

    * Podczas instalacji sterowników, sterowniki USB drivers będą sygnalizowane jako "niecertyfikowane" - to jest normalne. Wprowadzone modyfikacje zmieniły ich sumę kontrolną więc podpis stracił ważność. Przyciśnij "tak" kiedy otrzymasz komunikat z zapytaniem o instalację niepodpisanych sterowników.
    * Po dokończeniu instalacji, po pierwszym rozruchu system zasygnalizuje brak pliku wymiany. Możesz to zignorować, jako że system będzie działał i bez tego pliku.

    Kiedy już wszystko działa, zamknij system, wyłącz komputer i podłącz spowrotem pozostałe dyski.

    Emanuel Schleussinger
    http://www.ngine.de