虚拟机中的VM已锁定会话(或已解锁)

问题描述 投票:64回答:9

由于此错误,我在虚拟机中的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
virtualbox
9个回答
110
投票

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

vboxmanage startvm <vm-uuid> --type emergencystop

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


0
投票

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

sudo pkill -9 VBox

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

vboxmanage startvm <vm-uuid> --type emergencystop

跑步揭示了真正的错误

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

哪个回来了

vboxmanage startvm <vm-uuid> --type gui

将网络配置更改为其他网络适配器解决了该问题。


30
投票

遇到同样的问题我发现有一个进程实际上锁定了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"

11
投票

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


7
投票

在Windows任务管理器中,我结束了与Virtual Box相关的任何任务(您可以看到它们以任务管理器中的V开头,如Vbox Headless.exe等)。一旦我这样做了,我就能得到这个错误消失(上面的'vboxmanage startvm ......等等......'这里的解决方案对我来说不起作用)。


5
投票

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

vboxmanage startvm <vm-uuid> --type emergencystop

它关闭我的VM的当前实例的唯一问题是,如果当前的vm正在运行,则可以使用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"

完整文档在这里qazxsw poi


4
投票

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


1
投票

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

https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm

Gergely的答案完美地解决了这个问题。事实证明,我在重新启动时设置了一个crontab来启动虚拟机,这启动了上面显示的三个VBox进程

>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*

1
投票

me@myhost:~$ crontab -l @reboot me /usr/bin/vboxmanage startvm "RHEL5 64-bit desktop" --type headless 杀死与vbox相关的所有内容


0
投票

对我有用的唯一选择是杀死所有匹配ps axl | grep -i vbox的进程。

© www.soinside.com 2019 - 2024. All rights reserved.