文章目录
-
- 整体流程总览
- [方案A:再生龙Clonezilla(Windows / Linux通用,推荐)](#方案A:再生龙Clonezilla(Windows / Linux通用,推荐))
- [方案B:Windows虚拟机(DiskGenius / AOMEI分区助手)](#方案B:Windows虚拟机(DiskGenius / AOMEI分区助手))
- 方案C:Linux虚拟机内部dd命令全盘克隆
- 迁移后磁盘扩容(新盘更大,把空余空间利用)
- [高频故障:迁移后报 Operating System not found / 蓝屏0xc0000225](#高频故障:迁移后报 Operating System not found / 蓝屏0xc0000225)
整体流程总览
- 虚拟机关机,添加一块全新目标虚拟磁盘
- 启动虚拟机,做全盘磁盘对拷(disk‑to‑disk),完整复制所有分区(EFI/MBR引导分区不能丢)
- 关闭虚拟机,移除旧磁盘,把新磁盘调整为第一启动硬盘
- 开机验证系统;确认一切正常后,再删除旧vmdk备份文件
方案A:再生龙Clonezilla(Windows / Linux通用,推荐)
- 下载Clonezilla‑live ISO镜像,虚拟机设置CD/DVD挂载该ISO。
- 编辑虚拟机设置 → 添加新硬盘,容量大于原磁盘实际占用空间,动态分配。
- 设置虚拟机BIOS启动顺序:光驱优先,开机进入再生龙。
- 选择语言、键盘,启动Clonezilla,选择 device‑to‑local‑disk(磁盘到本地磁盘)
源磁盘sda=原来旧系统盘;目标磁盘sdb=刚刚新增的空白虚拟磁盘。
⚠️千万不要搞反源盘与目标盘,目标盘所有数据会被全部覆盖。
- 确认执行全盘克隆,等待拷贝完成,关闭虚拟机。
- 虚拟机设置:移除旧硬盘(不要勾选"从磁盘删除文件",保留备份)。
- 将新磁盘调整到SATA0:0位置(第一个硬盘位)。
- 开机,F2进入虚拟机BIOS,硬盘调整为第一启动项,启动系统。
方案B:Windows虚拟机(DiskGenius / AOMEI分区助手)
- 虚拟机关机,添加新虚拟磁盘。
- 虚拟机挂载PE ISO,进入PE系统。
- 打开DiskGenius,选择磁盘克隆,源盘=旧系统盘,目标盘=新增虚拟硬盘。
必须勾选复制所有分区:EFI、MSR、系统分区、恢复分区,缺一不可,否则迁移后无法引导启动。
- 克隆完成,关闭虚拟机。
- 移除旧磁盘,新磁盘放到SATA0:0,开机测试。
方案C:Linux虚拟机内部dd命令全盘克隆
适合熟悉Linux命令,虚拟机内部直接操作
- 关机添加新磁盘,开机进入系统。
bash
# sda旧系统盘,sdb新目标盘
sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress
- 拷贝完成后关机。
- 移除旧磁盘,新磁盘设置为第一块硬盘,开机。
注意:两块磁盘UUID完全一样,后续需要修改
/etc/fstab,建议改用设备名挂载,避免冲突。
迁移后磁盘扩容(新盘更大,把空余空间利用)
Windows
磁盘管理 → 选中C盘,扩展卷,把未分配空间合并进系统盘。
Linux
- 使用
growpart扩展分区
bash
growpart /dev/sdb 1
xfs_growfs /dev/sdb1 # xfs文件系统
# resize2fs /dev/sdb1 # ext4文件系统
高频故障:迁移后报 Operating System not found / 蓝屏0xc0000225
-
新磁盘没有放在SATA0:0第一个硬盘控制器位置,虚拟机找不到系统盘。
-
克隆漏掉EFI引导分区(GPT/UEFI系统最常见)。
- Windows:挂载Windows安装ISO,进入修复模式,执行引导修复命令
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd -
BIOS启动顺序错误,把硬盘放到第一位。
-
Linux:磁盘UUID冲突,修改
/etc/fstab,改用/dev/sda设备路径。