使用 WSK 创建基本 VM 映像
本演练将介绍如何使用 Windows 系统工具包的不同组件在 VM 上生成基线工厂 OS 映像, 以及如何使用功能清单和映像配置文件来配置映像。
若要完成本实验,需要:
- 技术员电脑,其中:
- 装有 Windows 系统工具包
- 装有 Hyper-V 管理器
- 一个示例驱动程序(可选)
- 一个示例 UWP 应用(可选)
装载 Windows 系统工具包 ISO。
以管理员身份运行
SetImagGenEnv.cmd
,打开映像生成环境。SetImagGenEnv.cmd
位于已装载的 WSK 的根目录中。创建工作区
我们首先创建一个工作区。 工作区是生成映像时所需的文件集合。 创建工作区时,需要选择体系结构、产品、布局、启动类型和映像类型。 根据你做出的选择,Windows 系统工具包将创建一个包含 OEMInput 文件的工作区,该文件用作映像配置的起点。 在本实验中,我们将生成一个可部署到 VM 的工厂 OS 映像:
PrepWSKWorkspace "C:\Workspace" -Product FactoryOS -VM
注意
你将在整个实验中看到的 %WSKWorkspaceRoot% 变量是在运行
prepwskworkspace
时自动设置的。 如果关闭再重新打开 Windows 系统工具包环境,可以通过导航到工作区文件夹并运行SetWSKWorkspaceRoot.cmd
来设置工作区根目录。将驱动程序添加到映像(可选)
在你创建工作区时,Windows 系统工具包已创建一个名为
OEMDriversFM.xml
的文件。 此文件允许定义要包含在映像中的驱动程序。 Windows 系统工具包生成的OEMDrivers.xml
文件不包含任何有关其他驱动程序的信息。 如果你要添加某个示例驱动程序:将驱动程序 .inf 文件及其所有关联的支持文件(.cab、.sys 等)复制到
C:\Workspace\DCHUDrivers
。运行脚本以自动更新 OEMDriversFM.xml:
UpdateWSKDriversFM
请参阅驱动程序功能清单,以详细了解如何添加驱动程序,包括如何将驱动程序标记为可选,以及如何生成新的应用 FM。
将应用添加到映像
在你创建工作区时,Windows 系统工具包已创建一个名为
OEMAppsFM.xml
的文件。 此文件定义将特定应用添加到映像所需的项。 示例文件已配置为将计算器应用作为可选功能添加到映像。 你的映像配置文件已包含计算器应用及其依赖项。 添加其他应用的方法如下:将 .appx 捆绑包、其许可证文件和任何依赖项复制到
%WSKWorkspaceRoot%\Apps
文件夹中。在生成环境中,运行:
UpdateWSKAppsFM
你将获得一个已更新的 OEMAppsFM.xml 文件,其中包含
Apps
文件夹中的应用。 当你运行UpdateWSKAppsFM
时,添加的应用程序未标记为可选。 如果你希望这些应用是可选的,请编辑 XML 文件并为这些应用设置Optional = True
。未设置为可选的应用将包含在映像中(前提是 FM 文件已包含在映像配置文件中)。 如果你已将某个应用设置为可选并想要将其添加到映像配置文件,必须将其 ID 添加到
AppXOptionalPackages
节。 这就是添加计算器应用的大致方法(因为在生成工作区时已将它设置为可选)。看看
OEMAppsFM.xml
中的条目:<PackageFile Optional="true" ID="Microsoft.WindowsCalculator_8wekyb3d8bbwe" LicenseFile="Microsoft.WindowsCalculator_8wekyb3d8bbwe.xml" Name="Microsoft.WindowsCalculator_8wekyb3d8bbwe.appxbundle" Path="$(mspackageroot)\Appx\Calculator"/>
请注意
ID
(Microsoft.WindowsCalculator_8wekyb3d8bbwe
),我们将使用它来添加应用。复制
ID
并将其粘贴到映像配置文件中。 它将如下所示:<AppXOptionalPackages> <!-- Add optional APPX packages here. --> <AppXID>Microsoft.WindowsCalculator_8wekyb3d8bbwe</AppXID> </AppXOptionalPackages>
保存映像配置文件。
若要在映像中提供更多应用,请参阅应用功能清单。
在映像配置文件中包含功能清单
在你创建工作区时,Windows 系统工具包已创建一个自动包含
OEMAppsFM.xml
和OEMDriversFM.xml
的映像配置文件。 如果要创建更多功能清单,需要将它们添加到映像配置文件中的AdditionalFMs
元素下。 这样,功能清单中定义的功能便可以添加到映像中。 映像配置文件中的所有功能都在功能清单中定义。 将功能清单添加到映像配置文件后,该功能清单中定义的所有功能都可添加到映像。在 XML 编辑器中打开映像配置文件,并验证是否列出了
OEMAppsFM.xml
和OEMDriversFM.xml
。 这些 FM 中包含的应用和驱动程序将自动包含在映像中,除非将它们指定为optional
。 可以在功能清单中详细了解如何将功能标记为可选。打开映像配置文件。 应会在该文件中看到以下 FM。 如果未列出应用和驱动程序的功能清单,请添加,使其如下所示:
<AdditionalFMs> <!-- You MUST include GenericDeviceFM.xml and FOSNonProductionFM.xml! --> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\GenericDeviceFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\FOSNonProductionFM.xml</AdditionalFM> <AdditionalFM>%WSKContentRoot%\FMFiles\%WSKImageArchitecture%\FactoryOS\HardwareValidationFM.xml</AdditionalFM> <!-- Add OEM FMs here. --> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMAppsFM.xml</AdditionalFM> <AdditionalFM>%WSKWorkspaceRoot%\FMFiles\OEMDriversFM.xml</AdditionalFM> </AdditionalFMs>
创建映像
运行以下命令以生成映像。 设置工作区时,将映像设置为 VM。 这会在名为 Workspace.Output 的文件夹中生成一个 VM。
BuildWSKImage %WSKWorkspaceRoot%\FactoryOS_Development_AMD64_UEFI_SpacesGPT_VM.xml
注意
此处引用的 xml 文件可能不同,具体取决于你在生成工作区时选择的选项。 如果在运行此命令时出错,请确保文件名正确。
重要
如果尝试在已包含同名 .FFU 映像或虚拟硬盘的目标文件夹中生成映像,映像创建操作将失败并出现以下错误:
imageapp : ERROR : ThreadId18164 OutputFile C:\FactoryOS.Output\FactoryOS_Development_AMD64_UEFI_SpacesGPT_Hardware.ffu already exists.
在生成映像之前,请确保输出文件夹尚未包含具有相同名称的生成映像。
创建使用你创建的虚拟硬盘驱动器的虚拟机。 启动后,可以使用设备门户、SSH 或 TShell 连接到设备。