有什么办法可以修复 E_FAIL (0x80004005)?

有什么办法可以修复 E_FAIL (0x80004005)?

我急需帮助,因为我今晚要交作业。提前谢谢您!

这是我收到的错误:

Failed to open a session for the virtual machine myMachine.

Could not open the medium 'C:\Users\...\Snapshots/{2e933747-5235-41f1-8ba8-c6368a235243}.vhd'.

VD: Image file 'C:\Users\...\Snapshots/{2e933747-5235-41f1-8ba8-c6368a235243}.vhd' is corrupted and can't be opened (VERR_VD_IMAGE_CORRUPTED).

Result Code: E_FAIL (0x80004005)
Component: MediumWrap
Interface: IMedium {ad47ad09-787b-44ab-b343-a082a3f2dfb1}

我意识到这个问题以前被问过这里,但我尝试运行DISM.exe /Online /Cleanup-image /Restorehealthsfc /scannow但没有帮助。我还尝试卸载并重新安装 VirtualBox,但没有帮助。我还通过控制面板禁用了 Hyper-V,并在 powershell 中运行了 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

主机:Windows 10 Pro:版本 10.0.19042
虚拟机:Debian Linux(版本 10)

答案1

我急需帮助,因为我今晚要交作业。提前谢谢您!

您很可能必须创建一个新的虚拟机并在其上安装 Debian。虚拟机的一个快照已损坏。 {2e933747-5235-41f1-8ba8-c6368a235243}.vhd可能是 0 KB,如果是这种情况,则无法解决您的问题。您可以尝试从快照链中删除损坏的快照。

您的问题可以通过以下方式最好地解释:

首次为新虚拟机创建虚拟磁盘时,该虚拟磁盘将被视为客户机的基础磁盘 - 客户机的数据将从该磁盘映像中读取并写入其中。

差异磁盘记录整个磁盘映像中每个扇区的变化,而不是磁盘中任何文件的更改。VirtualBox 不知道磁盘映像上采用的是什么文件系统,因此无法访问磁盘映像上的任何单个文件;只有客户操作系统知道该信息。

第一个快照创建一个差异磁盘用于读/写访问,而基础磁盘变为只读 - 当客户机修改其数据时,数据被写入差异磁盘,而基础磁盘保持不变。

第二个快照创建另一个新的差异磁盘以供读/写访问,而第一个差异磁盘与基础磁盘一起变为只读。

后续快照会创建额外的差异磁盘,其中前一个差异磁盘会加入只读磁盘的层次结构(啄食顺序/链)。

请记住,对虚拟磁盘的访问是逐个扇区进行的,而不是逐个文件的。

当客户机请求读取扇区时,将首先读取最新的快照。如果未找到该扇区(返回 Sector-Not-Found),则读取链中的下一个快照(从最新到最旧),直到到达基本虚拟磁盘。然后读取基本虚拟磁盘上/中的扇区或返回 Sector-Not-Found。

在此处输入图片描述

出于某种原因,我以不同的方式标记了“快照 2”(“B”扇区)的更改。假设您离开 VirtualBox 并删除了“快照 2”。或者文件损坏、截断或以某种方式被修改。然后您尝试重新创建硬盘。由于所有“B”扇区都丢失了,这是不可能的。

人们经常混淆“快照”和“高清状态”。他们认为,当他们拍摄快照时,他们会对文件进行差异备份,如果他们手动删除快照,他们可以从中恢复。不是的。 在此处输入图片描述

资料来源:

相关内容