Qual é a maneira recomendada de mover uma VM do VirtualBox para outro computador?

234

Eu uso o VirtualBox 4.1.x na minha máquina Ubuntu e configurei várias máquinas virtuais. Como existem várias maneiras de mover uma máquina virtual no VirtualBox para outro computador, fiquei pensando qual é a maneira recomendada:

  1. Use o "Utilitário de importação / exportação".
  2. Copie toda a pasta da máquina virtual, contendo os arquivos .vdie .vbox.
  3. Clone a VDI usando o "Virtual Media Manager" e recrie uma VM na máquina de destino, mas usando a VDI clonada como disco rígido.

Eu usei com sucesso o primeiro método várias vezes e sempre funcionou. O problema é que, após exportar e importar, a imagem do disco é transformada em VMDK e não mais em VDI!

O segundo método é provavelmente o mais fácil, mas não tenho certeza de que simplesmente copiar os arquivos funcione ou não na máquina de destino. Ao pesquisar sobre esse método, descobri que algumas pessoas tinham problemas nos quais precisavam editar o arquivo VirtualBox.xml para resolvê-lo!

Por fim, existe o terceiro método , mas requer o trabalho extra de criar uma VM semelhante à configuração original da VM, o que não é desejável.

Fica claro pela explicação acima que meu método desejado é o 2º, mas preciso de conselhos de especialistas sobre isso, se funcionar ou não. Não quero que nenhuma edição de XML fique no meu caminho!

Qual é o melhor método para transferir com segurança minhas VMs para outro computador com o VirtualBox?

Seyed Mohammad
fonte
2
Basta transferir os arquivos e colocá-los no mesmo local.
Ramhound 18/08/13
2
@seyed 1. Uma solução à prova de falhas com altas taxas de sucesso / reprodutibilidade nem sempre pode ser a recomendada e / ou a melhor solução para um problema e vice-versa . No entanto, como você pergunta sobre a solução recomendada , a opção (2) da sua lista (embora sujeita a erros) seria a mais rápida e, portanto, recomendada! Opções (1) e (3) se enquadram na prova de falhas categoria, uma vez que irá trabalhar na maioria das circunstâncias. PS: pós-exportação, algumas (a maioria?) Definições de configuração podem ser alteradas (se as opções 1/3 forem usadas)! ... Espero que isto ajude.
Amar

Respostas:

165

Bem feito para fazer sua pesquisa. Eu uso regularmente todas as três opções.

  1. (Use o "Utilitário de importação / exportação") . Isso é o mais fácil porque combina toda a VM em um único arquivo e a transfere sem problemas praticamente todas as vezes. No entanto, na minha experiência ao criar o arquivo OVA ou OVF para exportação, ele descarta todos os instantâneos e, se feito incorretamente, pode resultar em um arquivo VMDK. Ao reimportar a VM, você poderá selecionar o tipo de arquivo do HDD que deseja criar, VDI ou VMDK.

  2. (Copie toda a pasta da máquina virtual, contendo os arquivos .vdie .vbox) . Esta é a minha opção preferida e, embora eu tenha tido que editar o arquivo XML algumas vezes, a culpa foi minha por estragar alguma coisa. Certifique-se de que, ao copiar a VM, obtenha TODOS os arquivos associados a ela. Os problemas que encontrei foram quando determinados instantâneos e arquivos VDI secundários estavam no diretório errado e não foram copiados corretamente. Se você copiar todos os arquivos (e permissões), não deverá ter nenhum problema.

  3. (Clone a VDI usando o “Virtual Media Manager” e recrie uma VM na máquina de destino, mas usando a VDI clonada como disco rígido). Isso é menos desejável, porque você tem 2 cópias de uma VM e pode causar problemas de licenciamento, problemas de rede, etc., dependendo de como você clona o arquivo VDI.

Em resumo, eu recomendaria definitivamente a opção 2, apenas certifique-se de obter todos os arquivos necessários ao movê-lo.

tbenz9
fonte
Obrigado pela resposta. Vou esperar mais alguns dias para ver se mais alguém tem algum outro argumento. (+1)
Seyed Mohammad 19/08/13
Parece que ninguém tem mais nada a acrescentar ... Estou marcando isso como a resposta.
Seyed Mohammad 27/08/13
Apenas uma referência adicional para a opção 1, link , após a importação, o formato é VDMK, parece ser determinado e não pode ser alterado.
amigos estão dizendo sobre simongcc
1
@tbenz Como evito obter um VMDK ao exportar?
22615 Don Rhummy #
13
Apenas para concluir: se você fizer a opção 2, faça-o na máquina de destino: Virtualbox> Máquina> Adicionar> [navegue até a pasta onde estão todos os arquivos da VM]. Provavelmente, é uma boa ideia colocar os novos arquivos de VM na mesma pasta em que todas as outras VMs estão armazenadas.
precisa
47

O método 2 funciona bem agora (com o VirtualBox 4.0 e superior) , sem nenhuma modificação XML necessária:

  1. Pare sua máquina virtual
  2. Sair do VirtualBox
  3. Copie a pasta VM para o novo local
  4. Reinicie o VirtualBox e exclua a VM antiga.
  5. Vá para o menu Máquina ≥ Adicionar e navegue até sua pasta antiga.

É isso aí!

ps: Eu tenho o VirtualBox 4.3.20 no OSX 10.10

Consulte esta postagem no fórum do VirtualBox para obter mais detalhes.

David
fonte
4
Não posso acreditar que não foi votado como deveria ser! Essa é a maneira mais fácil (muito fácil!) Ao mover as VMs no mesmo sistema operacional. Movida com êxito dois VM a partir da unidade C e unidade D. mina é Win7 64 bits com Virtualbox 5. x
Edwin Yip
1
Na verdade, isso não funciona apenas para mover o arquivo VDI, apenas toda a máquina virtual.
DustWolf 27/08
1
@ DustWolf Certo, mas é disso que se trata a questão da operação.
David
@DustWolf Foi o que David disse. "Copie a pasta da VM para o novo local". No que me diz respeito, esta pasta contém toda a máquina virtual. Estou esquecendo de algo?
Nikos
@RestlessCobra sim, a nova pasta contém toda a VM.
David
18

Minha opção preferida é a opção 2 também:

  1. Copie a pasta inteira da VM, contendo os arquivos .vdi e .vbox.

Às vezes, porém, ocorre uma incompatibilidade de UUID. Freqüentemente isso acontece se você apenas copiar a imagem do disco VDI de uma máquina para outra, mas isso aconteceu durante cópias diretas de diretórios completos.

Portanto, se esta for a mensagem que você recebe após mover a máquina virtual e tentar iniciá-la na nova configuração:

Falha ao abrir o disco rígido.

Não é possível registrar o disco rígido porque já existe um disco rígido com UUID.

Basta ir ao diretório da sua máquina virtual; é claro, altere o caminho real para corresponder ao caminho real no qual você está entrando:

cd /full/path/to/virtualbox/virtualmachine/Sandbox

E execute este comando para atribuir ao disco um novo UUID:

VBoxManage internalcommands sethduuid Sandbox.vdi
JakeGould
fonte
9

Caso outra pessoa esteja procurando uma resposta para isso, mudei com êxito 5 VMs do Virtual Box para outra instalação do Win7 em um novo disco rígido na mesma máquina (essencialmente uma mudança de um SO convidado para outro no mesmo PC). Percebo que os drivers em uma máquina completamente nova provavelmente variam e podem ter um efeito negativo em movimento, mas documentei o processo abaixo na esperança de que isso ajude alguém.

  • Não havia necessidade de clonar VMs ou alterar o arquivo xml. A versão do VB era bastante atual: 4.3.12r93773.
  • Novas cópias de VMs foram criadas em uma nova pasta / unidade compartilhada para manter intactas as VMs existentes / antigas. Ainda posso inicializar a partir do disco rígido antigo que guardei para redundância / resolução de problemas até ficar satisfeito com minha nova configuração; para que eu possa acessar as VMs antigas em seu estado anterior, se necessário.
  • As letras das unidades variam / podem não ser necessárias, dependendo da sua configuração.

No host antigo do Win7:

  1. Verifique se todas as VMs estão desligadas.

No novo host Win7:

  1. Crie uma nova pasta chamada X: \ NewVMs \ VirtualBox VMs (da nova máquina Win7 para garantir as permissões OK)
  2. Copie / cole (não arraste) todas as VMs e conteúdo da pasta relacionada da pasta antiga para esta pasta (usa novas permissões)
  3. Desinstale o VirtualBox (se instalado)
  4. Exclua a pasta .virtualbox e todo o conteúdo (se existente)
  5. Reinicie para confirmar que não há arquivos de programa ou entradas de registro restantes (se estiver desinstalando o VirtualBox antigo).
  6. Instalar / reinstalar o VirtualBox (verifique se você está usando a mesma versão do VirtualBox em que as VMs foram criadas no host / máquina antigo (no meu caso, ver. 4.3.12r93773))
    IMPORTANTE: (Não selecione a caixa de seleção para abrir / execute o VirtualBox no final da instalação)
  7. Copie / cole (não arraste) a pasta .virtualbox e o conteúdo do Old Win7 Host (geralmente C: \ Users [nome de usuário] .VirtualBox
  8. Agora abra o VirtualBox
  9. Defina as preferências da nova pasta de criação da VM padrão para o mesmo caminho de arquivo da pasta VMs do VirtualBox recém-criada: X: \ NewVMs \ VirtualBox VMs
  10. Status de teste das VMs

Boa sorte.

Steven Kelly
fonte
Embora seja uma resposta informativa, não se trata do que foi solicitado. Outra pergunta pode ser um local mais apropriado para sua resposta.
akTed
@ Steven, "... essencialmente uma mudança de um SO host para outro ..."?
Pythonlarry 18/03/19
2

Para o caso especial em que:

  • você tem apenas uma única VM (ou deseja mover todas as suas VMs),
  • e o host é o mesmo hardware com a mesma versão do sistema operacional (ou reinstalar o mesmo sistema operacional na mesma máquina)

Se você estiver nesse caso, as coisas serão fáceis:

  1. Encerre o VirtualBox nos dois hosts.
  2. Copie as pastas .config/VirtualBoxe VirtualBox VMsdo host de origem.
  3. Copie essas pastas para o host de destino.
  4. Inicie o VirtualBox no host de destino
Nicolas Raoul
fonte
1

O quarto caminho

No VirtualBOX:

  1. Desligue a VM
  2. Clique com o botão direito e remova a VM (não exclua arquivos)
  3. Vá para arquivo> Virtual Media Manager e remova o arquivo .vdi
  4. Vá para Arquivo> Preferências> Geral e defina a pasta padrão da máquina para o novo local
  5. Crie uma nova VM, use o modo especialista para criar a VM sem um disco rígido

No File Explorer:

  1. Localize o arquivo .vdi e copie-o
  2. Vá para a nova pasta padrão da máquina, haverá uma pasta VM dentro
  3. Cole o arquivo .vdi na nova pasta da VM

De volta ao VirtualBOX:

  1. Clique com o botão direito do mouse na VM e abra as configurações
  2. Vá para Armazenamento> Controlador: SATA e adicione um disco rígido, clique em escolher um disco existente 11. escolha o arquivo .vdi na nova pasta da VM

Nota: Se o método 2 interromper a instalação do VirtualBOX, vá para C: \ Users \ .VirtualBox e exclua o VirtualBox.xml e renomeie o VirtualBox.xml-prev para VirtualBox.xml

peterjtk
fonte
0

Também usei o método 2 para mover minha máquina virtual e não precisei fazer nenhuma alteração em nenhum arquivo XML, mas tive alguns erros com o USB e o compartilhamento de arquivos e, abaixo, é como os corrigi junto com o processo:

  1. Copie a máquina virtual do antigo para o novo pc. Os arquivos da máquina virtual são diferentes da própria máquina virtual Oracle. Esses arquivos geralmente estão em c: \ users \\ VMs do VirtualBox \ . Peguei todas as VMs VirtualBox \ parte e copiei para um local semelhante no novo PC. Isso copia todas as máquinas virtuais que eu tinha no PC original.

  2. Agora, no novo PC, execute a caixa virtual e vá para Menu> Máquina> Adicionar e selecione o arquivo .vbox na pasta copiada. É isso aí.

  3. Agora, quando eu executo a máquina virtual no novo PC, recebi um erro ao inicializar:

insira a descrição da imagem aqui

  1. Não sei por que o controlador USB não estava funcionando porque o mesmo funcionava no computador original. Fui em frente e instalei o VirtualBox Extension Pack

  2. Essa instalação foi um pouco estranha porque o download da instalação não era um arquivo executável. Cliquei em Oracle_VM_VirtualBox_Extension_Pack-5.1.4-110228.vbox-extpack e selecionei 'Selecionar um programa de uma lista de programas instalados' e depois selecionei o virtualbox Oracel e ele instalou a extensão. Isso resolveu o problema, mas outra solução menos desejável é que você pode desativar o usb.

  3. Se você compartilhou pastas na VM original, elas podem ser diferentes e você receberá um erro. Revise aqueles em Configurações >> Pasta compartilhada e exclua os que estão quebrados. Uma mensagem de erro será semelhante a

esta.

Isso é tudo.

zar
fonte
-1

zar, a primeira coisa primeiro ... nunca mova uma máquina que esteja no estado salvo; antes da mudança, você deve desligar o convidado, não apenas salvar o estado.

Além disso, verifique se você usa a mesma versão do VirtualBOX nos dois hosts, mas não apenas a versão do VirtualBOX, também a versão do pacote de extensão ... ou pelo menos o novo host tem uma versão superior, mas nunca uma versão inferior em nenhum dos dois.

E, finalmente, aprendi da maneira mais difícil, exclua a configuração da pasta SHARED no VirtualBOX antes de mover a máquina e depois recrie-a da maneira correta ... muito importante quando o host é um SO diferente (hosts Windows / Linux).

E apenas como uma observação ... sempre, sempre use arquivos VDI inmutáveis ​​de disco rígido para SO e para VDIs de dados (dessa maneira, o mesmo DATA VDI pode ser usado para mais de convidados), especialmente truque para 4GiB pagefile.sys

Na última parte, reutilize um arquivo VDI inmutável torna as coisas um pouco mais difíceis, o VirtualBOX tem um GRANDE BUG.

Para ver o bug em ação:

  • Crie um VDI imutável (como o que eu uso para o pagefile.sys)
  • Crie duas ou três VMs no VirtualBOX
  • Mova um deles para o topo da lista (apenas para evitar danos a qualquer um dos seus)
  • Faça backup dos arquivos .vbox de cada uma dessas máquinas que você criou (para compará-lo após o erro)
  • Anexe esse VDI imutável a mais de uma dessas máquinas (exceto a que está no topo da lista)
  • Agora veja o .vbox da máquina que está no topo da lista

Essa máquina foi editada, tem referências às outras máquinas VDI inmutável.

Portanto, o BUG é: Edite uma máquina adicionando um VDI inutável que é usado por outra afeta a máquina no topo da lista.

Por que diabos eu reutilizo o mesmo 4GiB VDI em todas as máquinas Windows? Fácil, é um disco MBR com uma partição FAT32 onde eu coloco o pagefile.sys, pois é inmutável todas as máquinas virtuais criarão um arquivo em sua pasta de instantâneos onde armazenam as alterações e que se perdem na próxima inicialização, por isso não preciso do 4GiB para cada convidado armazenado no disco host, apenas um ... dessa forma, economizo muito GiB, pois tenho mais de 20 janelas diferentes para testar aplicativos que desenvolvo por conta própria, todas as combinações de (XP, Vista , 7, 8, 8.1, 10) * (32 bits, 64 bits) * (Assim como na primeira instalação, após cada ServicePack, após a atualização completa do Windows), recebo muitos convidados ... assim como todos eles eu compartilho o inmutável 4GiB VDI para a ram virtual (pagefile.sys).

E se você deixar o BUG ir além, tente mover uma dessas máquinas para outro host do VirtualBOX (lembre-se de que são apenas máquinas virtuais com uma configuração nelas e nenhum hóspede ainda instalado nelas), você verá que o VirtualBox não permite adicione-os, pois faltam alguns VDIs (é FALSO e VERDADEIRO, é que essa primeira máquina mantém as referências a esses VDIs com o objetivo de ser na máquina correta).

Agora compare os arquivos .VBOX de todos eles com o backup anterior ... observe como um é modificado incorretamente? ... sim, é o que está no topo da lista.

Bem, esse erro foi informado ao VirtualBOX há alguns anos, eles ainda não conseguem consertá-lo ... e está causando muitos, muitos problemas.

Além disso, se você mover a primeira das máquinas virtuais para uma posição mais baixa, feche o VirtualBox e a reinicie ... informará que algumas máquinas estão danificadas e não podem ser iniciadas ... sim, a primeira da lista deve ser tratado de uma forma diferente se você não quiser obter muitos problemas.

É um erro muito ruim que me levou muitos dias para descobrir (alguns anos atrás) eu aprendo da maneira mais difícil!

Eu tinha superado isso por ter uma máquina que eu havia chamado:

  • Common Inmutable Disks

Ele tem uma configuração vazia e apenas um VDI, sim, você está certo, você adivinhou, o VDI imutável que eu compartilho para todas as demais máquinas virtuais.

Bem, quando abro o arquivo .VBOX, vejo muitas linhas na <MediaRegistry> <HardDisks>seção, uma por cada máquina em que uso esse VDI inutável ... apenas como uma amostra (removo dados particulares):

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="...UUID..." location="D:\VDIs\_Virtual_Memory_.vdi" format="VDI" type="Immutable">
      <HardDisk uuid="{...UUID...}" location="Snapshots\{...UUID...}.vdi" format="VDI" autoReset="true"/>
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows001 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows002 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows003 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows004 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows005 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows006 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows007 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows008 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows009 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows010 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows011 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows012 ... // This belongs to other virtual Machine
      <HardDisk uuid="{...UUID...}" location="D:\VMs\Windows013 ... // This belongs to other virtual Machine
      ... and so on ...  // This belongs to other virtual Machine
    </HardDisk>
  </HardDisks>
</MediaRegistry>

Erro bonito, não resolvido desde anos.

Bem, para mover essas máquinas ... você deve editar manualmente os arquivos .VBOX, para colocar todas essas referências de discos no novo host na primeira máquina (a que está no topo da lista) antes de adicionar o .VBOX arquivos à lista, portanto, ao adicioná-los, o VirtualBOX tem as referências aos VDIs ausentes (ausentes causados ​​pelo grande erro).

O problema ocorre porque cada vez que você conecta um VDI usado em outra máquina, o VirtualBOX atualiza dois arquivos .VBOX das máquinas (aquele que pertence à máquina que você está usando) e ao primeiro da lista.

Não tenho muita certeza do que aconteceria quando na lista, o primeiro não tem um VDI tão comum anexado a ele ... é melhor não tentar, visto o que vejo.

Portanto, migrar para outro HOST é muito mais complicado do que parece ser uma implementação muito ruim na estrutura interna dos arquivos .VBOX e por causa de erros muito grandes quando o VirtualBOX os edita.

Falha:

  • A estrutura interna (XML) depende do HOST (Windows ou Linux)
  • Editar uma máquina pode alterar outra, não apenas a que está sendo editada
  • ... o que mais ?

Precisa de mais ... eu sempre migro máquinas fazendo isso (e nunca tive problemas, nunca):

  1. Anote a lista de todas as máquinas (ordem, agrupamento, etc.)
  2. Anote o primeiro da lista (toda a sua configuração)
  3. Anote todas as propriedades das máquinas que quero mover para outro host
  4. Copie os arquivos .vbox como arquivos .txt (aquele no topo da lista + todas as máquinas que desejo migrar)
  5. Recrie todas as máquinas (e tenha uma especial no topo da lista) dentro do VirtualBox no novo host
  6. Feche o VirtualBox no novo host
  7. Diff compare o antigo .txt com os novos arquivos .vbox e copie de .txt para .vbox algumas partes da maneira humana, não apenas Copie e cole
  8. Abra o VirtualBox e anexe todos os VDIs na ordem correta
  9. Feche novamente o VirtualBox no novo host
  10. Diff compara o arquivo .txt antigo com os novos arquivos .vbox e 'corrige' de .txt para .vbox algumas partes da maneira humana, não apenas Copiar e Colar

Todo o restante (pasta de instantâneos e arquivos VDI) copia-os da maneira normal (Copiar e colar sistema de arquivos).

Todo esse trabalho manual árduo é causado pelo Big BUG VirtualBox: Ele edita / altera uma máquina que não foi modificada quando você anexa um VDI imutável usado em mais de uma máquina; caso contrário, basta copiar e colar o arquivo .VBOX. fixando caminhos de pastas compartilhadas, etc).

Laura
fonte
-2

Copie a pasta que contém a máquina para o destino e, em seguida, no menu: "Máquina" ---> "Adicionar" e escolha o arquivo vbox, NÃO o arquivo vdi. Para mim, isso correu perfeitamente. Não tenho certeza se tive sorte, ou se deve funcionar dessa maneira.

Thia Zol
fonte