所以我有一个外部 SATA 适配器和一个 VirtualBox Windows 10 虚拟机。我定期换入和换出我希望虚拟机能够访问的硬盘。现在我可以毫无问题地创建 vmdk VBoxManage internalcommands createrawvmdk -filename VMShare/external.vmdk -rawdisk /dev/$part
。
现在我想我会很聪明,编写一个脚本来替换external.vmdk
我换入和换出新硬盘时的每个实例。 VirtualBox 不喜欢这样,并报告{#}
介质的UUID 与存储在介质注册表 ( ) 中的~/VMShare/external.vmdk
值不匹配。{#}
~/.config/VirtualBox/VirtualBox.xml
现在我尝试修改 xml 文件来匹配 UUID,但没有成功。我也尝试VBoxManage storageattach Windows --storagectl "SATA" --port 1 --device 0 --type hdd --medium none
清除该点,然后重新加载 vmdk,但出现相同的错误。我怀疑我需要以某种方式刷新某些内容,但我真的不确定下一步需要点击哪个设置。有什么想法吗?
答案1
在 Arch wiki 中找到了答案!
具体命令是VBoxManage closemedium disk VMShare/external.vmdk
完整代码:
# remove old vmdk
echo "Removing old"
eval "VBoxManage storageattach Windows --storagectl "SATA" --port 1 --device 0 --type hdd --medium none"
eval "VBoxManage closemedium disk VMShare/external.vmdk"
eval "rm VMShare/external.vmdk"
# create new vmdk and add it
echo "Creating new"
eval "VBoxManage internalcommands createrawvmdk -filename VMShare/external.vmdk -rawdisk /dev/$part"
eval "VBoxManage storageattach Windows --storagectl "SATA" --port 1 --device 0 --type hdd --medium VMShare/external.vmdk"