当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

作者:精品下载站 日期:2024-12-14 23:05:25 浏览:16 分类:玩电脑

在 Hyper-V 中导入、导出和克隆虚拟机


与 VMWare 不同,Hyper-V 没有克隆虚拟机的内置功能(克隆只能在 Virtual Machine Manager 中使用)。要创建现有虚拟机的完整副本,您必须使用 Hyper-V 的导入和导出功能。在本文中,我们将展示如何使用 Hyper-V 管理器 GUI、PowerShell 和 Windows 管理中心 (WAC) 的导入和导出功能在 Hyper-V 中克隆虚拟机。

克隆运行 Windows 的虚拟机时,请记住虚拟机副本将具有与源虚拟机相同的 SID。您必须使用 Sysprep 工具重置 Windows 来宾 SID。如果您已创建参考 Windows 映像,请在克隆之前在其中运行以下命令:

%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe

VM 将关闭,并且将在下次启动时在源 VM 及其克隆副本上生成新的 SID。此外,不建议克隆加入 Active Directory 域的 VM。

在 Hyper-V 管理器中导出和导入 VM

首先,将虚拟机导出到单独的目录中。打开 Hyper-V 管理器控制台,右键单击 VM,然后在上下文菜单中选择导出

在 Windows Server 2012 R2 及更高版本(包括免费 Hyper-V 服务器)上的 Hyper-V 中,您甚至可以导出正在运行的虚拟机,而无需停止它们。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

指定要将虚拟机导出到的目录。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

VM 导出状态将显示在 Hyper-V 控制台的 VM 状态窗格中。

许多管理员使用虚拟机导出作为在 Hyper-V 中备份虚拟机的最简单方法。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

您可以导出虚拟机的特定检查点(快照)。为此,只需右键单击检查点树中所需的检查点,然后选择导出

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

要导入 VM,请在 Hyper-V 管理器中单击主机名,然后选择导入虚拟机

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

然后指定包含导入的虚拟机文件的文件夹所在目录的路径。当您在 Hyper-V 中导入 VM 时,系统会为您提供 3 个在主机上注册 VM 的选项:

  • 就地注册虚拟机(使用现有的唯一 ID) — 在包含导入文件的目录中注册虚拟机(虚拟机 ID 保持不变)

  • 恢复虚拟机(使用现有的唯一 ID) — 将虚拟机文件复制到另一个文件夹(保留原始虚拟机 ID)

  • 复制虚拟机(创建新的唯一 ID) — 将虚拟机复制到另一个目录并生成新的虚拟机 ID

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

Hyper-V 主机上的每个虚拟机都有一个 ID,该 ID 在主机内必须是唯一的。如果将虚拟机导入或克隆到另一台主机,则无需更改虚拟机 ID。

如果您尝试导入具有重复 ID 的 VM,则会出现以下错误:

The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.

为了使用新 ID 创建虚拟机克隆,我们选择了第三个选项。向导会提示您指定要放置 VM 文件的文件夹。默认情况下,使用 Hyper-V 主机设置中指定的文件夹。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

然后选择将存储虚拟机的虚拟磁盘(vhdx 文件)的目录。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

然后,一个新的克隆虚拟机将出现在您的 Hyper-V 控制台中。

如何使用 PowerShell 导出、导入和克隆 Hyper-V VM?

让我们看一下如何使用 PowerShell 通过导出/导入来克隆 Hyper-V 虚拟机。

要导出 VM,请运行以下命令:

Export-VM -Name win10 -Path 'C:\VHD\export'

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

如果要导出正在运行的 VM,可以使用 CaptuteLiveState 选项来确定如何导出 VM 内存。提供三个选项:

  • CaptureSavedState

    - 导出内存(默认)

  • CaptureDataConsistentState

    - 从 Hyper-V 生产检查点导出 VM 状态

  • CaptureCrashConsistentState

    - 不保存内存内容

Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState

如果要从特定检查点导出虚拟机状态,请指定其名称。

首先,显示可用于虚拟机的检查点列表:

Get-VMSnapshot -VMName win10

然后按名称导出检查点:

Export-VMSnapshot -Name “win10 - (6/17/2021 - 3:12:205 PM) Standard” -VMName win10 -Path 'C:\VHD\export'

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

导出虚拟机后,即可导入。如果要就地注册虚拟机,请运行以下命令:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines2cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx"

路径选项中,指定虚拟机配置文件的位置(VMCX 文件格式取代了 Hyper-V Server 2016 中虚拟机配置文件的 XML 格式)。要将虚拟机复制到具有相同 ID 的另一个文件夹,请使用

Copy

选项。要生成新的 VM ID,请使用

GenerateNewId

选项:

Import-VM -Path "C:\VHD\export\win10\Virtual Machines2cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"
VhdDestinationPath

指定虚拟机的 VHDX 文件将复制到的目录,以及

VirtualMachinePath

设置VM配置文件的目录。如果未设置该选项,VM 文件将复制到 Hyper-V 主机设置中指定的默认目录 (

C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\

)。

您还可以设置用于存储检查点的文件夹(

SnapshotFilePath

)和页面文件(

SmartPagingFilePath

)。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

请注意,克隆的虚拟机已显示在 Hyper-V 控制台中,并带有源虚拟机名称。让我们重命名它,但我们首先需要它的 VMID:

get-vm | select VMNAME,VMId

可以看到,主机上有两个名称相同、ID不同的虚拟机。使用与导入的虚拟机的 ID 不同的 ID 重命名虚拟机。复制新虚拟机的 ID 并重命名:

get-vm | Where-Object {$_.VMId -eq "9a9d3332-f332-a231-8abc-9221aab32287"} | Rename-VM -NewName win10_2

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

然后你也可以重命名虚拟硬盘文件:

Get-VHD -VMId 9a9d3332-f332-a231-8abc-9221aab32287| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:\VHD\win10_2\win10_2.vhdx"

更改虚拟适配器的 MAC 地址(您可以指定新的静态 MAC 地址或配置动态获取 MAC 地址)。

Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

在将新虚拟机连接到网络之前,建议将其重命名并将其 IP 地址更改为新的(如果您在 LAN 中使用 DHCP,则可以跳过此步骤)。然后,您将能够使用 Invoke-Command 或 Enter-PSSession cmdlet 通过 PowerShell Direct 连接到新虚拟机:

Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias “Ethernet” -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.13.71 -InterfaceAlias “Ethernet” -AddressFamily IPv4 -PrefixLength 24
Restart-Computer

如何使用 Windows Admin Center 克隆 Hyper-V 虚拟机?

您可以直接克隆 Hyper-V VM,无需在 Windows Admin Center v2009 或更高版本中导出和导入。

运行 WAC,选择虚拟机部分,然后单击虚拟机 -> 管理 -> 克隆

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

然后指定新虚拟机的名称并选择要放置其文件的目录。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

请注意,克隆向导中有“我已在虚拟机上运行 Sysprep”选项。如果您没有使用 Sysprep 通用化映像,也没有启用此选项,Hyper-V 将创建源 VM 的快照,运行 Sysprep,并将其克隆到新 VM(源 VM 将重新启动多次,并且在此过程中将无法使用)。然后源虚拟机将返回到其原始状态,并且快照将被删除。

克隆任何具有非 Windows 来宾操作系统的 VM 时,请始终启用上述选项。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

等待虚拟机克隆完成。新 ID 将自动分配给新虚拟机。

[玩转系统] 在 Hyper-V 中导入、导出和克隆虚拟机

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯