使用 WSK 创建基本 VM 映像

本演练将介绍如何使用 Windows 系统工具包的不同组件在 VM 上生成基线工厂 OS 映像, 以及如何使用功能清单和映像配置文件来配置映像。

若要完成本实验,需要:

  • 技术员电脑,其中
    • 装有 Windows 系统工具包
    • 装有 Hyper-V 管理器
  • 一个示例驱动程序(可选)
  • 一个示例 UWP 应用(可选)
  1. 装载 Windows 系统工具包 ISO。

  2. 以管理员身份运行 SetImagGenEnv.cmd,打开映像生成环境。 SetImagGenEnv.cmd位于已装载的 WSK 的根目录中。

  3. 创建工作区

    我们首先创建一个工作区。 工作区是生成映像时所需的文件集合。 创建工作区时,需要选择体系结构、产品、布局、启动类型和映像类型。 根据你做出的选择,Windows 系统工具包将创建一个包含 OEMInput 文件的工作区,该文件用作映像配置的起点。 在本实验中,我们将生成一个可部署到 VM 的工厂 OS 映像:

    PrepWSKWorkspace "C:\Workspace" -Product FactoryOS -VM
    

    注意

    你将在整个实验中看到的 %WSKWorkspaceRoot% 变量是在运行 prepwskworkspace 时自动设置的。 如果关闭再重新打开 Windows 系统工具包环境,可以通过导航到工作区文件夹并运行 SetWSKWorkspaceRoot.cmd 来设置工作区根目录。

  4. 将驱动程序添加到映像(可选)

    在你创建工作区时,Windows 系统工具包已创建一个名为 OEMDriversFM.xml 的文件。 此文件允许定义要包含在映像中的驱动程序。 Windows 系统工具包生成的 OEMDrivers.xml 文件不包含任何有关其他驱动程序的信息。 如果你要添加某个示例驱动程序:

    1. 将驱动程序 .inf 文件及其所有关联的支持文件(.cab、.sys 等)复制到 C:\Workspace\DCHUDrivers

    2. 运行脚本以自动更新 OEMDriversFM.xml:

      UpdateWSKDriversFM
      

    请参阅驱动程序功能清单,以详细了解如何添加驱动程序,包括如何将驱动程序标记为可选,以及如何生成新的应用 FM。

  5. 将应用添加到映像

    在你创建工作区时,Windows 系统工具包已创建一个名为 OEMAppsFM.xml 的文件。 此文件定义将特定应用添加到映像所需的项。 示例文件已配置为将计算器应用作为可选功能添加到映像。 你的映像配置文件已包含计算器应用及其依赖项。 添加其他应用的方法如下:

    1. 将 .appx 捆绑包、其许可证文件和任何依赖项复制到 %WSKWorkspaceRoot%\Apps 文件夹中。

    2. 在生成环境中,运行:

      UpdateWSKAppsFM
      
    3. 你将获得一个已更新的 OEMAppsFM.xml 文件,其中包含 Apps 文件夹中的应用。 当你运行 UpdateWSKAppsFM 时,添加的应用程序未标记为可选。 如果你希望这些应用是可选的,请编辑 XML 文件并为这些应用设置 Optional = True

    4. 未设置为可选的应用将包含在映像中(前提是 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>
      
    5. 保存映像配置文件。

    若要在映像中提供更多应用,请参阅应用功能清单

  6. 在映像配置文件中包含功能清单

    在你创建工作区时,Windows 系统工具包已创建一个自动包含 OEMAppsFM.xmlOEMDriversFM.xml映像配置文件。 如果要创建更多功能清单,需要将它们添加到映像配置文件中的 AdditionalFMs 元素下。 这样,功能清单中定义的功能便可以添加到映像中。 映像配置文件中的所有功能都在功能清单中定义。 将功能清单添加到映像配置文件后,该功能清单中定义的所有功能都可添加到映像。

    在 XML 编辑器中打开映像配置文件,并验证是否列出了 OEMAppsFM.xmlOEMDriversFM.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>
    
  7. 创建映像

    运行以下命令以生成映像。 设置工作区时,将映像设置为 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.
    

    在生成映像之前,请确保输出文件夹尚未包含具有相同名称的生成映像。

  8. 创建使用你创建的虚拟硬盘驱动器的虚拟机。 启动后,可以使用设备门户SSHTShell 连接到设备。