2009-02-19 15 views
17

Próbuję zmienić TCP/UDP maszyny wirtualnej za pomocą VBoxManage setextradata.Dlaczego VirtualBox może nie znaleźć zarejestrowanej maszyny o nazwie Windows_7?

Ilekroć wpisz polecenie:

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

pojawia się następujący błąd:

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}

Wirtualna-maszyna został stworzony przy użyciu GUI. Dowolny pomysł?

$ 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

Nie widzę, jak to jest pytanie programistyczne. – GEOCHET

+0

Nawet ja widzę, że to nie jest pytanie programistyczne, i nie widzę żadnej nadziei na to, że to zrobię :) –

Odpowiedz

41

Nie działa, ponieważ używasz sudo. VirtualBox jest przeznaczony do uruchamiania przez dowolnego użytkownika (w grupie vboxusers), a sudo uruchamia to polecenie jako użytkownik root, którego konfiguracja VirtualBox jest pusta.

można sprawdzić, wpisując:

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

naprawdę? Używam systemu Windows, ale jest to przydatne. –

+1

@Daniel Rosenstark W Windowsie to też by się zdarzyło - gdybyś użył runas (i prawdopodobnie sudo na cygwin). – phihag

+0

Dziękujemy! Nigdy bym nie pomyślał, że problemem jest sudo. – collimarco

1

Nie bezpośredniej odpowiedzi, ale po prostu umieścić go tam dla innych osób poszukujących go:

Na Mac OS X, można powiedz VirtualBox, aby ładował maszyny wirtualne z katalogu domowego innego użytkownika, o ile zezwalają na to uprawnienia plików lub jeśli używasz VirtualBox jako użytkownik root, używając sudo (np. jeśli koniecznie musisz uzyskać dostęp do serwera sieciowego hosta na porcie 80).

Aby to zrobić, należy odpowiednio ustawić VBOX_USER_HOME, np.

VBOX_USER_HOME=/Users/the_other_user/Library/VirtualBox 

Jeśli chcesz uruchomić VBoxHeadless pod korzeń, użyj:

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

Miałem podobny komunikat o błędzie, gdy użyłem sudo zacząć VBoxSDL:

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

i podobne do Odpowiedź ypocat, rozwiązałem dla Ubuntu używając małego skryptu jak poniżej:

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

Można go używać, gdy trzeba, aby rozpocząć VM jak root.

0

SOLUTION_1:

Brakujące Virtual Technology może być powodem. W przypadku systemów Intel mają one Intel VT-x (dla AMD mają AMD-V), więc upewnij się, że jest włączony. Można ją włączyć na ekranie startowym iść do BIOS Setup w tym spojrzeniu na karcie Konfiguracja systemu i umożliwić Virtual Technology

snapshot.

SOLUTION_2:

Otwórz Terminal lub cmd (Uruchom jako administrator) dla Okna i uruchom SC START VBOXDRV. Jeśli jest napisane, że usługa jest już uruchomiona, spróbuj SC STOP VBOXDRV, a następnie SC START VBOXDRV.