Pourquoi pourrait VirtualBox pas trouver une machine enregistrée nommée windows_7?
-
05-09-2019 - |
Question
Je suis en train de changer TCP / UDP d'une machine virtuelle en utilisant VBoxManage setextradata.
Chaque fois que je tape la commande:
sudo VBoxManage setextradata Windows_7 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestEmule_TCP/Protocol" TCP
Je reçois l'erreur suivante:
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}
La machine virtuelle a été créée en utilisant l'interface graphique. Toute idée?
$ 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}
La solution
Il échoue parce que vous utilisez sudo. VirtualBox est conçu pour être exécuté par un utilisateur quelconque (dans le groupe vboxusers
) et sudo exécute la commande en tant que super-utilisateur dont la configuration VirtualBox est vide.
Vous pouvez vérifier en tapant:
sudo VBoxManage -nologo list vms # Should print only a newline
VBoxManage -nologo list vms # Detailled information about all your VMs
Autres conseils
Pas une réponse directe, mais juste de le mettre là-bas pour d'autres personnes à la recherche pour elle:
Mac OS X , vous pouvez dire VirtualBox charger des machines virtuelles à partir du répertoire d'un autre utilisateur, à condition que les autorisations de fichiers permettent, ou si vous utilisez VirtualBox en tant qu'utilisateur root à l'aide sudo
(par exemple si vous devez absolument accéder au serveur Web de votre hôte sur le port 80).
La façon de le faire est de mettre VBOX_USER_HOME
appropriée, par exemple.
VBOX_USER_HOME=/Users/the_other_user/Library/VirtualBox
Si vous voulez exécuter VBoxHeadless
sous la racine, utilisez:
sudo VBOX_USER_HOME=/Users/your_user_id/Library/VirtualBox nohup \
VBoxHeadless -s "IE10 - Win7" </dev/null &>/dev/null &
J'ai eu un message d'erreur semblable, chaque fois que je sudo
pour commencer VBoxSDL
:
Error: machine with the given name not found!
Check if this VM has been corrupted and is now inaccessible.
similaire à ypocat réponse de , je l'ai résolu pour Ubuntu à l'aide d'un petit script comme ceci:
#!/bin/bash
export VBOX_USER_HOME=/home/username/.config/VirtualBox
VBoxSDL --startvm nameOfVM
Vous pouvez l'utiliser chaque fois que vous devez commencer votre VM
comme root
.
SOLUTION_1 :
manque la technologie virtuelle pourrait être la raison. Pour les systèmes Intel, ils ont Intel VT-x (pour AMD ils ont AMD-V), alors assurez-vous qu'il est activé. Vous pouvez l'activer dans l'écran de démarrage allez à BIOS dans ce regard pour la configuration du système et activer Virtual Technology
SOLUTION_2 :
Ouvrir le terminal ou cmd (Exécuter en tant qu'administrateur) pour de Windows , et exécuter SC START VBOXDRV
. Si elle dit que le service est en cours d'exécution puis essayez SC STOP VBOXDRV
puis SC START VBOXDRV
.