Perché potrebbe VirtualBox non trovare una macchina registrata di nome windows_7?

StackOverflow https://stackoverflow.com/questions/565680

  •  05-09-2019
  •  | 
  •  

Domanda

Sto cercando di cambiare il protocollo TCP / UDP di una macchina virtuale utilizzando VBoxManage setextradata.

Ogni volta che digitare il comando:

sudo VBoxManage setextradata Windows_7 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestEmule_TCP/Protocol" TCP

ottengo il seguente errore:

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}

Il virtual-machine è stato creato utilizzando GUI. Qualche 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}
È stato utile?

Soluzione

Non riesce perché si sta utilizzando sudo. VirtualBox è progettato per essere eseguito da qualsiasi utente (nel gruppo vboxusers), e sudo esegue il comando come root cui configurazione VirtualBox vuoto.

È possibile verificare che digitando:

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

Altri suggerimenti

Non è una risposta diretta, ma solo per mettere fuori là per altre persone alla ricerca di essa:

Il Mac OS X , si può dire VirtualBox per caricare VM dalla home directory di un altro utente, a condizione che i permessi dei file lo permettono, o se si esegue VirtualBox come utente root utilizzando sudo (ad esempio, se è assolutamente necessario per accedere ai server web del host sulla porta 80).

Il modo per farlo è impostare VBOX_USER_HOME appropriato, per esempio.

VBOX_USER_HOME=/Users/the_other_user/Library/VirtualBox

Se si desidera eseguire VBoxHeadless sotto root, utilizzare:

sudo VBOX_USER_HOME=/Users/your_user_id/Library/VirtualBox nohup \
   VBoxHeadless -s "IE10 - Win7" </dev/null &>/dev/null &

Ho avuto un messaggio di errore simile, ogni volta che ho usato sudo iniziare VBoxSDL:

Error: machine with the given name not found!
Check if this VM has been corrupted and is now inaccessible.

E simile a ypocat risposta s ', ho risolto per Ubuntu con un piccolo script come questo:

#!/bin/bash
export VBOX_USER_HOME=/home/username/.config/VirtualBox
VBoxSDL --startvm nameOfVM

Si può usare ogni volta che è necessario per iniziare la VM come root.

SOLUTION_1 :

Manca la tecnologia virtuale potrebbe essere il motivo. Per i sistemi Intel hanno Intel VT-x (per AMD hanno AMD-V), in modo da assicurarsi che sia abilitata. È possibile attivare nella schermata di avvio andare a BIOS Setup in quello sguardo per Configurazione di sistema e attivare Virtual Tecnologia

istantanea .

SOLUTION_2 :

Apri terminale o cmd (Esegui come amministratore) per di Windows , e SC START VBOXDRV corsa. Se si dice che il servizio è già in esecuzione quindi provare SC STOP VBOXDRV e poi SC START VBOXDRV.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top