2016年12月20日 星期二

輕鬆解決 VirtualBox is already locked by a session (or being locked or unlocked)

話說前幾天實驗室跳電,雖然伺服器會自己重開機,但虛擬機並不會跟著重開(懶得設定的下場),遠端開啟虛擬機的指令如之前的文章所述

$VBoxManage startvm centos03

在正常情況下,執行成功應該會出現這個訊息
Waiting for VM "centos03" to power on...
VM "centos03" has been successfully started.
但是這次的執行出現的卻是
VBoxManage: error: The machine 'centos03' is already locked by a session (or being locked or unlocked)
VBoxManage: error: Details: code VBOX_E_INVALID_OBJECT_STATE (0x80bb0007), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LaunchVMProcess(a->session, sessionType.raw(), env.raw(), progress.asOutParam())" at line 589 of file VBoxManageMisc.cpp
那要怎麼解決呢?先試試看最白癡的方法直接重開好了,反正也沒再跑甚麼東西,因此我們執行關閉虛擬機指令

$ VBoxManage controlvm centos03 poweroff

正常的情況下應該會出現
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
但在這個例子中出現的卻是
VBoxManage: error: Invalid machine state: Starting (must be Running, Paused or Stuck)
VBoxManage: error: Details: code VBOX_E_INVALID_VM_STATE (0x80bb0002), component ConsoleWrap, interface IConsole, callee nsISupports
VBoxManage: error: Context: "PowerDown(progress.asOutParam())" at line 231 of file VBoxManageControlVM.cpp
現在是甚麼情況?開也開不了關也關不了,怎麼辦呢?這時候只要執行只下命令就好

$ VBoxManage startvm centos03 --type emergencystop

這條指令不會聽出任何提示訊息,執行完就直接關閉虛擬機器,因此我們隨後可以直接再次開啟這台虛擬機器就解決囉

沒有留言:

張貼留言