Может ли VirtualBox VBoxManage добавлять/удалять общие папки "на лету"?

Когда я пытаюсь добавить/удалить общую папку в свой 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, но я хотел бы script выполнить эти операции.

Запуск VirtualBox 5.0.12 на Mac OS Yosemite. Ящик был снабжен docker-machine.

Ответы

Ответ 1

Как отмечено "socratis" в Virtual Box Forum, способ сделать это - использовать флаг --transient:

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

При использовании --transient сопоставление не будет сохраняться при перезапуске VM.

В документации по VirtualBox упоминается также:

Существует два типа акций:

доли VM, доступные только для виртуальной машины, для которой они были определены; временные ресурсы VM, которые могут быть добавлены и удалены во время выполнения и не сохраняются после остановки виртуальной машины; для них добавьте опцию -transient в приведенную выше командную строку.