Maszyna wirtualna w virtualbox jest już zablokowana na sesję (lub jest odblokowywana)


85

Moja maszyna wirtualna w virtualbox nie może się uruchomić z powodu tego błędu, nie chcę jej niszczyć i instalować ponownie, tak czy inaczej, aby ją odzyskać?

Wystąpił błąd podczas wykonywania VBoxManage, CLI używany przez Vagrant do kontrolowania VirtualBox. Polecenie i stderr pokazano poniżej.

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

Odpowiedzi:


138

Uruchomienie tego w wierszu poleceń odblokowało maszynę wirtualną:

vboxmanage startvm <vm-uuid> --type emergencystop

Gdzie <vm-uuid>jest numer w komunikacie o błędzie: Command: ["modifyvm", "<vm-uuid>" [...]. Po tym byłem w stanie kontrolować maszynę wirtualną (start, zatrzymanie itp.). Korzystanie z Virtualbox 4.1 w systemie Ubuntu.


1
dzięki człowiekowi, to naprawdę mi pomogło, miałem pewne problemy dotyczące folderu współdzielonego w dockerze. Nie mogłem usunąć udostępnionego folderu (błąd: nie można znaleźć udostępnionego folderu o nazwie „nasze wydatki”), a także podczas tworzenia mówił, że już istnieje (nie można utworzyć udostępnionego folderu „nasze wydatki” zmapowane do ”/ home / relu / projects / ourspends '(VERR_ALREADY_EXISTS))
— Relu Mesaros

Gdzie dokładnie to uruchomię? Oczywiście nie pochodzi to z samej maszyny wirtualnej, ponieważ polecenie „vboxmanage” odnosi się do oprogramowania VBox na maszynie hostingowej, a sama maszyna wirtualna tego nie rozpoznaje. Z drugiej strony to polecenie jest nieznane również dla mojego komputera hostingowego (w moim przypadku jest to Windows 10). Więc ... czego potrzebuję, aby uruchomić to polecenie?
— TheCuBeMan

Wykonałem to na terminalu przy użyciu Linuksa. Myślę, że w systemie Windows można to wykonać w wierszu polecenia (cmd). Został przetestowany z VirtualBox 4.1
— Gonzalo Matheu

4
Skorzystaj lista VBoxManage -nologo VMS , aby dowiedzieć się swoją VM-UUID
— Jakob

3
W przypadku systemu Windows potrzebujesz pełnej ścieżki, więc uruchom"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" <vm-uuid> --type emergencystop
— Felix Eve

35

Mając ten sam problem, stwierdziłem, że był uruchomiony proces faktycznie blokujący maszynę wirtualną:

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

Upewnij się, że proces nie utknął podczas próby uruchomienia maszyny wirtualnej:

ps -ef | grep -i "vbox"

To zadziałało dla mnie. Zabiłem wszystkie procesy zwrócone przez instrukcję ps -ef, a następnie "vagrant zniszcz" zadziałało ponownie.
— thebiggestlebowski

13

Dla mnie musiałem zabić proces VboxHeadless.exe w menedżerze zadań. Musiałem również upewnić się, że monit CMD został otwarty w trybie administracyjnym.


Pracowałem również dla mnie używając Linuksa. Radzę, aby bezpiecznie zamknąć wszystkie inne uruchomione maszyny wirtualne (można użyć, ps aux | grep boxjeśli w terminalu).
— Dan,

11

Ta odpowiedź od @Gonzalez była dla mnie bardzo interesująca.

vboxmanage startvm <vm-uuid> --type emergencystop

Jedynym problemem jest to, że zamyka bieżącą instancję mojej maszyny wirtualnej, więc zamiast używać modifyvmmożesz użyć, controlvmjeśli bieżąca maszyna wirtualna jest uruchomiona.

Na przykład:

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

Zostać:

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

Pełna dokumentacja tutaj https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm


10

sudo pkill -9 VBox zabija wszystko, co działa związane z vbox


7

W Menedżerze zadań Windows zakończyłem wszystkie zadania związane z Virtual Box (widać, że zaczynają się od litery V w Menedżerze zadań, np. Vbox Headless.exe itp.). Kiedy to zrobiłem, udało mi się usunąć ten błąd (powyższe rozwiązania „vboxmanage startvm ... etc ...” nie działały dla mnie).


4

Jeśli masz otwarte okno ustawień dla tego pola w GUI VirtualBox, możesz napotkać ten błąd. Po prostu zamknij okno ustawień i spróbuj ponownie.


1

Dzisiaj napotkałem ten sam komunikat o błędzie:

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

Odpowiedź Gergely doskonale to rozwiązuje. Okazało się, że mam ustawioną tabelę crontab podczas restartu, aby uruchomić maszynę wirtualną, która zainicjowała trzy procesy VBox pokazane powyżej

me@myhost:~$ crontab -l

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

0

Jedyną opcją, która działała dla mnie, było zabicie wszystkich procesów pasujących do ps axl | grep -i vbox.


0

W moim przypadku oczywistą przyczyną był adapter Ethernet USB, który został usunięty po zawieszeniu maszyny. W moim przypadku,

vboxmanage startvm <vm-uuid> --type emergencystop

nie pomogło. Zamiast tego otrzymałem mylącą wiadomość

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

Prawdziwy błąd został ujawniony przez uruchomienie

vboxmanage startvm <vm-uuid> --type gui

który wrócił

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

Zmiana konfiguracji sieci na inną kartę sieciową rozwiązała problem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.