virtualbox中的VM已针对某个会话锁定(或被解锁)


82

由于此错误,我的虚拟机中的VM无法启动,我不想销毁它并再次重新安装它,以恢复它吗?

执行时发生错误VBoxManage,Vagrant用于控制VirtualBox的CLI。命令和stderr如下所示。

Command: ["modifyvm", "319fcce3-e8ff-4b6f-a641-3aee1df6543f", "--natpf1", "delete", "ssh"]

Stderr: VBoxManage: error: The machine 'centos64_c6402_1454036461345_59755' 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 493 of file VBoxManageModifyVM.cpp

Answers:


135

在命令行上运行此命令可解锁VM:

vboxmanage startvm <vm-uuid> --type emergencystop

<vm-uuid>错误消息中的数字在哪里:Command: ["modifyvm", "<vm-uuid>" [...]。之后,我能够控制虚拟机(启动,停止等)。在Ubuntu上使用Virtualbox 4.1。


1
thanx的人,这确实帮助了我,关于Docker中的共享文件夹,我遇到了一些问题。我无法删除共享文件夹(错误:找不到名为“ ourspends”的共享文件夹),并且在创建时也说它已经存在(无法创建映射到“ /”的共享文件夹“ ourspends”首页/ relu / projects / ourspends'(VERR_ALREADY_EXISTS))
Relu Mesaros

我到底该在哪里运行?显然,这不是来自VM本身,因为“ vboxmanage”命令与托管计算机上的VBox软件有关,而VM本身无法识别。另一方面,此命令对我的托管计算机(在我的情况下是Windows 10)也不知道。那么...那我该运行什么命令?
TheCuBeMan

我在使用Linux的终端中执行了它。我猜想在Windows中可以在命令提示符(cmd)中执行它。它是用VirtualBox的4.1测试
贡萨洛Matheu

4
使用VBoxManage -nologo list vms找出您的vm-uuid
Jakob,

3
对于Windows,您需要完整的路径,因此请运行"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" <vm-uuid> --type emergencystop
Felix Eve

35

遇到同样的问题,我发现有一个进程正在运行,实际上锁定了vm:

501 79419 79323   0  2:18PM ??         0:39.75 /Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment default --startvm 1d438a2e-68d7-4ba2-bef9-4ea162913c1b --vrde config

确保您没有启动虚拟机的过程:

ps -ef | grep -i "vbox"

这对我有用。我杀死了ps -ef语句返回的所有进程,然后“无用销毁”再次起作用。
thebiggestlebowski

13

对我来说,我必须在任务管理器中杀死VboxHeadless.exe进程。我还必须确保在管理模式下打开了CMD提示符。


使用Linux也为我工作。建议适度关闭所有同样正在运行的其他VM(可以ps aux | grep box在终端中使用)。


10

我发现来自@Gonzalez的答案非常有趣。

vboxmanage startvm <vm-uuid> --type emergencystop

唯一的问题是它关闭了我的虚拟机的当前实例,因此如果当前的虚拟机正在运行,则modifyvm可以使用controlvm它代替使用。

例如:

 VBoxManage modifyvm <vm_name> --natpf1 "guestssh,tcp,,22,,2222"
 VBoxManage modifyvm <vm_name> --natpf1 delete "guestssh"

成为:

VBoxManage controlvm <vm_name> natpf1 "guestssh,tcp,,22,,2222"
VBoxManage controlvm <vm_name> natpf1 delete "guestssh"

完整文档在这里 https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm


7

在Windows Task Manager中,我结束了与Virtual Box相关的所有任务(您可以在Task Manager中看到它们以V开头,例如Vbox Headless.exe等)。一旦这样做,我就可以解决此错误(上面的“ vboxmanage startvm ... etc ...”解决方案对我不起作用)。


4

如果您在VirtualBox GUI中为该框打开了一个设置窗口,则可能会遇到此错误。只需关闭设置窗口,然后重试。


1

我今天也遇到了相同的错误消息:

>me@myhost:~$ ps -ef | grep -i "vbox"

me  3064     1  0 08:51 ?        00:00:00 /usr/lib/virtualbox/VBoxXPCOMIPCD

me  3089     1  0 08:51 ?        00:00:00 /usr/lib/virtualbox/VBoxSVC --auto-shutdown

me  3126  3089 27 08:51 ?        00:00:39 /usr/lib/virtualbox/VBoxHeadless --comment RHEL5 64-bit desktop --startvm e5c598d8-1234-4003-a7c1-b9d8af15dfe7 --vrde config

me  3861  3415  0 08:53 pts/1    00:00:00 grep --color=auto -i vbox*

Gergely的答案可以完美解决。原来,我在重启时设置了crontab来启动虚拟机,这启动了上面显示的三个VBox进程

me@myhost:~$ crontab -l

@reboot me /usr/bin/vboxmanage startvm "RHEL5 64-bit desktop" --type headless


0

在我的情况下,明显的原因是挂起计算机后已卸下的USB以太网适配器。就我而言

vboxmanage startvm <vm-uuid> --type emergencystop

没有帮助。相反,我收到了令人困惑的消息,

VBoxManage: error: The machine 'xyzzy' is not locked by a session

真正的错误是通过运行揭示的

vboxmanage startvm <vm-uuid> --type gui

哪个回来了

VBoxManage: error: Nonexistent host networking interface, name 'en9: USBPlug' (VERR_INTERNAL_ERROR)

将网络配置更改为其他网络适配器可以解决此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.