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

[玩转系统] VMDK 转 VHDX PDQ

作者:精品下载站 日期:2024-12-14 07:46:04 浏览:15 分类:玩电脑

VMDK 转 VHDX PDQ


我有一台非常旧的 VMware ESXi 服务器,已经超过了其使用寿命。硬件至少已使用 5 年,而且我的 VMware 许可证已过期。我仍然可以启动服务器并查看虚拟机,但仅此而已。我仍然保留着这个盒子,这样我就可以运行 PowerCLI cmdlet,至少以有限的方式运行。但是,我需要获取一些虚拟机,以便将一些应用程序和数据移动到另一个 Hyper-V 虚拟机。由于我无法运行 VMware 虚拟机,我至少可以将磁盘转换为 VHDX 并将其带入新的 Hyper-V 虚拟机。

我的计算机上已安装了 PowerCLI 6.0 和 Hyper-V cmdlet。我最初的想法是使用免费的 Microsoft Virtual Machine Converter(您可以下载)。但我在使用 GUI 时遇到了许多问题,主要是因为并非所有内容都在同一个域中。但这并不重要,因为我并不是真的想迁移整个虚拟机,我只需要暂时启动旧虚拟机,这样我就可以迁移东西。幸运的是,微软的转换器附带了一组 cmdlet。这就是我所做的。

首先,我需要使用 PowerCLI cmdlet 连接到我的 ESXi 盒子。

add-pssnapin vmware.vimautomation.core
Connect-VIServer -Server esxi.globomantics.local -user root

我需要获取给定虚拟机的磁盘文件。 PowerCLI 的优点之一是您可以轻松浏览数据存储文件。

$path = 'vmstore:\ha-datacenter\datastore1\globomantics mail\Win2K8R2*.vmdk'

[玩转系统] VMDK 转 VHDX PDQ

我需要所有这些文件。但首先我需要能够从文件系统访问它们。幸运的是,PowerCLI 有一个方便的 cmdlet,用于将项目从数据存储复制到文件系统。

Copy-DatastoreItem -item $path -Destination F:\ -PassThru

复制文件后,我就可以开始转换。但是,Microsoft 虚拟机转换器 cmdlet 未安装在预期位置,因此我必须手动导入它们。

Import-Module 'C:\Program Files\Microsoft Virtual Machine Converter\mvmccmdlet.psd1'

导入后,我可以使用 ConvertTo-MvmcVirtualHardDisk。

$paramHash = @{
SourceLiteralPath = 'F:\Win2K8R2.vmdk'
DestinationLiteralPath = 'F:\Converted\GloboMail.vhdx'
VhdType = 'DynamicHardDisk'
VhdFormat = 'Vhdx'
}
ConvertTo-MvmcVirtualHardDisk @paramHash

40GB 文件的转换大约需要 20 分钟。转换后的文件对于动态硬盘来说是30GB。转换完成后,启动新的 Hyper-V 虚拟机就变得非常容易。

Hyper-V\New-VM -Name CHI-EX01 -VHDPath $paramHash.DestinationLiteralPath -SwitchName "Work Network" -MemoryStartupBytes 1GB -Generation 1 |
Hyper-V\Set-VM -DynamicMemory -ProcessorCount 2 -MemoryMinimumBytes 1GB
Hyper-V\Start-VM chi-ex01

您会注意到我使用的是 New-VM cmdlet 的完整路径。这是因为在我的会话中,我同时拥有 PowerCLI 和 Hyper-V cmdlet,并且它们都有一个 New-VM cmdlet。通常我不会在同一个会话中运行这两个命令,但既然我这样做了,我需要明确告诉 PowerShell 要使用哪个 cmdlet。

就是这样。运行后,我卸载了 VMware Tools,安装了 Hyper-V Integration Toolkit,并让 Windows 检测其他所有内容。这需要我重新激活 Windows,但我希望在这成为问题之前迁移我需要的所有内容。

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

取消回复欢迎 发表评论:

关灯