我使用脚本生成 VDI 硬盘映像。
由于我处于调整过程中,因此我经常重新生成它。
每次重新生成 VDI 时,VirtualBox 都无法再识别该磁盘,我必须将其删除,重新输入新文件并将其与我的 VM 关联:
$ VBoxManage startvm iso-debian
Waiting for VM "iso-debian" to power on...
VBoxManage: error: Could not open the medium '/path/to/myimage.vdi'.
VBoxManage: error: VD: error VERR_FILE_NOT_FOUND opening image file '/path/to/myimage.vdi' (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component MediumWrap, interface IMedium
该文件存在,但我推测它的 UUID 或某些元数据已发生改变,因此 VirtualBox 找不到它。
有没有更方便的方法(通过 VBoxManage)来告诉 VirtualBox 刷新其 VDI 数据库?
就像是:
$ VBoxManage update-vdi-metadata /path/to/myimage.vdi
或者我可以将其他内容放入 bash 脚本中以避免必须手动完成所有这些步骤。
答案1
因此感谢@Bodo 的评论,这里是解决方案:
从虚拟机中分离介质:
$ VBoxManage storageattach iso-debian --storagectl SATA --port 0 --type hdd --medium none
从 VirtualBox 中移除介质:
$ VBoxManage closemedium /path/to/image.vdi
再次附上图片:
$ VBoxManage storageattach iso-debian --storagectl SATA --port 0 --type hdd --medium /path/to/image.vdi