You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

克隆的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 /fixboot
  • bootrec /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,运行了这些命令来安装驱动:
    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
    
    每次操作后我都重新试过bootrec系列命令和启动修复,但都没效果(其实我本来也没抱太大期望就是了)

现在我可以手动复制用户的文档、下载、桌面这些数据,但怕漏掉某些已安装的程序,到时候用户要用的时候找不到安装包就麻烦了。

补充信息

  • 我的操作流程是:用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

火山引擎 最新活动