克隆的Windows 7物理机镜像在Proxmox(QEMU)UEFI虚拟机中无法启动的解决求助
克隆的Windows 7物理机镜像在Proxmox(QEMU)UEFI虚拟机中无法启动的解决求助
各位大佬好,想请教个棘手的问题:我手里有一台HP的物理Windows 7系统,现在要把用户迁移到新的Win10机器上,打算把这台物理机虚拟化做成备份留存。我用Clonezilla克隆了整个磁盘,但Win7不像Win10那样能直接在Proxmox(QEMU)的UEFI虚拟机里启动。
尝试启动修复后,系统提示“Unspecified changes to system configuration might have caused the problem”,这其实也在意料之中——毕竟硬件环境完全变了。但如果直接用Win7安装盘重新装系统,原系统的所有内容都会被移到Windows.old里,完全失去了备份的意义。
我已经试过以下这些操作,但都没解决问题:
- 执行过
bootrec /fixmbr(不过因为是EFI安装,我觉得这个命令其实起不到作用) bootrec /fixbootbootrec /rebuildbcd,有意思的是bootrec /scanos返回0个已找到的系统安装- 运行了
chkdsk检查磁盘,结果显示磁盘状态正常 - 开启启动日志模式后拿到了日志,但带命令提示符的安全模式会在加载
\windows\system32\drivers\CLASSPNP.SYS时卡住,随后自动重启到恢复环境 - 还试过一个比较极端的方法:因为有VM的快照,我先做了一个干净的Win7 UEFI安装,然后通过恢复ISO运行了以下robocopy命令,试图替换系统文件:
robocopy /mir clean_install:\windows\system32\drivers broken_vm:\windows\system32\drivers robocopy /mir clean_install:\windows broken_vm:\windows robocopy /mir clean_install:\boot broken_vm:\boot - 另外还在Win ISO的恢复环境里加载了QEMU驱动ISO,运行了这些命令来安装驱动:
每次操作后我都重新试过bootrec系列命令和启动修复,但都没效果(其实我本来也没抱太大期望就是了)for /r %d in (*.inf) do drvload %d for /r %d in (*.inf) do c:\windows\pnputil -i -a %d for /r %d in (*.inf) do copy %d C:\windows\system32\drivers
现在我可以手动复制用户的文档、下载、桌面这些数据,但怕漏掉某些已安装的程序,到时候用户要用的时候找不到安装包就麻烦了。
补充信息
- 我的操作流程是:用Clonezilla创建物理机的镜像(作为备份),再把这个镜像恢复到虚拟机的磁盘上
- 虚拟化平台是Proxmox(基于QEMU),虚拟机采用UEFI模式。如果直接在这个VM上重新安装Win7 UEFI系统,是可以正常运行的,但原系统内容会被移到Windows.old
- 不确定物理机是不是UEFI启动,但如果虚拟机用BIOS模式启动,会卡在“Booting from Hard Disk”;用UEFI模式至少能显示Windows logo。另外磁盘是GPT格式,Linux下fdisk输出的分区信息如下:
Disk /dev/sda: 1 TiB, 1099511627776 bytes, 2147483648 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Device Start End Sectors Size Type /dev/sda1 2048 206847 204800 100M EFI System /dev/sda2 206848 468991 262144 128M Microsoft reserved /dev/sda3 468992 1918310399 1917841408 914.5G Microsoft basic data /dev/sda4 1918310400 1953523711 35213312 16.8G Microsoft basic data - 现在我在想,是不是可以回到物理机上运行sysprep来生成一个硬件无关的镜像?本来不想修改原物理机,但因为已经有了它的完整镜像,大不了之后把镜像恢复回去就行。不过不确定这个方法是否可行,或者有没有其他更稳妥的办法?
备注:内容来源于stack exchange,提问作者unixnerd777




