如何修复因使用 VBoxManage 调整大小过程中退出而导致的 VHD 损坏

如何修复因使用 VBoxManage 调整大小过程中退出而导致的 VHD 损坏

我尝试使用 VirtualBox 的vboxmanage工具调整包含 Ubuntu 实例的 VHD 的大小(从 20GB 扩展到 40GB):

./vboxmanage modifyhd path-to-my.vhd --resize 40000

但是,它似乎卡在了 0% 上(我之前从 10GB 扩展到 20GB,它立即完成了),所以我强制退出了该过程。现在,我的 VHD 已损坏,VirtualBox 无法启动实例(提示 VHD 已损坏),我也尝试了 Windows 的磁盘管理,但它也无法附加(我收到“参数不正确”错误)。

我也尝试将其调整回原始大小(20000):

./vboxmanage modifyhd path-to-my.vhd --resize 20000

但我得到了:

VBoxManage: error: Error: Attempt to resize the medium from 0.0 MB to 20000.0 MB. Use --resizebyte if this is intended!

我也尝试过--resizebyte选择:

./vboxmanage modifyhd path-to-my.vhd --resizebyte 20000

VBoxManage: error: Code NS_ERROR_ABORT (0x80004004) - Operation aborted (extended info not available)
VBoxManage: error: Context: "Resize(cbResize, pProgress.asOutParam())" at line 762 of file VBoxManageDisk.cpp
VBoxManage: error: Failed to resize medium!

有什么方法可以修复它(例如强制 VHD 将其大小报告为 20000GB,而不是 0 字节,就像以前一样)?如果有帮助的话,VHD 文件本身目前在磁盘上占用 28.66GB。

我知道我做的很愚蠢,但有什么办法可以恢复我的形象吗?

相关内容