我有一台运行在 Ubuntu 14.04LTS 上的 Windows 7 Professional 64 位虚拟机。我删除了此虚拟机的旧快照。删除过程花了 30 多分钟,就在删除过程结束时,笔记本电脑意外关机。重新启动笔记本电脑后,我尝试启动虚拟机,但出现错误:
Failed to open a session for the virtual machine Main.
Could not open the medium '/home/user/VirtualBox VMs/Main/Snapshots/{eeeeeeeee-ffff-4144-b555-bbbbbb}.vmdk'.
VD: error VERR_FILE_NOT_FOUND opening image file '/home/user/VirtualBox VMs/Main/Snapshots/{eeeeeeeee-ffff-4144-b555-bbbbbb}.vmdk' (VERR_FILE_NOT_FOUND).
Result Code:
NS_ERROR_FAILURE (0x80004005)
Component: Medium
Interface: IMedium {555bbb-a3a6-4b9b9-4949-acacacac}
关于如何恢复它,您有什么想法吗?
答案1
问题是,一旦快照文件丢失,Virtualbox 将不允许您从 GUI 中删除快照。要“强制删除”快照,您必须让 Virtualbox 相信文件没有丢失。因此,只需复制一个现有文件并将其重命名为丢失文件的名称。然后,您需要为每个新文件设置其正确的 UUID 及其父 UUID。例如:
VBoxManage.exe internalcommands sethduuid "path\{c87e9357-5d1a-4d00-84d8-7b43293ab92e}.vmdk" c87e9357-5d1a-4d00-84d8-7b43293ab92e
VBoxManage.exe internalcommands sethdparentuuid "path\{c87e9357-5d1a-4d00-84d8-7b43293ab92e}.vmdk" c9e9b5a8-fb3f-42f8-aeb7-4458bf92f625
您可以在虚拟媒体管理器中找到所有丢失的文件名及其 UUID。
答案2
好的,我找到解决方案了!
我使用 virtualbox manager 克隆了损坏的虚拟机,克隆启动时没有问题,之后,其中一个磁盘无法读取,运行 chkdisk /f 可以纠正它。