VirtualBox VBoxManage add/remove 动态共享文件夹可以吗?

Can VirtualBox VBoxManage add/remove shared folders on the fly?

当我尝试 add/remove 共享文件夹到我的 VirtualBox 时,出现此错误:

~$ VBoxManage sharedfolder add dev --name srv --hostpath  "/my/local/path"

VBoxManage: error: The machine 'dev' is already locked for a session (or being unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Write)" at line 1012 of file VBoxManageMisc.cpp

当我停止机器,操作共享然后再次启动机器时,它起作用了。它也适用于 VirtualBox UI 但我想编写这些操作的脚本。

运行 Mac OS Yosemite 上的 VirtualBox 5.0.12。该框已配置 docker-machine

正如 'socratis' 在 Virtual Box Forum 中指出的那样,执行此操作的方法是使用 --transient 标志:

     ~$ VBoxManage sharedfolder add dev --name srv --hostpath  "/my/local/path" --transient

使用 --transient 时,映射不会在 VM 重新启动时持续存在。

VirtualBox documentation 也提到了这一点:

There are two types of shares:

VM shares which are only available to the VM for which they have been defined; transient VM shares, which can be added and removed at runtime and do not persist after a VM has stopped; for these, add the --transient option to the above command line.

是的,您可以使用 VboxManage 命令添加共享文件夹,但此更改不是永久性的

注意:要启用与 vBOX 的文件夹共享,您必须在来宾计算机上安装 Vbox-guest 驱动程序,然后您才能在来宾虚拟机中共享主机文件夹