Eu tenho uma máquina virtual com cerca de 30 instantâneos em ramificações. O caminho de desenvolvimento atual é de 22 instantâneos mais o disco base. A quantidade de arquivos parece ter um impacto agora no IO e no laptop de desenvolvimento que estou usando (não sei se são problemas de desempenho do disco host com o tamanho total de 140 GB em muitos fragmentos ou apenas o fato de que é bater setores distribuídos em muitos arquivos).
Gostaria de mesclar o ramo de desenvolvimento atual dos snapshots com o disco base, mas não tenho certeza se o comando a seguir produziria o resultado correto. Não consigo inicializar este disco após a conclusão do procedimento (5-6 horas).
vboxmanage clonehd "C:\VPC-Storage\.VirtualBox\Machines\CRM\Snapshots\{245b27ac-e658-470a-b978-8e62137c33b1}.vhd" "E:\crm-20100624.vhd" --format VHD --type normal
Alguém poderia confirmar se esta é a abordagem correta ou não?
virtualbox
vhd
merge
snapshot
Henrik
fonte
fonte
Respostas:
O que você deseja fazer é, na caixa de diálogo snapshots, selecione o snapshot pai que você deseja mesclar todos os snapshots posteriormente em um único VDI.
Pela sua descrição, parece que essa é a raiz da árvore.
Clique com o botão direito e selecione 'Excluir instantâneo'.
Isso fará o que você deseja - ele mesclará todas as alterações de todos os instantâneos filhos em um único VDI.
Além disso - a clonagem da imagem do disco que está no instantâneo mais recente - também mesclará o disco diferencial com seu pai (e seu pai, etc.), até que você atinja um tipo de disco rígido 'normal'.
Eu suspeito que 'excluir um instantâneo' executa o comando clonehd.
Verifique as configurações da sua VM (especificamente IO APIC ativada / desativada) e verifique se elas correspondem.
fonte
Se você deseja manter apenas um instantâneo, torne-o seu estado atual e exporte a VM e importe-a novamente. Os appliances exportados não mantêm seu histórico de instantâneos.
Ou você pode usar esse script vboxmerge.py para lidar com a fusão para você. Dado o número de snapshots que você possui, eu esperaria que o ciclo de exportação / importação fosse mais rápido.
fonte
Aqui está uma técnica (testada no VirtualBox 4.3.4) que usa o comando 'Clone' para mesclar e compactar todos os snapshots em uma nova VM contendo um único arquivo VDI:
Renomeie a VM para poder reutilizar seu nome atual para VM clonada (você pode alterar o nome da VM na guia 'Básico' das configurações de 'Geral').
Clique com o botão direito do mouse na VM e execute o comando 'Clone ...':
Exclua a VM antiga (clique com o botão direito do mouse na VM e execute o comando 'Remover ...').
fonte
Se o seu host for um Windows ou você puder acessar arquivos VHD a partir do Windows, há um truque para MERGE todas as alterações em pai, avô, etc.
Está usando a ferramenta DiskPart e os dois comandos:
select vdisk file="whatever your file is, with full path"
merge vdisk depth=#
Onde # é o número de níveis de hierarquia que você deseja mover, 1 para o pai direto, 2 para o pai principal, etc.
Faz isso no local, consome muito menos tempo que a clonagem, etc.
Lembre-se de que após a mesclagem de todos os VHDs intermediários podem ser excluídos (eles não serão excluídos por você) e não se esqueça de anexar ao VirtualBox o pai onde você mesclou.
Exemplo:
Disk3.vhd é filho de Disk2.vhd, Disk2.vhd é filho de Disk1.vhd
Se você deseja no Disk1.vhd, todas as alterações no Disk3.vhd usam
depth=2
e selecione Disk3.vhd. Se você deseja no Disk1.vhd todas as alterações do Disk2.vhd, basta usardepth=1
Disk3.vhd.Lembre-se também de que não há necessidade de instantâneos feios do VirtualBox, você pode usar o comando DiskPart create vdisk para criar um disco diferencial a partir de um existente (que também pode ser um disco diferencial, etc.), também pode criar uma árvore enorme.
Para todo o resto: o pôster está usando VHD (não VDI) e, portanto, pode usar ferramentas nativas, como DiskPart e Disk Managment, para acessar os discos do convidado (no host, se o host for Windows).
Para você, o pôster: lembre-se de sempre ter um backup completo antes da mesclagem, o clone do VirtualBox não funciona, ele cria um novo arquivo (cópia na gravação), mas a mesclagem do DiskPart funciona no local (modifique o arquivo, não crie um novo).
Espero que isso possa dar outra abordagem diferente, pois o VHD / VHDX está em uso (não é válido para VMDK, VDI, etc., apenas para Windows Host).
Nota: Windows 7 e Up, XP e Vista podem montar VHD com uma ferramenta M $ externa, mas o DiskPart não oferece suporte a VHD no XP e Vista ... tudo isso também funciona nas edições Windows HOME (7 e Up), sem a necessidade de um Edição SERVER.
fonte