我有一台物理 Windows7 系统 (HP),正在将用户迁移到新的 Windows10 机器。我想将这台机器虚拟化为备份。我克隆了驱动器,如果是 Windows 10,我可以在虚拟机管理程序环境中启动它。如果是 Windows 7,它无法启动。我尝试了启动修复,并收到“未指定的系统配置更改可能导致了问题。”这很合理。我可以从 Windows7 磁盘重新安装操作系统,但随后它会将所有内容移动到 Windows.old,这违背了此移动的目的。
我试过了:
bootrec /fixmbr
(我认为这不会产生任何作用,因为这是一个 EFI 安装)bootrec /fixboot
bootrec /rebuildbcd
- 有趣的是
bootrec /scanos
返回 0 个找到的安装 - 我已经完成了
chkdsk
,很好 - 我有启动日志和
Boot Logging
。 Safe Mode with Command Prompt
挂起Loaded: \windows\system32\drivers\CLASSPNP.SYS
并重新启动以进行恢复- 我甚至疯狂了,因为我有这个虚拟机的快照,并进行了单独的全新安装,并从恢复 ISO 运行它:
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
- 我还启动了 Windows 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
但这些都不能解决问题(我想这是有道理的,我没想到会这样)。我还尝试了s之间的bootrec
命令和。Startup Repiar
robocopy
我可以复制用户的文档/下载/桌面/等,但如果我错过了已安装的程序,那么它们就会被卡住,直到我能找到安装程序并修复它。
编辑:
我使用 clonezilla 创建了一个映像(作为备份),然后使用 clonezilla 将该映像恢复到 VM 的磁盘。
我使用 proxmox (quemu) 作为虚拟机管理程序。我使用 UEFI。我能够使用 UEFI 在此 VM 上重新安装 Windows 7,并且运行正常,只是所有内容都移到了 Windows.old。
我不确定它是否是物理上的 UEFI,但如果我尝试启动 BIOS,它似乎会停止,Booting from Hard Disk
但如果我使用 UEFI 启动,我至少会看到 Windows 徽标。此外,磁盘是 gpt,我觉得这意味着 UEFI;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 来制作更兼容的图像;我不想修改原始物理,但我想既然我有它的图像,我可以在捕获 sysprep 版本后恢复该图像。
答案1
我能够通过运行 sysprep 到 OOBE、通过 OOBE 并删除 OOBE 用户来使其工作。然后我能够将源计算机重新映像到运行 sysprep 之前的状态。