Windows PE moddolás alapszinten UEFI PXE boothoz

PXE vs UEFI

Szóval van az, hogy UEFI-s gépeket akarsz bootolni PXE-ről, mondjuk hogy könnyebb legyen telepíteni. Windowst is kellene, de a mezei Windows telepítő túl nagy, meg UEFI-n nem is nagyon megy a memdisk jellegű brute force betöltés. iPXE alól Sanboot-tal bootolva viszont a Windows telepítő nem igazán működik (nincs hálózat, nincsenek driverek, így maga a telepítő elindul, de amit feltelepítene, az nincs meg).

Ami működik, az az, hogy iPXE-ből Sanboot-tal bebootolsz egy Windows PE alapú bármit :
sanboot http://szerver.neve/windowspe.iso

Pl. Hiren's, BartPE, és onnan kitallózni a Windows telepítőt, ami így már lefut... nekem ezek olyan hibákkal hasaltak el, hogy túl nagy az ISO, nem lehetett őket UEFI esetben bebootolni (BIOS-on ment rendben).
Kivéve a natúr WinPE, ami kb. 350MB. Ezt valahol a Wayback Machine-n sikerült találni. Valami tök szűz WinPE image, kapsz egy parancssort, de amúgy van háló, net use... felhúzod a telepítőt tartalmazó könyvtárt, és setup.exe .

Na de ez így macera. :D Meg akadhat helyzet, amikor (nem otthon) sok gépet kéne húzni, akkor nem akarsz ennyit gépelni. Ez a WinPE cucc pedig a Windows ADK (Assessment Deployment Kit) műve, és mint ilyet, lehet reszelni. ;] (Nem a semmiből jön a Hiren's/BartPE/Strelec sem...)

Windows ADK

Az első lépés, hogy letöltöd és telepíted a Windows ADK-t. Ez ingyenes.


Így néz ki a szerkesztés :D

Létre kell hozni pár könyvtárat, ahova majd ki lesz másolva a WinPE, meg ahol szerkesztjük.

Tehát először, létre kell hozni egy WinPE-t (Deployment and Imaging Tools Environment -et indítsd el a Start menüből) :
copype amd64 C:\Users\Win11\shared\WPE64_ADK
Ez a WPE64_ADK könyvtárba letesz egy kicsomagolt WinPE-t.

Módosítás

A leendő ISO nagy része egy .wim file-ban van (Windows IMage), amikből amúgy akár bootolni is lehet a wimboot kernellel. Azt a boot.wim-et kell felcsatolni, amiben a WinPE-nk tulajdonképpen van (ezen kívül a .ISO-ban van a bootkód, meg némi nyelvi csomag). Ezt a WPE64_WIMEDIT könyvtárba csatolja ez a parancs :

dism /Mount-image /imagefile:"C:\Users\Win11\shared\WPE64_ADK\media\sources\boot.wim" /index:1 /MountDir:"C:\Users\Win11\shared\WPE64_WIMEDIT"

Itt lehet szerkeszteni a startnet.bat-ot. Ez természetesen nem valami emberi helyen van, hanem a C:\Windows\system32 -ben (jó, %SYSTEMROOT%\system32 -ben ) . Ez a .bat lefut a WinPE indulásakor. Alapból megfuttatja a wpeinit.exe -t, ami elvégzi a környezet beállíátást, és felhúzza a hálót, utána meg jön a parancssor. A saját parancsokat a wpeinit paracs után érdemes beírni a startnet.cmd-be, és akkor azok is lefutnak. Magam részéről ennyit csináltam a startnet.cmd-ben :

wpeinit
timeout /t 10
net use g: \\192.168.1.106\data
g:
go.bat
timeout /t 10

Pont ami kell. Vár egy kicsit (fura, nem mindig működik a timeout parancs, azaz amikor újragyártottam az ISO-t, akkor már nem ette...), hogy tuti legyen cím DHCP-ről, csatolja g:-nek a hálózati meghajtót, és onnan elindítja a go.bat-ot.

Érdemes valami minimálisat tenni bele, mert az ISO-ban módosítani utólag macera, így ha egy fix nevű .bat -ot adunk meg, azt a megosztott könyvtárban már bármikor átírhatjuk, az fog történni, ami belekerült. Ide aztán mehet menü, fix útvonalas setup.exe, akármi.

Természetesen a kicsomagolt .WIM-ben levő cuccot nem lehet szerkeszteni. Azaz lehet, csak rámenteni nem lehet. :W
Tehát valahol máshol létrehozol egy file-t, beleírod, amit kell, és adminként felülírod vele a .WIM-ben levőt. :W :O
(Erre biztos van egyszerűbb/kulturáltabb módszer, de a fene, jelenleg elég volt ennyi is. Vagy hát nagyon remélem, hogy van. Vannak mindenféle pofás WinPE customizer progik, de valahogy egyik sem azt csinálta, amit kellett volna. :( )

Ha Windows 11 telepítést is akarsz a WinPE-ről indítani, akkor szükség lesz még pár opcionális cuccra a PE-be. (Különben a Windows 11 telepítő annyit fog mondani, hogy ez a számítógép nem alkalmas a Windows 11 futtatására, a 10-é meg simán megy.)
Dism.exe /Add-Package /Image:"C:\Users\Win11\shared\WPE64_WIMEDIT" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-WMI.cab"

Dism.exe /Add-Package /Image:"C:\Users\Win11\shared\WPE64_WIMEDIT" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-WMI_en-us.cab"

Dism.exe /Add-Package /Image:"C:\Users\Win11\shared\WPE64_WIMEDIT" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-SecureStartup.cab"

Dism.exe /Add-Package /Image:"C:\Users\Win11\shared\WPE64_WIMEDIT" /PackagePath:"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-SecureStartup_en-us.cab"

Ha kész a módosítás, akkor lecsatolni a .wim-et :
dism /Unmount-Image /MountDir:"C:\Users\Win11\shared\WPE64_WIMEDIT" /Commit
(Ennek van egy /Discard opciója is, ha nem akarjuk belepakolni a .WIM-be a módosításokat, vagy nem hajlandó lecsatolódni az image. Ez gyakori :( .)

Ha nem akarod, hogy induláskor "Press any key to boot from CD or DVD..." akkor a C:\Program Files\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\efisys_noprompt.bin -t másold az korábban létrehozott WPE64_ADK könyvtárban a fwfiles alkönyvtárba, az efisys.bin -t töröld, és ezt a noprompt-osat nevezd át efisys.bn-re. (Ha nincs meg az efisys.bin, akkor nem fogja létrehozni a végén a CD-t - és persze nem lesz hibaüzenet, csak "Failed".) A bootfix.bin-t is lehet törölni, de az elvileg csak legacy bootra oldja meg, hogy ne kérjen nyomkodást.

Végül meg kell alkotni a .ISO-t a WPE64_ADK tartalmából :
MakeWinPEMedia /ISO "C:\Users\Win11\shared\WPE64_ADK" "C:\Users\Win11\shared\WPE64_ADK.iso"

Ellenőrizni a .WIM állapotát (ez a lecsatolás után is jól jön, mert nem mindig csatolódik le, és kb. kezdheted elölről a műveletet - legalábbis nekem csomószor el sem indult a legyártott .ISO, ami akár attól is lehetett, hogy a .WIM nem lett lezárva) ezzel a paranccsal lehet :

dism /get-mountedwiminfo
(Ez megmondja, van-e .WIM még becsatolva valahova.)

Ha mindig olyan üzeneteket kapsz, hogy a WIM már csatolva van, akkor a dism /cleanup-wim segíthet, meg törölni az összes könyvtárat, amit létrehoztál.

Ezután a kész .ISO használható PXE-n is, CD-re írva is, ISO-ként is.

Nézzük, mit tud


Bootol (ez az iPXE bootmenüm, tele sanboot-os Windows telepítő tesztbejegyzéssel, meg azzal a netboot-os Debian Stable-el, amit használok is :D )


Startnet.cmd


Van háló, meg hálózati meghajtó is

Magam ritkán telepítek Windowst itthon, de még ehhez is megérte, hogy nem kell semmit csinálni vele; rányom a menüre, jön a hálózati meghajtó, cd a megfelelő könyvtárba, és setup.exe - itthon felesleges lefixálni, hogy mi induljon, mert úgyis mindig helyzettől függ.
Aki sokat telepít, annak is pont ezért lehet hasznos; ha van újabb telepítőverzió, akkor csak kimásolja az ISO tartalmát abba a könyvtárba, ahol a WinPE keresi, és a következő PXE bootos gép már az új telepítőt fogja futtatni.

Felhasznált irodalom (annak a pár napnyi Google-zésnek az eredménye, amíg minden működött :D ) :
https://oofhours.com/2021/01/18/booting-your-own-windows-pe-image/
https://superuser.com/questions/228727/automatically-boot-cd (elvileg ez a jó)
https://serverfault.com/questions/353826/windows-boot-iso-file-without-press-any-key
https://www.elevenforum.com/t/winpe-create-a-custom-windows-install-usb.4804/
https://www.itprotoday.com/compute-engines/q-how-can-i-quickly-find-any-wim-files-are-mounted-using-deployment-image-servicing#close-modal
https://superuser.com/questions/1091544/force-dism-to-unmount-delete-a-mounted-windows-wim
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpeshlini-reference-launching-an-app-when-winpe-starts?view=windows-11
https://stackoverflow.com/questions/9392874/bat-file-open-new-cmd-window-and-execute-a-command-in-there
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-image-management-command-line-options-s14?view=windows-11
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/mount-and-modify-a-windows-image-using-dism?view=windows-11
https://rpi4cluster.com/pxe/win/
https://slightlyovercomplicated.com/2016/11/07/windows-pe-startup-sequence-explained/

Hirdetés

3 pénzügyi döntés, amit minden kisvállalkozónak érdemes átgondolnia az év végéig

PR Ahogy az év vége közeledik, itt az ideje, hogy egy pillanatra megálljunk és áttekintsük vállalkozásunk pénzügyi helyzetét. Ne hagyjuk, hogy az év utolsó hónapjai elússzanak a sürgető feladatok és elfeledett határidők között!

Tovább a fórumba.