Віртуальна машина у віртуальній скриньці вже заблокована для сеансу (або розблоковується)


85

Моя віртуальна машина у віртуальній скриньці не може запуститися через цю помилку, я не хочу її знищувати та перевстановлювати знову, у будь-якому випадку, щоб відновити?

Під час виконання сталася помилка VBoxManageCLI, яку використовував Vagrant для управління VirtualBox. Команда і 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

Відповіді:


138

Запуск цього в командному рядку розблокував віртуальну машину:

vboxmanage startvm <vm-uuid> --type emergencystop

Де <vm-uuid>це число в повідомленні про помилку: Command: ["modifyvm", "<vm-uuid>" [...]. Після цього я зміг керувати віртуальною машиною (запуск, зупинка тощо). Використання Virtualbox 4.1 на Ubuntu.


1
thanx man, це мені дійсно допомогло, у мене виникли проблеми із спільною папкою в Docker. Я не зміг видалити спільну папку (помилка: не вдалося знайти спільну папку з назвою 'ourspends'), а також, створюючи, він говорив, що вона вже існує (Не вдалося створити спільну папку 'ourspends', зіставлену з '/ home / relu / projects / ourspends '(VERR_ALREADY_EXISTS))
Relu Mesaros

Куди мені саме це запустити? Очевидно, що це відбувається не в самій віртуальній машині, оскільки команда "vboxmanage" відноситься до програмного забезпечення VBox на хостинговій машині, і сама віртуальна машина цього не розпізнає. З іншого боку, ця команда невідома і для мого хостингу (у моєму випадку це Windows 10). Отже ... що мені тоді потрібно для запуску цієї команди?
TheCuBeMan

Я виконав це в терміналі за допомогою Linux. Я думаю, що в Windows це можна виконати в командному рядку (cmd). Він був протестований за допомогою VirtualBox 4.1
Gonzalo Matheu

4
Використовуйте VBoxManage -nologo list vms, щоб дізнатись свій vm-uuid
Якоб

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

Переконайтеся, що у вас не застряг процес, намагаючись запустити vm:

ps -ef | grep -i "vbox"

Це спрацювало для мене. Я вбив усі процеси, повернуті за допомогою оператора ps -ef, а потім "vagrant знищення" знову працював.
thebiggestlebowski

13

Для мене мені довелося вбити процес VboxHeadless.exe в диспетчері завдань. Мені також довелося забезпечити відкриття запиту CMD в адміністративному режимі.


Працював також у мене за допомогою Linux. Порадьте витончено вимкнути всі інші віртуальні машини, які також працюють (можна використовувати, ps aux | grep boxякщо в терміналі).
Ден

11

Я знайшов цю відповідь від @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


10

sudo pkill -9 VBox вбиває все, що працює, пов'язане з vbox


7

У диспетчері завдань Windows я закінчував будь-які завдання, пов’язані з Virtual Box (ви можете бачити, що вони починаються з V у диспетчері завдань, наприклад Vbox Headless.exe тощо). Після того, як я це зробив, я зміг змусити цю помилку усунути (наведені вище рішення "vboxmanage startvm ... і т. Д." Тут мені не працювали).


4

Якщо у вас відкрито вікно налаштувань для цього вікна в графічному інтерфейсі VirtualBox, ви можете зіткнутися з цією помилкою. Просто закрийте вікно налаштувань і повторіть спробу.


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*

Відповідь Гергелі це вирішує чудово. З’ясувалося, що при перезавантаженні я встановив crontab для завантаження віртуальної машини, яка ініціювала процес трьох VBox, показаний вище

me@myhost:~$ crontab -l

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

0

Єдиний варіант, який працював для мене, - це вбити всі процеси, що відповідають ps axl | grep -i vbox.


0

У моєму випадку очевидною причиною був USB-адаптер Ethernet, який було видалено після призупинення роботи машини. У моєму випадку

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)

Зміна мережевої конфігурації на інший мережевий адаптер вирішила проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.