La máquina virtual en virtualbox ya está bloqueada para una sesión (o está desbloqueada)


82

Mi VM en virtualbox no puede iniciarse debido a este error, no quiero destruirla y reinstalarla de nuevo, de todos modos ¿recuperarla?

Hubo un error al ejecutar VBoxManageuna CLI utilizada por Vagrant para controlar VirtualBox. El comando y stderr se muestran a continuación.

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

Respuestas:


135

Ejecutar esto en la línea de comando desbloqueó la VM:

vboxmanage startvm <vm-uuid> --type emergencystop

¿Dónde <vm-uuid>está el número en el mensaje de error Command: ["modifyvm", "<vm-uuid>" [...]? Después de eso, pude controlar la máquina virtual (inicio, parada, etc.). Usando Virtualbox 4.1 en Ubuntu.


1
gracias hombre, esto realmente me ayudó, tuve algunos problemas con respecto a una carpeta compartida en la ventana acoplable. No pude eliminar la carpeta compartida (error: no pude encontrar una carpeta compartida llamada 'ourpends'), y también, al crear, decía que ya existe (no se pudo crear una carpeta compartida 'ourpends' asignada a '/ inicio / relu / proyectos / nuestros gastos '(VERR_ALREADY_EXISTS))
Relu Mesaros

¿Dónde ejecuto esto exactamente? Obviamente, esto no proviene de la propia máquina virtual, ya que el comando "vboxmanage" se relaciona con el software VBox en la máquina de alojamiento y la propia máquina virtual no reconoce esto. Por otro lado, este comando también es desconocido para mi máquina de alojamiento (en mi caso, es Windows 10). Entonces ... ¿qué necesito para ejecutar este comando entonces?
TheCuBeMan

Lo ejecuté en una terminal usando Linux. Supongo que en Windows se puede ejecutar en un símbolo del sistema (cmd). Fue probado con VirtualBox 4.1
Gonzalo Matheu

4
Use VBoxManage -nologo list vms para averiguar su vm-uuid
Jakob

3
Para Windows, necesita la ruta completa, así que ejecute"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" <vm-uuid> --type emergencystop
Felix Eve

35

Al tener el mismo problema, descubrí que había un proceso en ejecución que bloqueaba la máquina virtual:

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

Asegúrese de no tener un proceso atascado al intentar iniciar la máquina virtual:

ps -ef | grep -i "vbox"

Esto funcionó para mí. Maté todos los procesos devueltos por la instrucción ps -ef y luego "vagrant destroy" funcionó de nuevo.
thebiggestlebowski

13

Para mí, tuve que matar el proceso VboxHeadless.exe en el administrador de tareas. También tuve que asegurarme de que el indicador de CMD se abriera en modo administrativo.


También funcionó para mí usando Linux. Aconseje cerrar con gracia todas las demás máquinas virtuales que también se estén ejecutando (se pueden usar ps aux | grep boxsi están en la terminal).
Dan


10

Encontré esta respuesta de @Gonzalez muy interesante.

vboxmanage startvm <vm-uuid> --type emergencystop

El único problema con eso cerró la instancia actual de mi VM, por lo que en lugar de usar modifyvm, puede usar controlvmsi la máquina virtual actual se está ejecutando.

Por ejemplo:

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

Volverse:

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

Documentación completa aquí https://www.virtualbox.org/manual/ch08.html#vboxmanage-controlvm


7

En el Administrador de tareas de Windows, finalicé todas las tareas relacionadas con Virtual Box (puede ver que comienzan con una V en el Administrador de tareas como Vbox Headless.exe, etc.). Una vez que hice eso, pude hacer que este error desapareciera (las soluciones anteriores 'vboxmanage startvm ... etc ...' aquí no funcionaron para mí).


4

Si tiene una ventana de configuración abierta para ese cuadro en la GUI de VirtualBox, puede encontrarse con este error. Simplemente cierre la ventana de configuración y vuelva a intentarlo.


1

Hoy me encuentro con el mismo mensaje de error:

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

La respuesta de Gergely lo resuelve perfectamente. Resultó que tengo un crontab configurado al reiniciar para iniciar la máquina virtual, que inició el proceso de tres VBox que se muestra arriba

me@myhost:~$ crontab -l

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

0

La única opción que funcionó para mí fue matar todos los procesos que coinciden con ps axl | grep -i vbox.


0

En mi caso, la causa aparente fue un adaptador Ethernet USB que se había quitado después de suspender la máquina. En mi caso,

vboxmanage startvm <vm-uuid> --type emergencystop

no ayudó. En cambio, recibí el confuso mensaje de que

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

El verdadero error se reveló al ejecutar

vboxmanage startvm <vm-uuid> --type gui

que regresó

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

Cambiar la configuración de red a un adaptador de red diferente resolvió el problema.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.