2009-02-19 7 views
17

Estoy tratando de cambiar TCP/UDP de una máquina virtual utilizando setextradata de VBoxManage.¿Por qué VirtualBox no pudo encontrar una máquina registrada llamada Windows_7?

Cada vez que escriba 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}
+2

No veo cómo esta es una pregunta de programación. – GEOCHET

+0

Incluso puedo ver que esto no es una pregunta de programación, y no veo ninguna esperanza de hacerlo uno, tampoco :) –

Respuesta

41

No funciona porque está utilizando sudo. VirtualBox está diseñado para ser ejecutado por cualquier usuario (en el grupo vboxusers) y sudo ejecuta el comando como el usuario raíz cuya configuración de VirtualBox está vacía.

Puede comprobar que escribiendo:

sudo VBoxManage -nologo list vms # Should print only a newline 
VBoxManage -nologo list vms # Detailled information about all your VMs 
+0

realmente? Estoy ejecutando Windows, pero es útil saberlo. –

+1

@Daniel Rosenstark En Windows, esto pasaría también, si usabas runas (y probablemente sudo en cygwin). – phihag

+0

¡Gracias! Nunca hubiera pensado que el problema era sudo. – collimarco

1

No es una respuesta directa, pero sólo para ponerlo ahí para otras personas en busca de que:

En Mac OS X, que puede decirle a VirtualBox que cargue VM desde el directorio de inicio de otro usuario, siempre que los permisos del archivo lo permitan, o si está ejecutando VirtualBox como el usuario raíz usando sudo (por ejemplo, si tiene que acceder al servidor web del host en el puerto 80).

La forma de hacerlo es establecer VBOX_USER_HOME de manera adecuada, p. Ej.

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 & 
0

que tenía un mensaje de error similar, cada vez que he utilizado sudo para comenzar 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 la respuesta, lo resolví por Ubuntu usando un pequeño script como este:

#!/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.

0

SOLUTION_1:

Missing Tecnología virtual podría ser la razón. Para los sistemas Intel, tienen Intel VT-x (para AMD tienen AMD-V), así que asegúrese de que esté habilitado. Puede activarlo en la pantalla de arranque ir a configuración del BIOS en ese aspecto para ficha Configuración del Sistema y permitir Tecnología virtual

snapshot.

SOLUTION_2:

Abrir terminal o cmd (Ejecutar como administrador) para de Windows y ejecutar SC START VBOXDRV. Si dice que el servicio ya se está ejecutando, intente con SC STOP VBOXDRV y luego con SC START VBOXDRV.

Cuestiones relacionadas