disk2vhd可实现windows物理机在线迁移至hyper-v虚拟机:下载工具→管理员运行→选中系统及efi分区→输出vhdx格式→挂载验证→新建第2代vm并附加镜像→必要时注入hyper-v驱动。

如果需要将正在运行的物理机操作系统及全部数据迁移到虚拟化平台,Disk2vhd 是微软 Sysinternals 提供的一款轻量级、无需重启即可捕获系统磁盘状态的工具。以下是使用 Disk2vhd 完成物理机到虚拟机镜像转换的具体操作步骤:
一、准备 Disk2vhd 工具与目标存储空间
Disk2vhd 为绿色免安装工具,运行前需确保物理机具备足够可用磁盘空间(至少大于源系统分区总占用空间的 1.2 倍),且目标路径所在磁盘支持 NTFS 文件系统。该工具仅适用于 Windows 系统(Windows 7 及以上,含 Server 版本),不支持 Linux 或 macOS 物理主机。
1、访问微软官方 Sysinternals 页面下载 Disk2vhd 工具压缩包。
2、解压后以管理员身份运行 Disk2vhd.exe,避免因权限不足导致卷快照创建失败。
3、确认物理机中待迁移的系统盘(通常为 C:)及关联的系统保留分区、EFI 分区等均处于选中状态,其余非必要数据盘可取消勾选以缩短转换时间与镜像体积。
二、配置 VHD/VHDX 输出参数并启动转换
Disk2vhd 支持生成 VHD 或 VHDX 格式镜像;VHDX 具备更大的容量上限(64TB)、更强的断电保护能力及更优的性能表现,推荐优先选择 VHDX 格式。输出路径应避开正在被镜像的磁盘,防止 I/O 冲突或空间耗尽中断进程。
1、在 Disk2vhd 主界面中,点击“Browse”按钮指定保存路径和文件名,扩展名设为 .vhdx。
2、勾选“Use VHD format instead of VHDX”复选框保持未选中状态,确保输出为现代兼容格式。
3、勾选“Enable Volume Shadow Copy”选项,启用卷影复制服务以保障运行中系统的数据一致性。
4、点击“Create”按钮开始捕获,此时工具将创建快照、逐扇区读取并压缩写入,过程持续时间取决于磁盘大小与 I/O 性能,期间可继续使用物理机但应避免大规模磁盘写入操作。
三、验证镜像完整性与兼容性
生成的 VHDX 文件是完整可引导的磁盘映像,包含原始分区结构、引导记录与全部文件系统元数据。为确保后续能在 Hyper-V 或其他平台成功加载,必须验证其基本可挂载性与分区识别状态,而非仅依赖文件存在。
1、在相同 Windows 系统中,右键点击生成的 .vhdx 文件,选择“Mount”挂载为本地磁盘,观察是否能在“磁盘管理”中显示为在线状态且各分区可见。
2、打开“磁盘管理”,定位挂载后的磁盘,确认系统分区(C:)与 EFI 系统分区均标记为“状态:正常”且无“脱机”或“未初始化”提示。
3、在资源管理器中双击挂载后的系统分区,检查 bootmgr、BCD 存储、Windows 文件夹是否存在且可访问,排除关键引导组件丢失风险。
四、在 Hyper-V 中创建虚拟机并附加镜像
Hyper-V 是原生支持 VHDX 格式的主流平台,无需格式转换即可直接作为虚拟硬盘使用。新建虚拟机时须注意固件类型与源物理机一致(UEFI 主机需启用安全启动并匹配 EFI 分区),否则可能无法引导。
1、打开 Hyper-V 管理器,点击右侧操作栏中的“新建 → 虚拟机”,按向导进行基础配置(名称、代数选第 2 代以支持 UEFI 启动)。
2、在“连接虚拟硬盘”步骤中,选择“使用现有虚拟硬盘”,并浏览定位到刚生成的 .vhdx 文件,不建议勾选“复制虚拟硬盘”以免引入冗余或路径错误。
3、完成向导后,在虚拟机设置中进入“安全”选项页,确认“启用安全启动”处于启用状态(若原物理机为 UEFI 模式),并将模板设为 Microsoft UEFI Certificate Authority。
4、启动虚拟机,观察是否进入 Windows 启动界面;如卡在黑屏或提示“Operating System not found”,需返回检查 VHDX 是否挂载成功、第 2 代虚拟机是否启用、以及 EFI 分区是否被正确包含在镜像中。
五、处理常见启动失败问题
即使 Disk2vhd 成功生成镜像,虚拟机首次启动仍可能因硬件抽象层差异(HAL)、驱动缺失或存储控制器类型不匹配而蓝屏或无法加载内核。此时需在离线状态下注入必要驱动或调整启动配置。
1、在物理机上使用 DISM 命令挂载 VHDX 的 Windows 分区:dism /Mount-Image /ImageFile:"X:\path\to\disk.vhdx" /Index:1 /MountDir:"C:\mount"(其中 Index 值需通过 dism /Get-ImageInfo 先查询)。
2、向挂载镜像注入 Hyper-V 存储与网络驱动:dism /Image:"C:\mount" /Add-Driver /Driver:"C:\Windows\System32\DriverStore\FileRepository\winhvstor.inf_amd64_..." /Recurse(路径需根据实际驱动位置调整)。
3、卸载并提交更改:dism /Unmount-Image /MountDir:"C:\mount" /Commit,完成后再次启动虚拟机测试。
4、若仍出现 INACCESSIBLE_BOOT_DEVICE 错误,需进入恢复环境执行:bcdedit /store C:\EFI\Microsoft\Boot\BCD /set {default} safeboot minimal(路径依据挂载点调整),强制安全模式启动后再移除安全启动标志。






