Почему VirtualBox не смог найти зарегистрированный компьютер с именем Windows_7?
-
05-09-2019 - |
Вопрос
Я пытаюсь изменить TCP / UDP виртуальной машины, используя VBoxManage setextradata.
Всякий раз, когда я набираю команду:
sudo VBoxManage setextradata Windows_7 "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestEmule_TCP/Protocol" TCP
Я получаю следующую ошибку:
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}
Виртуальная машина была создана с использованием графического интерфейса пользователя.Есть какие-нибудь идеи?
$ 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}
Решение
Это не удается, потому что вы используете sudo.VirtualBox предназначен для запуска любым пользователем (в vboxusers
group), и sudo запускает команду от имени пользователя root, конфигурация VirtualBox которого пуста.
Вы можете проверить это, набрав:
sudo VBoxManage -nologo list vms # Should print only a newline
VBoxManage -nologo list vms # Detailled information about all your VMs
Другие советы
Не прямой ответ, а просто для того, чтобы выложить его там для других людей, ищущих его:
На Mac OS X, вы можете указать VirtualBox загружать виртуальные машины из домашнего каталога другого пользователя, при условии, что это позволяют права доступа к файлам, или если вы используете VirtualBox от имени пользователя root с помощью sudo
(например,если вам абсолютно необходим доступ к веб-серверу вашего хостинга через порт 80).
Способ сделать это - установить VBOX_USER_HOME
соответствующим образом, например
VBOX_USER_HOME=/Users/the_other_user/Library/VirtualBox
Если ты хочешь убежать VBoxHeadless
под корнем используйте:
sudo VBOX_USER_HOME=/Users/your_user_id/Library/VirtualBox nohup \
VBoxHeadless -s "IE10 - Win7" </dev/null &>/dev/null &
У меня было похожее сообщение об ошибке, всякий раз, когда я использовал sudo
для начала VBoxSDL
:
Error: machine with the given name not found!
Check if this VM has been corrupted and is now inaccessible.
И похож на ипокатответ, я решил это для Убунту используя небольшой скрипт, подобный этому:
#!/bin/bash
export VBOX_USER_HOME=/home/username/.config/VirtualBox
VBoxSDL --startvm nameOfVM
Вы можете использовать его всякий раз, когда вам нужно начать свой VM
как root
.
РЕШЕНИЕ_1:
Причиной может быть отсутствие виртуальной технологии.Для систем Intel у них есть Intel VT-x (для AMD у них есть AMD-V), поэтому убедитесь, что он включен.Вы можете включить его на экране загрузки, перейдя по Настройка BIOS в этом взгляде на Конфигурация системы вкладка и включить Виртуальная технология
РЕШЕНИЕ_2:
Откройте терминал или cmd (запуск от имени администратора) для Windows, и бежать SC START VBOXDRV
.Если он говорит, что служба уже запущена, попробуйте SC STOP VBOXDRV
и тогда SC START VBOXDRV
.