Por que VirtualBox não encontrar uma máquina registada chamado Windows_7?

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

  •  05-09-2019
  •  | 
  •  

Pergunta

Eu estou tentando mudar TCP / UDP de uma máquina virtual usando VBoxManage setextradata.

Sempre que eu digite o comando:

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

Eu recebo o seguinte erro:

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}

A máquina virtual foi criado usando GUI. Alguma idéia?

$ 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}
Foi útil?

Solução

Ele falha porque você está usando sudo. VirtualBox é concebida para ser administrada por qualquer utilizador (no grupo vboxusers), E Sudo executa o comando como o utilizador raiz cuja configuração VirtualBox está vazia.

Você pode verificar isso digitando:

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

Outras dicas

Não é uma resposta direta, mas apenas para colocá-lo lá fora, para outras pessoas procurando por ele:

Em Mac OS X , você pode dizer VirtualBox para carregar VMs do diretório home de outro usuário, desde que as permissões de arquivo permitir que ele, ou se você estiver executando o VirtualBox como usuário root usando sudo (por exemplo, se você absolutamente tem que acessar o servidor web do seu anfitrião na porta 80).

A maneira de fazer isso é definir VBOX_USER_HOME de forma adequada, por exemplo.

VBOX_USER_HOME=/Users/the_other_user/Library/VirtualBox

Se você deseja executar VBoxHeadless na raiz, use:

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

Eu tive uma mensagem de erro semelhante, sempre que eu usei sudo para começar VBoxSDL:

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

E semelhante à resposta ypocat 's, eu resolvi-lo para Ubuntu usando um pequeno script como este:

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

Você pode usá-lo sempre que você precisa para começar seu VM como root.

SOLUTION_1 :

Faltando Tecnologia Virtual pode ser a razão. Para sistemas Intel têm Intel VT-x (para AMD têm AMD-V), para se certificar que está habilitado. Você pode habilitá-lo em qualquer lugar da tela de inicialização para Configuração BIOS em que olhar para Configuração do Sistema e permitir Virtual Tecnologia

instantâneo .

SOLUTION_2 :

Open terminal ou cmd (Executar como administrador) para Windows , e SC START VBOXDRV prazo. Se ele diz que o serviço já está em execução, em seguida, tentar SC STOP VBOXDRV e depois SC START VBOXDRV.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top