¿Por qué podría VirtualBox no encontrar una máquina llamada registrada Windows_7?
-
05-09-2019 - |
Pregunta
Estoy intentando cambiar TCP / UDP de una máquina virtual usando VBoxManage setextradata.
Cada vez que escribe el comando:
sudo VBoxManage setextradata Windows_7 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestEmule_TCP/Protocol" TCP
Me sale el siguiente error:
VirtualBox Command Line Management Interface Version 2.1.4 (C) 2005-2009 Sun Microsystems, Inc. All rights reserved. [!] FAILED calling a->virtualBox->FindMachine(Bstr(a->argv[0]), machine.asOutParam()) at line 3688! [!] Primary RC = VBOX_E_OBJECT_NOT_FOUND (0x80BB0001) - Object corresponding to the supplied arguments does not exist [!] Full error info present: true , basic error info present: true [!] Result Code = VBOX_E_OBJECT_NOT_FOUND (0x80BB0001) - Object corresponding to the supplied arguments does not exist [!] Text = Could not find a registered machine named 'Windows_7' [!] Component = VirtualBox, Interface: IVirtualBox, {339abca2-f47a-4302-87f5-7bc324e6bbde} [!] Callee = IVirtualBox, {339abca2-f47a-4302-87f5-7bc324e6bbde}
El-máquina virtual ha sido creado usando interfaz gráfica de usuario. Alguna idea?
$ cd /Users/marco/Library/VirtualBox/Machines/Windows_7 $ ls Logs Windows_7.xml Windows 7.xml.1.5-macosx.bak $ sudo vboxmanage registervm Windows_7.xml VirtualBox Command Line Management Interface Version 2.1.4 (C) 2005-2009 Sun Microsystems, Inc. All rights reserved. [!] FAILED calling a->virtualBox->OpenMachine(Bstr(a->argv[0]), machine.asOutParam()) at line 762! [!] Primary RC = NS_ERROR_FAILURE (0x80004005) - Operation failed [!] Full error info present: true , basic error info present: true [!] Result Code = NS_ERROR_FAILURE (0x80004005) - Operation failed [!] Text = Could not lock the settings file '/var/root/Library/VirtualBox/Windows_7.xml' (VERR_FILE_NOT_FOUND) [!] Component = Machine, Interface: IMachine, {ea6fb7ea-1993-4642-b113-f29eb39e0df0} [!] Callee = IVirtualBox, {339abca2-f47a-4302-87f5-7bc324e6bbde}
Solución
Se produce un error porque está utilizando sudo. VirtualBox está diseñado para ser ejecutado por cualquier usuario (en el grupo vboxusers
), y sudo ejecuta el comando como usuario root cuya configuración VirtualBox está vacío.
Puede comprobar que escribiendo:
sudo VBoxManage -nologo list vms # Should print only a newline
VBoxManage -nologo list vms # Detailled information about all your VMs
Otros consejos
No es una respuesta directa, pero sólo para ponerlo ahí para otras personas en busca de ella:
Mac OS X , se puede decir VirtualBox para cargar las máquinas virtuales del directorio personal de otro usuario, siempre y cuando los permisos de archivo lo permiten, o si está ejecutando VirtualBox como usuario root utilizando sudo
(por ejemplo, si es absolutamente necesario para acceder al servidor web de su anfitrión en el puerto 80).
La manera de hacer esto es establecer VBOX_USER_HOME
apropiadamente, por ejemplo.
VBOX_USER_HOME=/Users/the_other_user/Library/VirtualBox
Si desea ejecutar VBoxHeadless
bajo la raíz, utilice:
sudo VBOX_USER_HOME=/Users/your_user_id/Library/VirtualBox nohup \
VBoxHeadless -s "IE10 - Win7" </dev/null &>/dev/null &
Yo tenía un mensaje de error similar, cada vez que he utilizado para iniciar sudo
VBoxSDL
:
Error: machine with the given name not found!
Check if this VM has been corrupted and is now inaccessible.
Y al igual que ypocat respuesta 's, lo resolví para Ubuntu utilizando una pequeña script como el siguiente:
#!/bin/bash
export VBOX_USER_HOME=/home/username/.config/VirtualBox
VBoxSDL --startvm nameOfVM
Se puede utilizar cada vez que se necesita para comenzar su VM
como root
.
SOLUTION_1
Falta de tecnología virtual podría ser la razón. Para los sistemas de Intel tienen Intel VT-x (para AMD tienen AMD-V), así que asegúrese de que está activado. Puede activarlo en la pantalla de arranque vaya a configuración del BIOS en el que buscan Configuración del sistema y permitir Tecnología virtual
SOLUTION_2
Abrir terminal o cmd (Ejecutar como administrador) para Windows , y SC START VBOXDRV
plazo. Si se dice que el servicio ya se está ejecutando a continuación, tratar SC STOP VBOXDRV
y luego SC START VBOXDRV
.