经过一些更新(VM 中的几个 Windows 更新以及主机 PC 上的 BIOS 升级 - 不幸的是两者都是同一天完成的,所以我无法判断是哪一个导致了这个问题)后,Win10 VM 在启动几分钟后崩溃,非常随机(在随机时刻并出现不同的错误代码,运行不同的应用程序或只是将其留在那里而不打开任何应用程序)
VBox.log
我在该虚拟机的文件中收到了如下日志:
00:03:46.239192 GIM: HyperV: Guest indicates a fatal condition! P0=0x3b P1=0xc0000005 P2=0xfffff8066340f470 P3=0xffffd98b1c2de640 P4=0x0
00:03:46.239872 GIMHv: BugCheck 3b {c0000005, fffff8066340f470, ffffd98b1c2de640, 0}
00:03:46.239873 SYSTEM_SERVICE_EXCEPTION
00:03:49.161941 AHCI#0: Reset the HBA
00:03:49.161963 VD#0: Cancelling all active requests
00:03:49.162188 AHCI#0: Port 0 reset
00:03:49.163200 VD#0: Cancelling all active requests
00:03:49.624006 VMMDev: vmmDevHeartbeatFlatlinedTimer: Guest seems to be unresponsive. Last heartbeat received 4 seconds ago
00:03:59.390391 VMMDev: Guest Log: VBoxGuest: BugCheck! P0=0x3b P1=0xc0000005 P2=0xfffff8066340f470 P3=0xffffd98b1c2de640 P4=0x0
00:03:59.390548 GIM: HyperV: Reset initiated through MSR
00:03:59.391650 Changing the VM state from 'RUNNING' to 'RESETTING'
00:03:59.394050 GIM: HyperV: Resetting MMIO2 regions and MSRs
00:03:59.394096 PIT: mode=3 count=0x10000 (65536) - 18.20 Hz (ch=0)
或者
00:13:05.795535 GIM: HyperV: Guest indicates a fatal condition! P0=0x1e P1=0xffffffffc0000005 P2=0xfffff8064de1b99c P3=0x0 P4=0xffffffffffffffff
00:13:05.795650 GIMHv: BugCheck 1e {ffffffffc0000005, fffff8064de1b99c, 0, ffffffffffffffff}
00:13:05.795650 KMODE_EXCEPTION_NOT_HANDLED
00:13:05.795651 P1: ffffffffc0000005 - exception code - STATUS_ACCESS_VIOLATION
00:13:05.795651 P2: fffff8064de1b99c - EIP/RIP
00:13:05.795651 P3: 0000000000000000 - Xcpt param #0
00:13:05.795651 P4: ffffffffffffffff - Xcpt param #1
在该日志或 VM 的 BSOD 中,我得到了这个崩溃标识符(我发现一个问题或变化会导致这么多不同类型的错误,这真的很奇怪):
SYSTEM_SERVICE_EXCEPTION
STATUS_ACCESS_VIOLATION
PAGE_FAULT_IN_NONPAGED_AREA
IRQL_NOT_LESS_OR_EQUAL
SYSTEM_THREAD_EXCEPTION_NOT_HANDLED
我猜想全新安装 Windows 10 应该可以正常工作,但我想保留我的文件、设置、会话、存储的密码...
为了恢复此安装,我尝试:
- 以多种不同的组合更改/删除 VM 虚拟硬件:由于它看起来像硬件或驱动程序的问题,我尝试了不同的显示适配器,删除了声音、USB、共享文件夹、处理器设置......
- 启动 Windows 并尝试安装所有可用更新(每月 2022-06 更新尚未安装,21H2 升级也是如此)。它们被找到并下载,但安装失败,并出现许多不同的错误代码(我在 Google 上搜索了其中几个,并尝试了一些建议,例如禁用休眠或不使用共享文件夹,但都不起作用):
0x80073701
0x8000ffff
0x80091007
0x8007000d
0xc80003fa
0x80073712
- 在主机上,下载这些更新的安装程序,将其复制到虚拟机并安装它们:我找不到这些安装程序,似乎它们不提供像 Windows XP 那样的独立更新安装程序
- 打开控制面板、程序、卸载更新:卸载永远不会完成
- 重新启动主机
- 使用 Live Linux ISO 启动虚拟机,然后运行 badblocks:一切正常
- 使用 memtester86 启动虚拟机:无内存错误
- 将 VirtualBox 从 6.1.34 降级到 6.1.32 和 6.1.30:结果相同
- 以安全模式启动 Windows:以同样的方式崩溃
- 在救援模式下启动 Windows:所有选项均不起作用:
- 我没有系统还原点
- 卸载更新失败并显示一般错误消息,原因可能与从正在运行的 Windows 环境中卸载更新相同
- 使用“保留我的文件”选项重置 Windows。它提供使用本地版本的 Windows 或下载它,但都失败并显示一般错误消息
- 使用 NirSoft BlueScreenView 获取有关崩溃的更多信息:显示所有崩溃,
ntoskrnl.exe
因此我找不到有关故障驱动程序或设备的任何信息 chkdsk
未发现任何错误sfc /scannow
说无法执行所需的操作- 下载 Windows 10 ISO 文件:单击“修复”后,将进入与将已安装的 Windows 系统启动到救援模式相同的修复环境
- 升级到 Windows 11:从 Win11 ISO 启动不允许升级,只能全新安装。升级必须通过启动 Win10 并运行来完成
setup.exe
,但这与尝试使用 Windows 更新类似失败(似乎可以正常启动,但几分钟后它说操作无法完成)
还有什么可以尝试的吗?
编辑:
- 几天前,我用压缩了VDI文件
vboxmanage modifymedium --compact Win10.vdi
,以防有人知道这会导致磁盘映像损坏的情况 - Win10 安装 5 个月没有应用 Windows 更新。它们每个月都会自动安装,但需要重新启动,而本月系统重新启动后更新已完成
答案1
发布我的评论作为答案。
VirtualBox 论坛上也报告了类似的问题,讨论结果如下:
实际问题是 VirtualBox 6.1.34 和 6.1.97r150532 不支持主机上的 Debian Linux 内核 5.10.120,并且会导致客户机随机崩溃(双关语 ;))。请参阅20914和Linux 主机上的 Windows 10 Guest 在启动后几秒内死机,详情请见。
这VirtualBox 测试版本6.1.35r151864(及更新版本)应该支持主机和客户机上的 Linux 内核 5.18、5.17.12+、5.15.44+、5.10.119+ 等。
顺便说一句,我在具有 zRAM 的主机上遇到了不可预测的 VirtualBox 客户机行为(KVM 没有这样的问题),因此也请检查一下。
答案2
尝试将虚拟机复制到另一台 PC,看看它是否能在那里运行。这将告诉你问题出在主机还是虚拟机上:
- 如果是虚拟机 - 刷新窗口并保留您的数据。您还可以创建第二个(新)虚拟机并将数据从一个虚拟机复制到另一个虚拟机。
- 如果运行正常,那就是你的硬件问题...修复它。取消你的 bios 升级或诸如此类的操作。