在 hyper-v 中使用 sysprep vhd 自动启动新的虚拟机

在 hyper-v 中使用 sysprep vhd 自动启动新的虚拟机

我有一个已进行系统准备的 VHD(它是在 Hyper-V 本身上创建的),并且我也有一个由系统准备生成的应答文件。现在我需要使用 Hyper-V 启动一个新的 VM,它将使用上面生成的 VHD。当我启动 VM 时,它会调出 UI 并要求我输入机器名称和其他详细信息。我不能自动执行该部分并以某种方式将应答文件提供给 Hyper-V,然后它从中读取值并为我启动操作系统吗?

我看到很多链接都建议使用 SCVMM,但我手头没有。难道不能单独使用 Hyper-V 来实现吗?

答案1

虚拟化环境(例如 Hyper-V)大多只是创建虚拟机,就其内部运行的软件而言,虚拟机与物理机相同。当然,每个虚拟化产品都附带一些工具集,可让您影响虚拟机内运行的软件。

但是,对于客户操作系统的设置,Hyper-V 提供的只是物理机的功能。想象一下从 PXE 服务器启动物理机。您可以在该服务器上设置一个映像,并为各种客户端设置一组无人值守文件。然后,当您通过网络启动物理机时,所需的操作系统就会安装在物理机上。

这里也是一样。您可以准备一个要在 VM 中启动的映像。但这与准备一个要在物理硬件上启动的映像没有什么不同。Hyper-V 与此无关。它只是恰好存储在 VHD 中。

SCVMM 是一款管理产品,可执行多项操作,包括准备映像和在 Hyper-V 服务器上配置虚拟机。如果您不想使用它,也没关系。但不要指望 Hyper-V 提供客户操作系统配置服务。为此,您需要像对待任何其他机器一样对待客户工作负载。

如果要安装 VHD,以便在没有 SCVMM 的情况下操作其上的文件,请参阅此博客文章中的示例脚本代码:

http://blogs.msdn.com/b/virtual_pc_guy/archive/2008/02/01/mounting-a-virtual-hard-disk-with-hyper-v.aspx

答案2

我以前从未尝试过,但我能想到两个选择。

  • 如果您有应答文件,您应该能够自动设置您需要手动输入的所有内容。在创建虚拟机之前,在主机上安装 VHD,编辑应答文件(例如更改其中的主机名),卸载 VHD 并从中创建虚拟机。

  • 您还可以在操作系统安装后首次启动虚拟机时运行一个脚本文件,该文件通过数据交换服务读取配置数据并实际执行配置。数据交换服务默认情况下会自动打开。当您在主机上编辑特定注册表项时,它们将显示在虚拟机上的相应注册表项上。

答案3

嗯,这里用户和管理员是分开的。管理员习惯于编写脚本。

PowerShell 可用于控制 Hyper-V - 有一些 cmdlet 可供下载,用于尚未存在的内容(如果没有它们,Hyper-V API 就相当晦涩难懂)。剩下的就是初级管理员培训练习,编写脚本来读取应答文件并配置虚拟机管理程序。话虽如此 - 显然它无法轻松访问嵌入在 vhd 本身上的 ansqwer 文件。将应答文件移动到 hyper-v 是另一个复杂的问题,对此我会认真地告诉您至少检查一下 SCVMM。

注意:只要您认为 PowerShell 可用,那么这仅仅是 Hyper-V - 并且 PowerShell 现在是 Windows 核心功能的一部分。

相关内容