Přizpůsobte image Validation OS pomocí GenImage (Pokročilé)
GenImage poskytuje flexibilní a vysoce přizpůsobitelné rozhraní příkazového řádku pro vytváření imagí ověřovacího operačního systému přesně pro vaše scénáře. Nástroj Image Builder pro ověřování používá GenImage, ale vytvoří abstrakční vrstvu pro pohodlný pracovní postup založený na uživatelském rozhraní, ale poněkud omezený. GenImage dokáže mnohem více než to, co je zobrazeno v uživatelském rozhraní nástroje pro vytváření obrazů ověřovacího OS, a tato část podrobně popisuje nuance při vytváření plně přizpůsobitelného obrazu ověřovacího operačního systému.
Poznámka
Plně vlastní image znamenají, že ověřovací image operačního systému vytvořená pomocí libovolného seznamu balíčků přizpůsobení může vést k nefunkčnímu operačnímu systému.
GenImage nevygeneruje šablonu řešení sady Visual Studio.
Celkový proces
Celkový proces vytvoření image ověřovacího operačního systému je následující:
Připojte ISO soubor ověřovacího systému na konkrétní umístění v souborovém systému počítače technika;
Spusťte příkazový řádek se zvýšenými oprávněními a přejděte do složky
<ISO_ROOT>:\cabs
;[Volitelné] přidat ovladače do image ověřovacího operačního systému;
[Volitelné] vytvoření vlastního konfiguračního souboru funkcí;
[Volitelné] přidat požadované funkce nebo balíčky na vyžádání do image ověřovacího operačního systému;
[Volitelné] nastavit nebo přepsat klíče registru v imagi ověřovacího operačního systému;
[Volitelné] zahrnout vlastní binární soubory nebo aplikace do image ověřovacího operačního systému;
[Volitelné] nastavit časové pásmo image ověřovacího operačního systému;
Předdefinované balíčky funkcí
Ověřovací iso operačního systému obsahuje předem definované definice balíčků funkcí ve složce <ISO_ROOT>:\GenImage\configs
. Tyto .pkg
soubory je možné otevřít v textovém editoru a prozkoumat jejich obsah. Horní část těchto souborů obsahuje další informace o konkrétní funkci.
Vytvoření vlastního balíčku funkcí
Pokud předdefinované definice balíčků funkcí poskytované v standardu ISO ověřovacího operačního systému nejsou pro daný scénář vhodné, lze balíček vlastních funkcí snadno definovat pomocí stejného uživatelsky přívětivého formátu, který mají předdefinované soubory .pkg
:
Cokoli po
#
se považuje za komentář.Jeden řádek na balíček (.cab) název bez přípony souboru. Tyto cab se nacházejí v
<ISO_ROOT>:\cabs\neutral
a s odpovídajícími jazykovými balíčky v<ISO_ROOT>:\cabs\en-us
(pokud je to vhodné).Některé
.cab
soubory jsou v podsložkách pod<ISO_ROOT>:\cabs
, například<ISO_ROOT>:\cabs\Experimental
. Struktura těchto adresářů se řídí stejným vzorem jako kořenový adresář a soubory.cab
se umístí doneutral
neboen-us
podsložek. Pokud chcete odkazovat na tyto balíčky ve vlastním balíčku funkcí, jednoduše zadejte název podadresáře za názvem balíčku odděleným mezerou a uzavřeným v hranatých závorkách. Příklad:Microsoft-WinVOS-PnP-Settings-Package [Experimental]
Odkaz na jinou definici funkce, která se má zahrnout pomocí formátu +include
<package_name>.<ext>
.Zahrnuté balíčky se můžou nacházet buď ve stejném adresáři jako soubor definice vlastního balíčku, nebo mohou být jedním ze souborů
.pkg
poskytovaných jako součást ověřovacího iso operačního systému v rámci<ISO_ROOT>:\GenImage\configs
.
Poznámka
Není nutné zadávat cestu k souboru pro zahrnuté balíčky. Nezahrnujte verzi balíčku wow64. GenImage automaticky zahrne wow verzi balíčku, pokud existuje.
- Při spuštění GenImage by měl být
-packagepath
nastaven na adresář cabs, aby GenImage mohl automaticky vkládat konkrétní balíčky bez ohledu na to, zda jsou balíčky umístěny pod podsložkou nebo v kořenovém adresáři cabs.
Příklad vlastního balíčku funkcí:
# Feature: Example
# Description: All packages are located in subdirectories
#
Microsoft-OneCore-TAEF-Package [Test]
Microsoft-WinVOS-PnP-Settings-Package [Experimental]
Poznámka
Pokud je balíček (.cab) uveden vícekrát buď prostřednictvím duplicitní položky v souboru, nebo prostřednictvím zahrnuté definice funkce, GenImage použije tento balíček pouze jednou.
Důležitý
Některé funkce mají závislosti mezi balíčky (cab-to-cab), což znamená, že vygenerovaná image ověřovacího operačního systému nebude fungovat, pokud nebudou zahrnuty všechny požadované balíčky. GenImage tyto závislosti nevynucuje, takže při použití definic vlastních funkcí je možné vygenerovat nefunkčně nebo částečně funkční image ověřovacího operačního systému.
Určení základní image (-ImagePath
a -ImageFile
)
Parametr příkazového řádku -ImageFile:
lze použít k zadání názvu základní image ověřovacího operačního systému.
Při práci s poskytnutým souborem ISO ověřovacího operačního systému lze tento parametr přeskočit, protože GenImage ve výchozím nastavení přejde na ValidationOS.wim
.
Parametr příkazového řádku -ImagePath:
lze použít k poskytnutí cesty k základní imagi ověřovacího operačního systému.
Při práci s dodaným ISO souborem validace OS lze tento parametr přeskočit, protože GenImage ve výchozím nastavení použije kořenový adresář ISO jako mount point.
Zahrnutí funkcí (-PackagesList:
)
Argument příkazového řádku -PackagesList umožňuje použití jedné nebo více předdefinovaných nebo vlastních funkcí poskytnutím cesty ke konfiguračnímu souboru.
Při zadávání více souborů .pkg
použijte tento parametr několikrát:
-PackagesList:<file1> -PackagesList:<file2> [...]
nebo použijte následující syntaxi:
-PackagesList:"<file1>,<file2>[,...]"
Pokud používáte druhý formát, ujistěte se, že je čárkami oddělený seznam uzavřený s dvojitými uvozovkami.
-PackageList
a -PkgLst: jsou aliasy pro -PackagesList:
GenImage bude hledat balíček na vyžádání v rámci <ISO_ROOT>:\cabs\neutral
a <ISO_ROOT>:\cabs\en-us
, pokud není nahrazen parametrem příkazového řádku -PackagePath.
Zahrnutí balíčků na vyžádání bez použití definic funkcí (-Packages:
)
Parametr příkazového řádku -Packages:
lze použít k poskytnutí čárkami odděleného seznamu názvů balíčků na vyžádání, které se mají zahrnout do přizpůsobené image ověřovacího operačního systému. Seznam musí být uzavřený s dvojitými uvozovkami.
Přidání variant wow64 balíčků stále zajistí GenImage, není nutné je uvádět pomocí parametru -Packages:
.
Vzhledem k délce názvů balíčků je snadné vytvořit velmi dlouhý příkazový řádek pomocí parametru -Packages:
, takže doporučujeme vytvořit vlastní definici funkce pro přidání více balíčků. Podrobnosti o definicích vlastních funkcí najdete v tématu Vytvoření vlastního balíčku funkcí.
Přepsání výchozího umístění balíčku (-PackagePath
)
Parametr příkazového řádku -PackagePath:
lze použít k poskytnutí cesty k balíčkům operačního systému ověřování na vyžádání. V zadané cestě musí existovat neutrální adresář a adresáře en-us obsahující příslušné soubory balíčku na vyžádání (včetně verzí wow, pokud je to vhodné).
Při spuštění GenImage z ověřovacího OS ISO lze tento parametr přeskočit, protože GenImage bude ve výchozím nastavení <ISO_ROOT>:\cabs
.
Přidání ovladačů .inf do image ověřovacího operačního systému (-Drivers:
/ -DriversOnly
)
Parametr příkazového řádku -Drivers: lze použít k poskytnutí cesty k úložišti ovladačů specifických pro zařízení. GenImage rekurzivně přidá všechny ovladače pod zadanou cestu.
Pokud jsou ovladače strukturované v <WinVOS_Root>\Drivers\<my_device>,
, lze použít parametr příkazového řádku -HW:<my_device>
jako zkratku pro zahrnutí těchto ovladačů. Další podrobnosti o WinVOS_Root najdete v části Určení cesty přizpůsobené image ověřovacího operačního systému.
Pokud jsou ovladače zahrnuty do přizpůsobené ověřovací image operačního systému, GenImage automaticky přidá balíček funkcí <ISO_ROOT>\GenImage\configs\usb.pkg
, aby ovladače měly k dispozici ty nejzákladnější ovladače třídy. Použití přepínače příkazového řádku -SkipDeviceFeatures
však toto chování přepíše.
Použití přepínače příkazového řádku -DriversOnly umožňuje přidání ovladačů bez zahrnutí jakýchkoli funkcí nebo jednotlivých balíčků.
Výběr cíle spuštění image ověřovacího operačního systému (-x
)
Přizpůsobenou image WIM ověřovacího operačního systému lze vygenerovat tak, aby cílila na dva různé scénáře použití: použijte image přímo na interní pevný disk cílového zařízení (spuštění z C:) nebo použijte vygenerovaný soubor .wim k nahrazení boot.wim na jednotce WINPE USB (spuštění z X:).
Pro zajištění obou scénářů obsahuje základní ValidationOS.wim v kořenovém adresáři ISO dva oddíly: oddíl 1 se používá pro kompatibilitu s obnovením na C:, a oddíl 2 pro podporu scénářů se spouštěním z USB (bootování z X:).
Ve výchozím nastavení GenImage vytvoří ValidationOS.wim, který se obnoví na interním pevném disku cílového počítače (spuštění z C:).
Parametr příkazového řádku -x
lze použít k vygenerování image podporující usb disk ke spuštění ze scénáře X: .
Poznámka: -usb
je alias parametru -x
.
Zahrnutí vlastních souborů do obrázku (-AddedSW
a -AddedSWTargetDir
)
Všechny soubory pod cestou zadanou pro parametr příkazového řádku -AddedSW:
se zkopírují do přizpůsobené image ověřovacího operačního systému. Ve výchozím nastavení se obsah této cesty zkopíruje pod <WIM_ROOT>:\Programs\<folder>
, kde složka je název složky, která se má zahrnout. Například -AddedSW:D:\Test\MyFiles
se zkopíruje do <WIM_ROOT>:\Programs\MyFiles
.
-AddedSW
lze zadat vícekrát, aby ukazovalo na různá místa.
Parametr příkazového řádku -AddedSWTargetDir:
lze použít k přepsání cílového umístění v rámci přizpůsobeného obrazu ověřovacího operačního systému.
Přepínač příkazového řádku -NoPackages
lze použít k publikování už přizpůsobené image ověřovacího operačního systému a přidání souborů jako samostatného kroku.
Změna registru (-RegistryImport:
)
Parametr příkazového řádku -RegistryImport:
lze použít k použití standardního souboru editoru registru systému Windows verze 5.00 .reg
na přizpůsobenou image ověřovacího operačního systému.
Přepínač příkazového řádku -NoPackages
lze použít k publikování již přizpůsobené image ověřovacího operačního systému a přizpůsobení registru jako samostatného kroku.
Změna časového pásma (-TimeZone:
)
Parametr příkazového řádku -TimeZone:
lze použít k úpravě časového pásma přizpůsobené image ověřovacího operačního systému. Zadaný řetězec musí být platným časovým pásmem Windows, jinak GenImage selže.
Určení cesty k přizpůsobenému obrazu ověřovacího operačního systému (-OutPath:
/ -WinVOS_Root:
)
Když spustíte GenImage z připojeného ověřovacího operačního systému ISO, ve výchozím nastavení vytvoří výstup (a veškerý zprostředkující obsah) do C:\WinVOS\out\<date>-<time>
adresáře (např. C:\WinVOS\out\240116-1242
). Toto chování je možné změnit, ale použít buď -OutPath:
, nebo parametry příkazového řádku -WinVOS_Root:
. Rozdíl mezi těmito dvěma je následující:
-OutPath:
určí přesné umístění výstupu, takže v tomto adresáři se vytvoří přizpůsobený ověřovací OS WIM a veškerý zprostředkující obsah.
Důležitý
Použití stejného -OutPath:
pro následné spuštění GenImage může vést k neočekávaným vedlejším účinkům.
-WinVOS_Root:
vytvoří podsložku out\<date>-<time>
v zadaném adresáři.
Spropitné
Použití -WinVOS_Root:
je upřednostňované místo použití -OutPath:
, aby nedocházelo k problémům s konfliktem dočasných souborů nebo souborů .wim, které zůstaly připojené.
Ve výchozím nastavení GenImage použije -OutPath:
pro připojení a zpracování WIM. Parametr příkazového řádku -MountDir:
lze použít k přepsání umístění tohoto přechodného přípojného bodu.
Čištění potenciálně zablokovaných připojených WIMů (-CleanUp
)
Pokud se GenImage přeruší nebo se zablokuje připojený WIM, můžete k pokusu o automatické vyčištění použít parametr příkazového řádku -CleanUp
.
Tento parametr lze použít pouze samostatně.
Přeskočit potvrzení zpracování obrázků (-NoWait
)
Parametr příkazového řádku -NoWait
lze použít k vynechání potvrzení po zobrazení možnosti generování image a pokračování při zpracování obrázku.
Podrobný výstup
Parametr příkazového řádku -v
lze použít ke změně úrovně protokolování GenImage na podrobnou.
Použití tohoto přepínače vygeneruje velké množství výstupu a doporučuje se přesměrovat standardní výstup do souboru.
Zobrazení využití skriptu
Parametr příkazového řádku -h
lze použít k zobrazení informací o použití skriptu.
-?
a -help
jsou aliasy pro -h
Příklady GenImage
Pokud předpokládáme, že ISO soubor systému Validation OS je připojen k J:
, tady je několik příkladů generování přizpůsobených WIM souborů systému Validation OS.
Přidání multimediální funkce bez ovladačů pomocí výchozích hodnot ISO
J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\multimedia.pkg
Přidejte multimediální a Wi-Fi vlastnosti s ovladači, které používají výchozí hodnoty ISO, a vynechejte potvrzení.
Za předpokladu, že jsou ovladače umístěny pod D:\Drivers\MyDevice
J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\multimedia.pkg -PackagesList:J:\GenImage\configs\wifi.pkg -drivers:D:\Drivers\MyDevice -NoWait
... nebo...
J:\GenImage>GenImage.cmd -PackagesList:"J:\GenImage\configs\multimedia.pkg,J:\GenImage\configs\wifi.pkg" -drivers:D:\Drivers\MyDevice -NoWait
Přidání funkce zřizování bez ovladačů pomocí dříve přizpůsobeného WIM
J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\provisioning.pkg -ImagePath:C:\WinVOS\out\240116-1530
Přidání funkce ladění s ovladači a zahrnutí Pythonu
Za předpokladu, že se Python extrahuje pod D:\Staging\Python
a ovladače se umístí do D:\Drivers\MyDevice
J:\GenImage>GenImage.cmd -PackagesList:J:\GenImage\configs\debug.pkg -ImagePath:J:\ -Drivers:D:\Drivers\MyDevice -AddedSW:D:\Staging\Python
Plné využití GenImage.cmd
GenImage.cmd je vysoce přizpůsobitelná pro podporu několika vlastních scénářů. Tady je úplný seznam parametrů, které vezme, a několik příkladů použití:
[-Packages:|-PackagesList:|-DriversOnly|-NoPackages]
[-Drivers:|-HW]
[-WinVOS_Root:] [-MountDir:]
[-wim|-vhd|-vhdx] [-usb|-x] [-inc]
[-TimeZone:]
[-AddedSW: [-AddedSWTargetDir:]]
[-RegistryImport:] [-StartupCommand:]
[-NoWait] [-v]
NOTE: Running From ISO: [YES]
-?|-h|-help This screen
-ImageFile: <file_name> File name of the image file to be processes.
Defaults to ValidationOS.wim
-wim, -vhd and -vhdx are ignored
-ImagePath:<file_path> Path to the image file to be processed.
Default/Current: [J:\]
-PackagePath:<path> Path to the cab files to be added to the image.
Defaults to J:\cab or J:\Packages
Neutral and localized packages are placed into their respective
folders under "cab": "neutral" and "en-us".
-OutPath:<path> Location of the generated image
Default/Current: [C:\WinVOS\out\240116-1640]
-Packages:<list> Comma or space separated list of packages.
Use double quotes around the list.
-PackagesList|PackageList|PkgLst:<file> Use a text file to specify which
packages will be added to the image
One package name per line, use # for comments
-NoPackages Do not include any packages
-DriversOnly Do not include any packages, add drivers only
Requires specifying either -Drivers or -HW, but not both
-Drivers:<path> Path to drivers
If neither -HW nor -Drivers are not specified
no drivers will be added to the image.
If -HW was used defaults to C:\WinVOS\Drivers\%HW%
-HW:<hardware> Hardware variant used for driver installation.
If neither -HW nor -Drivers are specified, no
drivers will be added to the image.
The value specified for this parameter will be appended
to [C:\WinVOS\Drivers]
-SkipDeviceFeatures Do NOT automatically include USB support when
drivers are added to the image
-WinVOS_Root:<path> Root of the directory structure to process
Default/Current: [C:\WinVOS]
-MountDir:<path> Path to mount the image to for processing
Default/Current: C:\WinVOS\out\240116-1640\mnt
-wim Assume the image is a wim file
This is default extension unless -ImageFile, -vhd(x) are specified.
-vhd|-vhdx Assume the image is a vhdx file
.wim is default extension unless -ImageFile is specified.
-usb|-x Assume USB boot and set the image index to 2 during mount
Default image index is 1
-TimeZone:<time zone> Sets the time zone of the image to the specified value.
NOTE: The validity of this setting is not checked.
-AddedSW:<path> Files and folders under path will be copied into the
generated image.
Default target location is \Programs, can be overriden with
-AddedSWTargetDir
-AddedSWTargetDir:<path> Target - in image - path to copy the contents specified by AddedSW.
Default is \Programs
-RegistryImport:<file> Path the a .reg file to be imported into the generated image.
This file can multiple hives under HKLM. Supported hives:
COMPONENTS DEFAULT DRIVERS SAM SECURITY SOFTWARE SYSTEM
-StartupCommand:<file> Path the an executablefile to be used as the ValidationOS Shell
On boot this file will be executed first. If the file does not spawn
a new CMD window, the shell will be this new executable.
-inc|-incremental Do not restore the package from backup
-CleanUp Clean up lingering mounted images.
Will attempt to clean up the mounted into /MountDir.
If /MountDir is not specified it will attempt to clean up
any corrupted and/or prevously mounted images.
NOTE: Not using /MountDir with /Cleanup is a drastic cleaup tactic.
-NoWait Don't pause after displaying image generation settings.
-v Verbose logging
Examples:
* Add all packages in the default "cab" folder under the default package path [J:\cabs] to the default image
file [ValidationOS.wim] under the default path [J:\] without including drivers:
GenImage
* Add all packages under the "cab" folder to a ValidationOS.wim and include the drivers for "SP6"
GenImage -ImageFile:ValidationOS.wim -ImagePath:C:\WinVOS\release\25108.1001.220429-1329\amd64fre -HW:SP6
* Add packages specified in custom.pkg under the "cab" folder to a ValidationOS.vhdx without including drivers:
GenImage -ImagePath:C:\WinVOS\release\25108.1001.220429-1329\amd64fre -vhdx -PackagesList:custom.pkg
* Incrementally add "Microsoft-WinVOS-NetFx45-Package" to ValidationOS.wim. The package is located in "cab" under the specified image path folder.
GenImage -inc -ImageFile:ValidationOS.wim -ImagePath:C:\WinVOS\release\25108.1001.220429-1329\amd64fre -Packages:"Microsoft-WinVOS-NetFx45-Package"
Poznámka o použití odpovídající verze sady nástrojů dism pro vytvoření image
Při spuštění GenImage.cmd z připojeného iso bude skript preferovat použití dism.exe, která je dodávána v ISO spolu s GenImage.cmd. Toto je doporučená verze dism pro jakoukoli úlohu manipulace s obrázky, protože odpovídá verzi nástroje použité k vytvoření odeslaného souboru ValidationOS.wim a volitelných balíčků.
(Experimentální) Přidání podpory WWAN
Opatrnost
Jedná se o experimentální funkci s velmi omezenou podporou.
Ověřovací operační systém zavedl včasnou podporu WWAN, která umožňuje interakci s modemem prostřednictvím příkazů AT.
Do složení obrázku je potřeba přidat dva balíčky: Microsoft-WinVOS-WWAN-Package
a Microsoft-WinVOS-PnP-Settings
.
Tento scénář GenImage nepodporuje, což znamená, že balíčky musí být použity pomocí dism.exe, které je poskytnuto na ISO ověřovacího OS. Nezapomeňte použít dism.exe z <ISO_ROOT>:\GenImage\Tools\DISM\%PROCESSOR_ARCHITECTURE%
, kde PROCESSOR_ARCHITECTURE
je architektura procesoru počítače technika (např. AMD64).