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