前缀、文档修改记录
20250909 初始化编辑此文章,完稿
章节1、需求描述
一直想把公司配发的电脑,整个硬盘上的系统(含系统盘、数据盘)整个打包,塞进虚拟化里面,这样方便自己有的时候,临时出差用一下公司的内网。
章节2、Disk2vhd工具
使用到的是微软官方的Disk2vhd工具,用它,可以把整个磁盘,全部打包成vhd
https://learn.microsoft.com/en-us/sysinternals/downloads/disk2vhd
章节3、操作过程
3.1、 (可选)镜像复制整个磁盘
我弄了2个NVMe的移动硬盘盒,把工作笔记本电脑的三星固态M2/512GB 硬盘拆了出来,用 Linux系统的 dd命令,拿一块国产的M2/512GB,整个镜像了一遍磁盘,后续的操作可以在我复制出来的这块国产M2/512GB的磁盘上操作,即便操作步骤有错误,也不会把工作系统弄炸裂。
3.2、 运行disk2vhd工具
disk2vhd工具支持对运行中的系统中执行,同样也支持移动硬盘,比如我刚刚镜像出来的国产化硬盘M2/512GB,只要移动硬盘里的分区能够在 Windows 中正常挂载并显示为卷(例如有盘符 D:\、E:\),Disk2vhd 就能扫描并列出来,你也可以勾选它来进行转换。
选项1、 [勾选] prepare for use in virtual PC
选项2、 [不需要]use vhdx
因为我最终要把镜像文件弄到我的Proxmox VE环境中,vhd格式是适合的,而你们若准备用HyperV承载,则这里应该选择vhdx
选项3、 [不需要]usse volumn shadow copy
因为,我是用的其他电脑,运行disk2vhd,移动硬盘里,是需要打包成vhd的工作系统,基于 Windows 的卷影复制服务(VSS, Volume Snapshot Service)来创建 VHD,这个选项,我这里不必。
VHD File name: 存储路径,我的台式机的HDD/D盘,剩余可用磁盘空间759GB,足够放置这个512GB的磁盘文件。
点击 Create,即可开始,因为是逐块读取磁盘和写入的,速度一般不会很快,慢慢等待执行完成就是。
3.3、 上传文件
将刚刚生成的 DESKTOP-XXYYZZ.vhd文件上传到我的PVE磁盘目录下,注意因为文件比较大,传输完成后,用md5sum/sha1sum之类的校验一下完整性。
3.4、 格式转换
PVE 中新建一台虚拟机
硬件参数设置尽量和实体机一致(CPU、磁盘控制器、UEFI/BIOS 模式)
转换为 PVE 可用格式
qemu-img convert -f vhd -O qcow2 DESKTOP-XXYYZZ.vhd vm-101-disk-0.qcow2 // 其中vmid-101 这个101根据你们实际的虚拟机ID来。VM 配置文件里挂载
创建虚拟机(CPU/MEM/noDisk/noSystemISO/网卡E1000),网卡MAC地址跟公司的网卡的一致。 BIOS/UEFI 设置要和实体机一致(Windows 10/11 大概率用 UEFI + OVMF)。 硬盘控制器先选 SATA(这样可以保证先能启动)。 网卡先用 Intel E1000(Windows 自带驱动)。 把转换好的磁盘文件挂载到这台 VM 上(替换掉空磁盘)
章节3、 可能的驱动问题
Windows 迁移后可能蓝屏,要提前装好 virtio 驱动
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/
附录1、视频操作演示
附录2、@Dasmz
博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。
对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费
Twitter: Dasmz
Youtube: @DasmzStudio
Telegram: @Dasmz
