Como mover arquivos do VirtualBox?

165

Por padrão, o VirtualBox armazena todos os dados em um diretório abaixo do diretório inicial. Eu sei como alterá-lo, mas como posso alterar o local das imagens existentes (sem editar o VirtualBox.xml manualmente)?

Estou trabalhando no Windows e não quero tentar usar nenhum link NTFS .

maaartinus
fonte
4
Awww, eu ia sugerir links simbólicos (eles resolvem o Everything ™), mas você bloqueou essa ideia ... :(
DMA57361 11/11/11
2
Não confio em links no Windows. Embora o NTFS seja capaz disso, o Windows XP não sabe nada sobre o assunto e já existem problemas suficientes. Eu posso ser desnecessariamente covarde ...
maaartinus
Ah, sim, eu não os tocaria no XP. Mas o suporte ao 7 é bastante sólido - você ainda precisa construí-los a partir da linha cmd, mas isso não é uma tarefa muito difícil. Eu não tenho certeza sobre o Vista ...
DMA57361
Pior ainda, a versão XP do NTFS suporta hardlinks, mas eles não podem abranger volumes . Obviamente, eu queria mover os dados para uma partição diferente.
Maaartinus 11/03
Os hardlinks nunca podem abranger volumes, apenas os symlinks podem (e podem ser usados ​​para esse tipo de coisa, minhas pastas de usuário são todas vinculadas ao meu segundo disco rígido, por exemplo). Mas, pessoalmente, eu ainda evitaria os hardlinks no XP (mesmo que fossem uma opção).
DMA57361 11/03/11

Respostas:

138

Se você pretende mover toda a sua VM para um local totalmente novo, basta seguir estas 2 respostas:

Copiando a postagem aqui:

  1. Desligue o VirtualBox, faça backup do seu arquivo .VirtualBox \ VirtualBox.xml.
  2. Encontre a pasta "Virtualbox VMs" existente e copie (não mova) a pasta inteira com o conteúdo da sua nova unidade E:
  3. Execute o VirtualBox e, em seguida, para cada VM:

    3.1 Clique com o botão direito do mouse no nome da VM e selecione "Remover" no menu pop-up. Responda não ao "excluir fisicamente os arquivos?" Pergunta, questão.

    3.1b após remover uma VM da interface do usuário, você deve fechar o VirtualBox e deixá-lo fechado por tempo suficiente para que a tarefa VBoxSVC em segundo plano atinja o tempo limite e termine também. Em seguida, você pode iniciar o aplicativo VirtualBox novamente e usar Máquina | Adicionar para adicionar novamente as VMs removidas na etapa anterior.

    3.2 Selecione o item de menu Máquina | Adicionar .., navegue até o novo local das VMs na unidade E: e selecione o arquivo .vbox.

    3.3 Repita para todas as VMs restantes.

  4. Em Arquivo | Preferências, defina o caminho padrão da máquina como "E: \ VirtualBox VMs"
  5. Teste cada uma das VMs. Somente depois de ter certeza de que todos funcionam, exclua a pasta antiga da VM, ou seja, exclua "C: \ VirtualBox VMs".
Lucas Pottersky
fonte
Quando eu fizer isso para a máquina-clone vinculado, eles não conseguem iniciar
Nam G VU
1
Isso funcionou para mim, embora eu também precisasse atualizar os caminhos para cada imagem do HardDisk e da captura instantânea editando o .VirtualBox\VirtualBox.xmlarquivo e localizando / substituindo. Além disso, apenas movi as pastas Machinese HardDisk, nem todos os arquivos contidos .VirtualBox, pois essa é toda a configuração e registro global e tal.
Dave Andersen
4
Para usuários do Mac OS X, VirtualBox.xmlestá localizado em ~/Library/VirtualBox/VirtualBox.xml. As VMs estão localizadas em ~/VirtualBox VMs.
você precisa saber é o seguinte
2
O Virtual Box 4.3.0+ resolveu a "Última Coisa Importante", nem precisei fechá-la - instruções .
PCaetano
Talvez você possa adicionar a linha de comando "version" também. 1) Listar VMs existentes via VBoxManage list vms. 2) Ao lado dos nomes das VMs, entre colchetes, seus UUIDs são referenciados. Copie o de seu interesse. Detalhes sobre isso podem ser recuperados via VBoxManage showvminfo UUID. 3) Cancele o registro da VM de interesse via VBoxManage unregistervm UUID. 4) Mova o diretório da VM de seu interesse. 5) Por fim, registre a máquina via VBoxManage register NameOfVM.vbox- obviamente, onde NameOfVM significa o nome real do .vboxarquivo de VMs a ser registrado.
Nikos Alexandris
58

Eu tinha apenas algumas VMs e descobri que era possível alterar o local de armazenamento padrão do VirtualBox e clonar minhas VMs. Os clones foram criados no novo local no novo HD onde eu os queria. Tudo intacto, instantâneos e sem necessidade de remapear a localização dos HDs virtuais.

thomthom
fonte
3
+1 Acho que esse é o melhor método. O VirtualBox move tudo para você em um pequeno pacote arrumado.
Dave Andersen
3
esta é a melhor maneira, sem edição manual cfg necessário
Bojan Bjelic
Como você faz isso???
FlipFloop 6/01/19
Isso realmente deve ser a resposta aceita
TheV0id
1
Aviso: o Clone não produz uma cópia perfeita e pode desencadear a necessidade de atualizar as licenças do software instalado à medida que os IDs da máquina / disco são alterados. Foi encontrado isso ao mover uma cópia antiga do Quicken em uma VM para um novo disco.
MZB 26/01
36

O método mais fácil não requer remover suas máquinas virtuais e alterar suas configurações.

  1. Copie a pasta VMs do Virtualbox para uma nova unidade.

  2. Execute o Virtual Box Machine Manager. Execute o arquivo do Media Manager -> Virtual Media Manager

    2a Escolha a VM para a qual mover o armazenamento. Clique no botão Liberar e, em seguida, no botão Remover . Na próxima caixa de diálogo, você pode remover ou manter a unidade virtual. Feche o gerente, deixando você no seu Virtualbox Machine Manager.

  3. Selecione a VM para a qual você acabou de remover a mídia, clique no botão Configurações , clique na seção Armazenamento . Adicione um controlador para a mídia (normalmente SATA) e, em seguida, adicione um disco rígido, escolha o disco existente e selecione o VD em seu novo local.

  4. Repita o procedimento para cada máquina em movimento

Dispare sua máquina virtual no novo local para verificar. Da próxima vez que você visitar o Virtual Media Manager , passar o mouse sobre a entrada da VM mostrará onde o VD está armazenado.

Altere as pastas de instantâneos para apontar para a nova unidade, se você as estiver usando. Cada máquina possui uma configuração de pasta de instantâneo e o VM Manager possui uma configuração de pasta de Máquina padrão em Arquivo -> Configurações que também precisam ser alteradas.

Além disso, eu também tive que modificar o caminho no arquivo xml. Depois disso, funcionou perfeitamente.

NOTA: As coisas mudaram um pouco desde que isso foi escrito, veja a resposta de Rob. É extremamente simples agora.

Fiasco Labs
fonte
2
Eu acho que essa é de longe a maneira mais fácil de fazer isso.
Peter Perháč 4/16
17

MUITO, MUITO MAIS simples. 1) mude para o novo local 2) Clique com o botão direito do mouse em Remover do menu da caixa virtual 3) Selecione 'adicionar' no menu da máquina 4) Encontre o ícone azul de 8kb que possui um tipo de 'definição de máquina da caixa virtual'. Selecione-o e ele será adicionado à sua lista de caixas virtuais. clique duas vezes na máquina virtual e ela funciona.

Roubar
fonte
Ainda mais simples que isso, quando você deseja adicionar as VMs de volta ao VirtualBox, basta clicar no *.vboxarquivo em sua pasta.
Joel Mellon
2
Como as coisas mudam em três anos ... O desejo tinha sido tão fácil naquela época. Nota adicionada à minha resposta para que eles vejam este.
Fiasco Labs
1
Isso realmente deve ser mais alto. Eu brinquei e não consegui fazê-lo funcionar. Simplesmente remova os "inacessíveis" na interface do usuário e clique duas vezes no arquivo .vbox e adicione-o novamente usando o novo local.
Wenbert 21/04
Não funciona no host Linux. Obtendo este erro: A sessão da VM foi fechada antes de qualquer tentativa de ligá-lo. Código de resultado: NS_ERROR_FAILURE (0x80004005) Componente: SessionMachine Interface: ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}
Max N
1
A parte "remover" desse método parece uma péssima idéia que resultará na perda de suas configurações, mas não. Este método mantém todas as suas configurações e é o mais fácil de todos os métodos que tentei. Ele funcionou em um host do Windows 10 com convidados do Windows 7 e do Windows Sever 2016.
Night Owl
13

No Mac, edite os caminhos neste arquivo:

/Users/pleddy/Library//VirtualBox/VirtualBox.xml

Isso foi fácil, pronto!

pcharlesleddy
fonte
3
Ele está usando o Windows e também não deseja editar o VirtualBox.xml.
ChrisN
4
Isso foi útil para mim, no entanto, uma vez que essa pergunta ainda pode ser alterada se você estiver no Mac.
NReilingh
Eu sou um usuário Mac e google me desembarcou aqui e esta solução é a mais simples de todas, faz todo o sentido e trabalhou para mim :)
Mohit Singh
Estou no linux e gostei do som desta resposta, mas fiquei desanimada com o aviso na parte superior do arquivo. Você ainda recomendaria editar o XML diretamente? O aviso diz: ** NÃO EDITE ESTE ARQUIVO. Se você fizer alterações nesse arquivo enquanto qualquer aplicativo relacionado ao VirtualBox estiver em execução, suas alterações serão substituídas posteriormente, sem efeito. Use o VBoxManage ou a GUI do VirtualBox Manager para fazer alterações. **
craq
11

Depois de perder um dia inteiro com esse problema (usando o Virtualbox 5.0.12 no Arch Linux), finalmente resolvi o problema da maneira que a resposta de thomthom sugere. Para quem não tem certeza sobre o procedimento exato, o comando que clona uma máquina inteira (incluindo instantâneos) é:

VBoxManage clonevm --mode all --basefolder </new/path/> --register <VM_to_clone>

Obtenha o nome da VM com

VBoxManage list vms

Se necessário, cite o caminho e o nome.

Por fim, verifique se está tudo bem e remova o original.

Isso é tudo, sério. Não há necessidade de se preocupar com arquivos xml ou um editor hexadecimal. Também não é necessário usar uma GUI.

http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevm

Michael P
fonte
Esta foi a única resposta que funcionou para mim. Deve ser mais alto.
Max N
2
VM_to_cloneé o UUID ou o nome da VM. Com o comando fornecido (usando um UUID), um diretório foi criado em /new/path/_<UUID>_ Clonee os arquivos contendo também foram usados _<UUID>_ Clonecomo nome. Para ter um nome mais explícito, use o --name "Your preferred name here"sinalizador
Rob W
... e para remover a VM original por meio da CLI VBoxManage unregistervm UUID(o UUID da VM que você obteve VBoxManage list vms, não use o nome da VM, pois se você --namepreservar o nome original, terá várias VMs com o mesmo nome)
Rob W
Aviso: o Clone não produz uma cópia perfeita e pode desencadear a necessidade de atualizar as licenças do software instalado à medida que os IDs da máquina / disco são alterados. Foi encontrado isso ao mover uma cópia antiga do Quicken em uma VM para um novo disco.
MZB 26/01
Parece haver um comando dedicado agora, de qualquer maneira: virtualbox.org/manual/ch08.html#vboxmanage-movevm
Michael P
4

Para fazer o mesmo que na resposta de Lucas Pottersky, mas através da linha de comando (no Windows, substitua vboxmanagepor VBoxManage.exe):

  1. Listar todas as máquinas virtuais:

    vboxmanage list vms
    

    ou apenas executando:

    vboxmanage list runningvms
    

    que para cada máquina gera nome e UUID.

    Execute as seguintes etapas para cada máquina que você moverá.

  2. Graciosamente desligado:

    vboxmanage controlvm UUID acpipowerbutton
    
  3. Cancelar registro:

    vboxmanage unregistervm UUID
    
  4. Mova a pasta da máquina virtual para o novo local.

  5. Registre-o novamente, fornecendo o caminho para o .vboxarquivo:

    vboxmanage registervm /path/to/machine.vbox
    
mixel
fonte
2

Isso funcionou para mim com a versão MacOS do VirtualBox (versão 4.1.12). Esperei 5 a 10 segundos para o VirtualBox fechar antes de reiniciar. Procurei no Activity Monitor para garantir que o VBoxSVC tivesse sido encerrado corretamente.

Se você não fizer isso, receberá um erro parecido com o seguinte (estou copiando e colando a mensagem de erro de outra pessoa que vem do Windows). Se você receber esse erro, é simplesmente porque você não saiu do VirtualBox ou esperou o tempo suficiente para o VBoxSVC sair.

Failed to open virtual machine located in E:/<path>/<machine_name>/<machine_name>.vbox.

Cannot register the hard disk 'E:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' {0ece4bff-9185-4cff-9069-b3d1f4536394} 
because a hard disk 'C:\<path>\<machine_name>\Snapshots/{0ece4bff-9185-4cff-9069-b3d1f4536394}.vdi' with UUID {0ece4bff-9185-4cff-9069-b3d1f4536394} already exists.

Result Code: E_INVALIDARG (0x80070057)
Component: VirtualBox
Interface: IVirtualBox {c28be65f-1a8f-43b4-81f1-eb60cb516e66}
withfries2
fonte
2

No OS X com o VirtualBox v4.3.14, tudo o que eu precisava fazer era clicar duas vezes no .vboxarquivo a partir do novo local, e ele abriu o VirtualBox e o adicionou à lista de VMs disponíveis.

Tyson Phalp
fonte
Por favor, não adicione "obrigado" como resposta. Em vez disso, vote nas respostas que achar úteis.
Scott
Minha resposta não é um 'obrigado'. Eu editei o texto para tornar isso mais óbvio. Obrigado.
Tyson Phalp
2

Há um local de armazenamento padrão nas configurações em VirtualBox: http://mattvelic.com/default-vm-location/

Agora morto. A máquina Wayback tem o conteúdo:

http://web.archive.org/web/20131116130725/http://mattvelic.com/default-vm-location

... confira as Preferências no menu Arquivo. Contemplar! O primeiro item na guia Geral é Pasta padrão da máquina. http://web.archive.org/web/20131116130725im_/http://54.225.211.105/wp-content/uploads/2012/11/VB_Preferences.png Editei o local para apontar para minha unidade de armazenamento e refiz rapidamente VM. Dessa vez, o VirtualBox criou os arquivos da máquina e o VDI no local correto. A verdadeira lição aqui é que às vezes a solução não precisa ser técnica. Penso que, como profissionais de TI, tendemos a pensar que a resposta a um problema será complicada. Mantenha os olhos abertos para as soluções óbvias!

Rebecca
fonte
Este link está morto agora. Tente não postar links como respostas. Quando eles morrem, SU fica com crosta para limpar.
mrtsherman
atualizado com o conteúdo de archive.org
Rebecca
1

Eu não acho que isso seja possível.

Você pode mover o VDI para o novo local, mas acho que não pode evitar a modificação de XML. Como alternativa (mas que é de fato o mesmo que a edição XML), criar uma nova máquina virtual com a GUI e escolher a imagem movida como disco atenderia às suas necessidades?

M'vy
fonte
1
Eu dei uma segunda olhada no xml e é realmente muito simples. Criar uma nova máquina não é bom, pois gostaria de preservar minhas configurações (não me lembro do que mudei, pode ser completamente sem importância ou não).
Maaartinus 11/03/11
1

Tentei o método original (remova o VDI, anexe a nova cópia), recebi a mensagem de que a antiga ainda existe e não consegui anexar a nova cópia mesmo quando reiniciei o SO (no Mac OS X El Capitan).

A correção estava no menu / Arquivo / Virtual Media Manager, remova o VDI existente. Isso funciona mesmo se houver instantâneos; basta remover todos os VDIs da captura instantânea na ordem inversa. Não é necessário fechar e reabrir o VirtualBox.

marty39
fonte
0

Eu nunca usei o virtualbox no Windows, mas no ubuntu você move a VDI e, na GUI do virtualbox, clica com o botão direito do mouse na VM e usa o Menu de Configuração -> armazenamento, onde é possível alterar a localização do VDI para onde você moveu o arquivo. Em relação à definição de outros arquivos de máquina, você os move e, na GUI, você acessa Preferências e altera a posição do diretório de máquinas padrão para o diretório que você moveu.

Laurent
fonte
0

Eu uso este método:

  1. Na GUI do VirtualBox, escolha sua VM e remova o disco rígido conectado
  2. Copie o arquivo (ou seja, vdi) para o novo local
  3. Gere um novo UUID para o .vdi no novo local com o comando vboxmanage internalcomands sethduuid "meu caminho para myhdd.vdi" 6912BF7F-13BB-4E70-A2CA-C92300FEC3DC

    (No exemplo anterior, use seu próprio UUID ou não o adicione: o comando gerará automaticamente um. Além disso, se você omitir esta etapa, ao adicionar o .vdi a partir do novo local, você receberá um erro indicando que o UUID já existe )

  4. Agora, de volta à GUI do VirtualBox, escolha sua VM e, em Configurações / Armazenamento, anexe o HD (arquivo .vdi) de seu novo local.

E feito.

Fernando Gonzalez Sanchez
fonte
-1

No Oracle VM VirtualBox (testado com a versão 6.0.4), simplesmente encerre sua VM -> clique com o botão direito do mouse na VM no VirtualBox Manager -> clique em "Mover ..." -> escolha o novo diretório. É isso aí!

Silvio Jäger
fonte
@ Moreaki: A propósito, "legibilidade" (e "legível") são escritas sem um "D".
Scott