Como apagar todos os snaphosts no Virtualbox?

1

Eu tenho até agora cada vez guardado e carregado máquina de instantâneo, mas meu disco SSD agora está cheio e eu não posso fazer nada. A pasta Snapshots está usando 70 GB e o que quero fazer agora é excluir todos os snapshots e sempre desligar a máquina e depois ligar sem snapshots. Existe alguma maneira de carregar o último estado de instantâneo na máquina e excluir todos os instantâneos?

    
por iWizard 06.08.2013 / 13:05

2 respostas

2

A capacidade de excluir todos os instantâneos foi solicitada no aprimoramento & bug tracker , e também nos fóruns do Virtualbox . Infelizmente, AFAIK, isso ainda não é possível fazer; out-of-the-box.

Existe, no entanto, uma solução!

Na forma de algum código-fonte Python e XAML: GUI de exclusão de instantâneos do VirtualBox .

Você precisará compilar isso em um arquivo .exe para executá-lo. Informações sobre como fazer isso podem ser encontradas no Stack Overflow: Compilando um WPF IronPython projeto para exe .

O autor da ferramenta acredita que ela também seria compatível com os hosts OS X e Linux.

    
por 06.08.2013 / 13:25
0

Esta resposta funciona, mas é um pouco mais bruta do que a alternativa GUI (que 5 anos depois, ainda não foi portada para funcionar em nada além do Windows). Isso funcionará no BSD, Linux, Mac, mas não no Windows (sem o Cygwin). ** Corra por sua conta e risco **

DEBUG=true; PROMPT=true

vbox_delete_all_snapshots() { 
  vboxmanage snapshot "$1" list | 
    tac |perl -lane 'print $1 if /UUID: ([a-z0-9-]+)/' |
    xargs ${PROMPT:+-p} -n1 ${DEBUG:+echo} vboxmanage snapshot "$1" delete
  if $DEBUG && [ $? = 0 ] ; then
    echo "The above commands were NOT run. Unset DEBUG (and PROMPT if you feel lucky) to do so."
  fi
}
read -p"Enter the name of the VM (or its ID): " vmname; vbox_delete_all_snapshots "$vmname"

Advertências

  • O Linux irá reclamar se não houver instantâneos. Se você estiver usando Linux / GNU, você pode adicionar a opção -r ao comando xargs
  • Para realmente executar os comandos, execute unset DEBUG . Para executar os comandos sem um prompt para cada um, execute unset PROMPT .
  • Isso deve lidar com uma "árvore" normal de instantâneos, mas testei apenas no caso em que cada instantâneo tinha exatamente 0 ou 1 filho.

Saída de amostra

Deleting snapshot 'B5' (a02cb9e8-c5be-425d-9bcd-806d72e5a083)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'B4' (422b29b8-cf79-4c92-a415-a08c1d3dd5a0)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'B3' (c1ed469f-ffc3-4cb8-81fe-bbf6581e5858)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'b2' (c0fa9d90-6293-46e5-bcd7-25f2b36f95c4)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'B1' (894147cb-2cc0-48e3-86c7-bec156da762a)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Deleting snapshot 'test' (44a69565-1354-4b98-a2cf-64fd7caa6c56)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
    
por 10.10.2018 / 12:31