Skip to content


Instalacja Windows 7 na napędzie USB (z użyciem VHD)

W dalszym ciągu czekam na informację od Microsoft czy instalacja Windows 7 na nośniku USB jest dopuszczalna przez licencję Windows 7. Mam nadzieję, że okaże się, że Microsoft tak sam jak ja rozumie zapis zawarty w EULA.

Zebrałem 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 jest do VHD, który znajduje się na dysku USB.

Windows 7: Release Candidate

Bootowanie z VHD wprowadzone wraz z Windows 7 i Windows Server 2008 R2 mocno rozszerzyło możliwości wdrażania systemów w tym możliwość instalacji na napędzie USB. Bootowanie z VHD w Windows 7 jest możliwe tylko w wersji Ultimate i Enterprise, przedstawiona metoda ma zastosowanie do tych wersji Windows 7 (wspierają ją również wszystkie wersje Windows Server 2008 R2 oraz Hyper-V Server 2008 R2). Główną zaletą rozwiązania jest prostota ewentualnej reinstalacji – wystarczy nadpisanie pliku VHD. Niedogodności, które występują w systemach zainstalowanych do VHD przedstawiłem już jakiś czas temu, warto o nich przeczytać zanim zdecydujemy się na taką instalację. Procedura opisywana poniżej nie należy do najłatwiejszych i jest dedykowana dla zaawansowanych, jest trudniejsza niż poprzedni wpis o instalowania Windows 7 na USB. Rozwiązanie testowałem na laptopie Dell D630, D6400 oraz na stacji roboczej Dell Vostro 430, na każdym z nich działało poprawnie. Jeśli się zdecydowałeś na wprowadzenie go w życie powinieneś 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 lub zamiast tego można użyć ścieżki do rozpakowanego obrazu płyty) 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ą, zdecydowałem się na to z powodu przejrzystości opisu.

Ad rem!

  1. Uruchamiamy CMD z uprawnieniami Adminsitratora, za jego pomocą tworzymy w folderze nowym folderze WINvhd na dysku C: plik VHD o wielkości prawie 15GB, formatujemy jego zawartość i nadajemy oznaczenie R:.

    mkdir c:\WINvhd
    diskpart
    create vdisk file=c:\WINvhd\Windows.vhd maximum=15000 type=fixed
    select vdisk file=c:\WINvhd\Windows.vhd
    attach vdisk
    create partition primary
    assign letter=R
    format quick fs=ntfs label=WINvhd
    exit

  2. Rozpakowanie pliku WIM, przechodzimy do folderu gdzie znajduje się ImageX, w moim przypadku używam wersji X64. 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 R:\

  3. Odłaczamy dysk VHD.

    diskpart
    select vdisk file=c:\WINvhd\Windows.vhd
    detach vdisk
    exit

  4. Sprawdzamy którym urządzeniem jest docelowy napęd USB po czym wymazujemy jego zawartość, tworzymy nową partycję i formatujemy ją na NTFS 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
    assignletter=Z
    exit

  5. Kopiujemy plik VHD na napęd USB.

    copy c:\WINvhd\Windows.vhd Z:

  6. Nadpisujemy MBR na napędzie USB.

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

  7. Podłaczamy dysk VHD z napędu USB, powinien być widoczny jako R:.

    diskpart
    select vdisk file=z:\Windows.vhd
    attach vdisk
    exit

  8. Zmiana parametrów bootowania.

    bcdboot r:\windows /s Z:

  9. Dodajemy wpisy do rejestru systemu na VHD 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ć)  oraz zmieniamy ustawienia startu usług związanych z magistralą USB.

    REG LOAD HKLM\WindowsTemp r:\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

  10. Przechodzimy exploratorem windows do R:\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

  11. Odłączamy dysk VHD.

    diskpart
    select vdisk file=z:\Windows.vhd
    detach vdisk
    exit

  12. 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) ważne, żeby konfiguracja napędów była identyczna jak w momencie kiedy była przygotowywana w innym wypadku po zabootowaniu się z klucza zobaczymy informację, że start jest niemożliwy, należy wtedy edytować konfigurację bootowania na kluczu USB (dalej opis jak to zrobić). Jeśli się udało to na ekranie zobaczmy końcową fazę konfiguracji systemu. Po tym nastąpi automatyczny restart, po którym przechodzimy do punktu 13.  W razie problemów z bootowaniem z nowoutworzonego VHD na USB należy wystartować komputer z nośnika instalacyjnego, uruchomić linię komend (Shift + F10), za jej pomocą podpiąć dysk VHD (podobnie jak punkt 7 ale podając odpowiednie litery napędów) a następnie ręcznie zmienić parametry bootowania za pomocą polecenia BCDboot (punkt 8 ze wskazaniem odpowiednich dysków). Dokładniejszy opis jak posługiwać się BCDboot znajduje się tym i w  tym artykule.
  13. Po automatycznym restarcie najprawdopodobniej system się nie włączy poprawnie. Będzie się resetował podczas startu. 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 podpiąć dysk do działającego systemu i wykonać po kolei kroki: 7, 9, 10, 11 i 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.

Przedstawiona procedura działa zarówno z Windows 7 i Windows Server 2008 R2.

[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:
Microsoft Hyper-V Server 2008 R2 RTM & More – Microsoft Virtualization Team Blog
Deploying Microsoft Hyper-V Server 2008 R2 on USB Flash Drive – TechNet
Walkthrough: Deploy a Virtual Hard Disk for Native Boot – TechNet
Virtual Hard Disks in Windows Server 2008 R2 and Windows 7 – TechNet
Instalacja Windows 7 oraz Windows Server 2008 R2 w plikach VHD – wss.pl
ImageX Technical Reference – TechNet
Add a Native-Boot Virtual Hard Disk to the Boot Menu – TechNet
BCDboot Command-Line Options – TechNet

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

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


0 Responses

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



Some HTML is OK

or, reply to this post via trackback.



Skip to toolbar