Skip to content


Instalacja Windows 7 na napędzie USB

Prawie dwa lata temu na moim blogu umieściłem wpis o możliwości instalacji Windows Vista i Windows Server 2008 na dysku USB. Rozwiązanie, które wtedy przedstawiłem nie było wygodne, z powodu konieczności posiadania komputera z Hyper-V lub VMware Server.

Windows 7: Small drive

Nie udało mi się znaleźć nigdzie dobrej metody na instalację Windows 7 i Windows Server 2008 R2 na kluczu USB dlatego postanowiłem się zabrać samemu za napisanie tutoriala. Rozwiązanie to jest rozwojową modyfikacją mojego pomysłu z przed 2 lat, jest od niego też dużo prostsze. Należy pamiętać o tym, że nie jest wspierane przez Microsoft. Domyślnie podczas startu Windows 7 i Windows Server 2008 R2 magistrala USB jest resetowana (tak samo jak w Windows Vista i Windows Server 2008) co w wypadku instalacji na napędzie USB powoduje przerwanie startu i restart komputera, w moim opisie przeciwdziałam temu przez wpisy w rejestrze i edycję plików. Procedura opisywana poniżej wymaga nieco uwagi a nie tylko wklejania poszczególnych linii do CMD. Wszystkie skomplikowane operacje zostały dodatkowo opisane. Jej działanie testowałem na laptopie Dell D630, D430, D6400 oraz na stacji roboczej Dell Vostro 430, na każdym z nich działało poprawnie.

Jeśli mimo to się zdecydowałeś należy się zaopatrzyć w:

Wszystkie poniższe operacje wykonywałem na Windows 7 Ultimate x64 z zainstalowanym pakietem WAIK, gdzie:

  • C: to dysk systemowy
  • D: napęd DVD (może być to też klucz USB, można również się posłużyć rozpakowanym obrazem) z instalatorem Windows 7
  • W porcie USB znajduje się klucz USB na którym zainstalowany zostanie system. UWAGA! Wszystkie dane z nośnika wymiennego zostaną skasowane, nie jest to koniecznością (z punktu 1 można zrezygnować jeśli jesteśmy pewni, że pierwsza partycja podstawowa na kluczu jest aktywna i jest sformatowana na NTFS, w takim wypadku należy zmienić tylko jej literę na Z:), zdecydowałem się na to z powodu przejrzystości opisu.

Ad rem!

  1. Uruchamiamy CMD z uprawnieniami Administratora, za jego pomocą czyścimy dysk USB, formatujemy jego zawartość i nadajemy oznaczenie Z:.

    diskpart
    list disk
    select disk <numer napędu USB>
    clean
    create partition primary
    select partition 1
    active
    format quick fs=ntfs
    assign letter=Z
    exit

  2. Rozpakowanie pliku WIM, przechodzimy do folderu gdzie znajduje się ImageX, w moim przypadku wdrażam wersję X64 (dlatego AMD64 w pierwszej linii, przy wdrażaniu X86 ścieżka będzie miała oczywiście X86 na końcu ). W drugiej linii sprawdzamy jakie są wszystkie wersje systemu dostępne w pliku WIM, w moim przypadku Windows 7 Ultimate X64 był dostępny jako <IMAGE INDEX=”4″>, dlatego w następnym kroku pojawiła się cyfra 4.

    cd /d “C:\Program Files\Windows AIK\Tools\amd64″
    imagex /info d:\sources\install.wim
    imagex /apply /check d:\sources\install.wim 4 Z:\

  3. Nadpisujemy MBR na napędzie USB (znów robię to dla wersji X64).

    cd /d “c:\program files\Windows AIK\Tools\PETools\AMD64\”
    bootsect /nt60 Z: /force /mbr

  4. Zmiana parametrów bootowania.

    bcdboot Z:\windows /s Z:

  5. Dodajemy wpisy do rejestru systemu na USB wymuszające wyłączenie pliku wymiany w celu ograniczenia zapisów na napęd USB (w razie chęci posiadania pliku wymiany z komend w linii 2 i 3 można zrezygnować jeśli chcemy zachować plik wymiany o domyślnych parametrach)  oraz zmieniamy ustawienia startu usług związanych z magistralą USB.

    REG LOAD HKLM\WindowsTemp z:\windows\system32\config\system
    REG ADD “HKLM\WindowsTemp\ControlSet001\Control\Session Manager\Memory Management” /v PagingFiles /t REG_MULTI_SZ /d “” /f
    REG DELETE “HKLM\WindowsTemp\ControlSet001\Control\Session Manager\Memory Management” /v ExistingPageFiles /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBCCGP /v Start /t REG_DWORD /d 00000000 /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBEHCI /v Start /t REG_DWORD /d 00000000 /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBHUB /v Start /t REG_DWORD /d 00000000 /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBSTOR /v Start /t REG_DWORD /d 00000000 /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBUHCI /v Start /t REG_DWORD /d 00000000 /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBCCGP /v Group /t REG_SZ /d “Boot bus extender” /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBEHCI /v Group /t REG_SZ /d “Boot bus extender” /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBHUB /v Group /t REG_SZ /d “Boot bus extender” /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBSTOR /v Group /t REG_SZ /d “Boot bus extender” /f
    REG ADD HKLM\WindowsTemp\ControlSet001\Services\USBUHCI /v Group /t REG_SZ /d “Boot bus extender” /f
    REG UNLOAD HKLM\WindowsTemp

  6. Przechodzimy eksploratorem windows do Z:\windows\inf i edytujemy następujące pliki: usb.inf, usbport.inf, usbstor.inf; dodając na początku ich treści:

    [*.AddService]
    StartType = 0
    LoadOrderGroup = boot bus extender

  7. Klucz USB z Windows 7 jest już przygotowany, można się z niego spróbować zabootować. Klucz po przygotowaniu można użyć na innej konfiguracji sprzętowej (uruchomić go na innym komputerze).
  8. Po automatycznym restarcie najprawdopodobniej system się nie włączy poprawnie. Będzie się resetował kilka sekund po starcie. Jest to spowodowane przywracaniem ustawień domyślnych rejestrów usług magistrali USB przez instalator. Zanim system będzie gotowy do pracy taka sytuacja wydarzy się dwukrotnie. Należy wtedy wykonać po kolei kroki: 5 i 6, po czym zabootować się jeszcze raz. Te same kroki należy podjąć jeśli zmienią się ustawienia i system będzie się resetował podczas startu, zdarza się, że instalacja poprawek zmienia ustawienia rejestrów odpowiedzialnych za USB, co powoduje problemy ze startem.

Przedstawioną metodę można stosować dla Windows 7 i Windows Server 2008 R2 oraz Hyper-V Server 2008 R2 (dla Hyper-V Server 2008 R2 jest wspierane przez Microsoft do instalacji do dysku VHD na USB, opiszę to wkrótce). Warto też mieć na uwadze, że wydajne USB 3.0 niedługo trafi pod strzechy, może to spowodować, że rozruch systemu z USB stanie się o wiele bardziej popularny z powodu prędkości porównywalnej do interfejsu SATA 2.

Jeśli chodzi o legalność rozwiązania jestem w trakcie ustalania jakie zdanie na temat tej metody instalacji ma firma Microsoft. Przytoczę kawałek licencji Windows 7, w oryginale:

“The software is licensed on a per copy per computer basis. A computer is a physical hardware system with an internal storage device capable of running the software. A hardware partition or blade is considered to be a separate computer.”

Po polsku brzmi to:

“Oprogramowanie jest licencjonowane w trybie kopii na komputer. Komputer to fizyczny system sprzętowy z wewnętrznym urządzeniem magazynującym dane służący do uruchomiania oprogramowania. Partycja sprzętowa lub dysk typu blade są uznawane za oddzielne komputery.”

Biorąc to dosłownie instalacja na kluczu USB znajdującym się wewnątrz sprzętu komputerowego (np. klucz podłączony wewnątrz komputera nie wystający poza obudowę)  wydaje się dopuszczalna ale tak jak napisałem parę linijek wyżej jestem w trakcie sprawdzania u źródła.

[update 27.01.2010]
Zgodnie z informacją jaką w dniu dzisiejszym otrzymałem z Centrum Obsługi Klienta Microsoft taka instalacja jest dopuszczona przez licencję Windows 7 i Windows Server 2008 R2. Cytat z maila jaki w tej sprawie otrzymałem: “Instalacja systemu na nośniku danych jakim jest USB, jest możliwa i nie powoduje, że takie postępowanie stoi w sprzeczności z licencją. Należy zwrócić uwagę na fakt, że oprogramowanie załadowane z napędu USB – w przypadku licencji OEM, przypisze się do komputera i instalacja na innym urządzeniu z tego napędu nie jest możliwa“.

źródła, poza własnym doświadczeniem:

ImageX Technical Reference – TechNet

BCDboot Command-Line Options – TechNet

Posted in Hyper-V, Windows 7, Windows Client, Windows Server, Windows Server 2008, Windows Server 2008 R2, Windows Vista, tech.

Tagged with , , , , , , , , , , , , , , , , , , , , , , , .


62 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. robson2009 says

    Witam nie mogę sobie poradzić z pkt.2 pokazuje mi że plik imagex nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne , program wykonywany lub wsadowy pozdrawiam

  2. Karol Stilger says

    @robson2009: zainstaluj WAIK

  3. robson2009 says

    i jeszcze jedno pytanko czy windows 7 home bedzie dzialal

  4. robson2009 says

    a jesli chodzi o waik to mam zainstalowany

  5. Karol Stilger says

    robson2009: Metoda działa ze wszystkimi wersjami Windows 7, co do Twojego problemu to pewnie wskazujesz błędnie folder gdzie znajduje się imagex.

  6. srdz says

    Karol, powiem ci, ze znou probowalem to zrobic, za kazdym razem odnosze sie do tej samej literki dysku, jest to g: , wpisuje te /force /mbr , w zasadzie nie dodalem tylko jeszcze, ze ten blad ktory mi wyskakuje, po naisnieciu entera znika i pokazuje windows boot manager, z mozliwoscia wyboru windows7 … ale po jego wyborze znowu to samo, to samo gdy wybiore opcje skanowania pamieci czy cos takiego, za kazdym razem wyskakuje ten sam blad ale zmienia sie plik.exe … zamiast winload.exe jest wowczas cos w stylu memtest.exe … tak jakby faktycznie byl blad z dostaniem sie do odpowiedniej literki … ale powiedz mi, masz jakis pomysl ? jaka literka mam okresli ten dysk ? gdzie ustawic mbr, jak to sie dokladniej robi … ?

  7. enhap says

    bład przy uruchamianiu systemu : BOOTMGR is missing

  8. Jacobs says

    kurcze gdy chcę pisać komendę imagex /info d:\sources\install.wim
    wtedy wyskakuje komunikat, że imagex jest nie prawidłową aplikacją Win32. Co zrobić?

  9. MATOS says

    @Karol Stilger przy punkcie 4 po wpisaniu komendy wyskakuje mi: BFSVC: Failed to close the system store. Status = [c0000121]. Pracuję na Windows XP Professional SP3. Co mogę z tym zrobić?

  10. MATOS says

    Z tym problemem sobie poradziłem, lecz z bootowaniem mam problem. BIOS widzi dysk USB ale nie chce z niego pociągnąć. I w tym mam problem – może ktoś coś podpowie?

  11. MATOS says

    Znów wróciłem do metody z tutoriala(gdzie nie mogę dać sobie rady z tym: BFSVC: Failed to close the system store. Status = [c0000121]).
    @ Karol Stilger – Wiesz może co robię źle? Wszystko jest według poradnika. Zatrzymuję się na punkcie 4 z tym błędem wyżej(w tym komentarzu). Z góry dziękuję za odpowiedź. Przepraszam za spam w komentarzach ale muszę jakoś ten problem rozwiązać.
    Próbowałem instalować tym programem co ktoś podał na 1 stronie ale tam nie chce się zbootować – błąd systemu operacyjnego. Jeszcze raz dziękuję i pozdrawiam.

1 2

Continuing the Discussion

  1. Instalacja Windows 7 na napędzie USB (z użyciem VHD) | notepad of Karol Stilger linked to this post on 15/01/2010

    [...] metody instalacji na USB, które umieściłem w dwóch moich ostatnich wpisach: Instalacja Windows 7 na napędzie USB i Hyper-V Server 2008 R2 instalacja na USB. Tworząc z nich scenariusz, gdzie Windows 7 instalowany [...]



Some HTML is OK

or, reply to this post via trackback.