Trochę o Windows PE i jak dodać ręcznie sterowniki

Ten system jest mocno okrojoną wersją Windows'a, która mnie na swój sposób zainteresowała, ponieważ kocham systemy live-cd. Najczęściej korzystam z Ubuntu z opcją "toram". Po chwili uzyskuję świeży i pełny linuksowy desktop, który jest w całości na pamięci ram (zajmuje około 6 gb). Jednak to jest linux, a ja potrzebuję Windows, aby móc uruchomić taki system z płyty i aby potem zagrać w swoją grę, kiedy Windows ulegnie awarii. Z tego powodu zainteresowałem się tym systemem. Starałem się dodać sterownik mojej karty graficznej i directx 11. 

Czym jest Windows PE

Jest to minimalistyczna wersja Windows'a zawierająca jedynie podstawowe sterowniki i podstawowe komendy konsoli poleceń. Nie działa pełne środowisko graficzne, ponieważ brakuje odpowiednich bibliotek, binarek i wpisów w rejestrze. Nie wszystkie API są dostępne, nie można na przykład korzystać z kamerki internetowej ani ksero mając nawet sterowniki, ponieważ brakuje still image api (jeśli masz większe doświadczenie i wiedzę ode mnie, to z pewnością uda ci się dodać).

Trochę historii

Windows PE, a właściwie Windows Preinstallation Environment, zadebiutował nieoficjalnie na płycie instalacyjnej Windows XP w I386\SETUPLDR.BIN


Mimo, że wówczas już było możliwe uruchomienie Windows PE nie skorzystano z niego (swoją drogą przeglądając binarki Windowsa spotykałem różne dziwne rzeczy np. "Windows XP Personal Edition" albo "deinstalator"). Środowisko Preinstalacji pojawiło się dopiero wraz z Windows Vista. Ten system towarzyszy nam cały czas podczas instalacji systemu, do czasu ponownego uruchomienia się, kiedy komputer zbootuje z dysku. W tym systemie, aby przywołać w każdym momencie konsole poleceń należy nacisnąć Schift + F10. Dostępne są najważniejsze komendy: diskpart, xcopy, notepad, dism (z ograniczoną funkcjalnością), wmic, wpeutil, rundll32, taskmgr, bootsect, bcdboot.

Gdy eksperymentowałem z Windows 7 PE, udało mi się uruchomić logonui.exe. Wówczas było widoczne logo "Windows 7 Ulimate". CCleaner też rozpoznawał ten system jako Windows 7 Ulimate. To tak w ramach ciekawostki ;)

W sieci są projekty próbujące dodać środowisko graficzne i programy do Windows PE. Cały rozwój tych projektów jest prowadzony przez użytkowników pewnego forum

Ograniczenia środowiska preinstalacji nałożone przez Microsoft

Aby ten system nie był używany komercyjnie, posiada on ograniczenia. Po 24 uruchomi się ponownie (to ograniczenie zostało złamane przez forumowiczów). Nie posiada środowiska graficznego, ale wstawienie klucza SOFTWARE z boot\install.wim i zainstalowany program zastępujący Start Menu, np. Classic Shell rozwiązuje problem (ponieważ standardowe Start Menu nie działa oraz aplikacje o nowoczesnym interfejsie, np. Ustawienia). Jednak jest jedno ograniczenie, bardzo poważne, o którym nigdzie nie było powiedziane. Kiedy zainstalowałem Windows PE na dysku twardym (sic), jakiekolwiek zmiany w rejestrze dla DRIVERS nie zapisywały się. Dlatego pomimo moich starań, nie byłem w stanie zainstalować sterowników karty graficznej. Później ręcznie starałem się wstawić i skończyło się na poprawnej rozdzielczości 1920x1080, ale i czarnym ekranem z kursorem (w rejestrze Control\). 

Jak wstawić sterowniki do tego systemu

Wszystko co potrzebujesz to sterowniki do danego sprzętu w formie plików cfg inf i sys. Tak jak masz w C:\Windows\System32\DriverStore\FileRepository. Jeśli nie masz tych plików, spróbuj poszukać ich, np. w zip albo exe używając 7zip np. na płycie dołączonej z drukarką. Jeśli dalej nie znalazłeś, postępuj zgodnie z tą instrukcją. Zaznaczam: to nie jest pełny system, tak jak wspomniałem, nie wszystkie urządzenia mogą działać. W moim przypadku modem huaweia po instalacji działał z pełną funkcjonalnością (też jako czytnik kart pamięci).

1. Otwórz menadżera urządzeń. Naciśnij Win+R i wpisz devmgmt.msc

2. Wybierz interesujące ciebie urządzenie. Naciśnij właściwości a następnie szczegóły, potem wybierz z listy identyfikatory sprzętu i skopiuj linijkę zawierającą jedną z "VID_" "PID_" "VEN_" "DEV_" "SUBSYS_"

3. Udaj się do Microsoft Update Catalog i wklej identyfikator sprzętu, w moim przypadku VID_04E8&PID_6864. Usuń przedrostek "USB\" albo "PCI\" i końcówkę. 

4. Wybierz z listy sterownik, zwróć uwagę na system, architekturę i datę.

5. Pobrane archiwum .cab rozpakuj i..... gotowe!

Aby zainstalować sterowniki, musisz zamontować obraz sources\boot.wim z płyty instalacyjnej (oczywiście w trybie rw, a więc musisz skopiować ten plik na dysk).

Uruchom konsolę poleceń z uprawieniami administratora i wykonaj DISM /Mount-image /imagefile:C:\boot.wim /MountDir:C:\winpe, a następnie DISM /Image:C:\winpe /Add-Driver /Driver:C:\te_sterowniki /recurse oraz odmontuj DISM /unmount-Wim /MountDir:C:\winpe /commit

Windows PE później poprawnie zidentyfikuje i zainstaluje sterownik. Jeśli jest to karta graficzna, będzie komunikat "to urządzenie działa poprawnie, aby zastosować zmiany uruchom ponownie komputer" (tak jak wspomniałem, zmiany w rejestrze dla drivers w pe nie zapisują się) tak wiec,

jak zainstalować ręcznie sterowniki?

1. Zidentyfikuj zależności (ang. dependencies), w menadżerze urządzeń wybierz urządzenie, wejdź w właściwości i w zakładce szczegóły wybierz z listy stos urządzeń


ACPI pci są już w PE, ale igfx już nie.

2. Otwórz rejestr i przejdź do HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ i eksportuj podany wpis w rejestrze, czyli w moim przypadku igfx do pliku.


3. Plik z klucza "ImagePath" skopiuj do plików PE

4. Uruchom regedit i zamontuj rejestr PE (SYSTEM). Jeśli nie masz wersji professional albo enterprise, nie masz dostępnej opcji załaduj gałąź rejestru, wtedy zbootuj komputer z płyty instalacyjnej, wciśnij Schift+F10 i wpisz regedit, wówczas będziesz miał dostępną opcję.

5. Otwórz wyeksportowany klucz notatnikiem i zamień "\SYSTEM\" na lokalizację, w której zamontowałeś rejestr pe np "\system_pe\" 

6. Scal wyeksportowany klucz i odłącz rejestr pe.

Jak zainstalować system Windows używając tylko konsoli poleceń?

Kilka razy instalowałem Windows 7 tylko przy użyciu cmd (aby zainstalować koło innej instalacji). Potrzebujesz partycji ntfs i obrazu wim systemu. Najpierw stwórz katalog, w którym ma się znajdować Windows PE i uruchom komendę dism /get-wiminfo /wimfile:D:\sources\boot.wim 

I wypakuj DISM.exe /Apply-Image /ImageFile:D:\sources\boot.wim /ApplyDir:C:\tenblog2\ /Index:2 /set-targetpath:X:\tenblog2\ (jeśli nie ustawisz poprawnie /set-targetpath, system nie uruchomi się), a następnie dodaj wpis do bootmenu bcdboot C:\tenblog2\Windows\ (usunąć wpisy możesz przez msconfig).

Może powinieneś wyłączyć Windows Defender? 

Najlepiej zainstalować Windows PE przygotowany przez Windows 10PESE. Jestem świadomy tego, że zapewne mało osób będzie instalować sterowniki w przedstawiony przeze mnie sposób, ale mam nadzieję, że ta wiedza komuś pomoże (w końcu są też wersje Server Core bez środowiska graficznego). Hope it helped !