VirtualBox: não preservar as alterações do dispositivo anexado quando snapshot (como?)

1

(isso é semelhante ao meu Como tell virsh: salvar o estado da VM e do vdisk, mas não do disco conectado? mas para o VirtualBox e dispositivos brutos)

Como eu digo ao VirtualBox para NÃO preservar o estado do raw dispositivos quando snapshotting? Detalhes:

  • Eu criei um VMDK na máquina host da seguinte forma:

VBoxManage internalcommands createrawvmdk -filename sdb.vmdk -rawdisk /dev/sdb

e anexado ao convidado.

  • / dev / sdb agora aparece como um arquivo de dispositivo puro no convidado.

  • Minha idéia inteligente: mount / dev / sdb, e qualquer alteração que eu fizer lá será ser preservado em snapshots, já que o VirtualBox não vai salvar o estado de / dev / sdb

  • Eu estava errado. Por padrão, o VirtualBox salvará o estado de / dev / sdb: se você reverter para um instantâneo anterior, qualquer coisa que você fez em / dev / sdb será eliminado.

  • Em outras palavras, meu plano astuto falhou.

  • Existe alguma maneira de fazer isso funcionar? Eu percebo que eu poderia montar / dev / sdb no host e, em seguida, ter o convidado montá-lo ou sshfs-lo ou algo, mas existe uma opção VirtualBox que diz "não Preservar / restaurar / dev / sdb estado quando snapshotting "?

  • Estou tentando usar uma VM para determinar como eu quero instalar o CentOS 7.2, e, idealmente, eu gostaria que o hóspede ficasse tão perto de um verdadeiro sistema quanto possível.

Eu gostaria de agradecer a @gilles por sua excelente resposta, mas acontece que não funciona bem.

Quando encerro, desanexo o / dev / sdb, faço um instantâneo e depois restauro o snapshot e reconecto o / dev / sdb, vejo isso (clique para aumentar):

Basicamente,oVirtualBoxserecusaatocarem/dev/sdb,mesmoseeuoanexar.Emvezdisso,eleusadiscosdiferenciaisparaarmazenarquaisqueralteraçõesqueeufaçaeessasalteraçõessãorevertidasquandoeurestauroascapturasinstantâneas.

VocêpoderealmenteverosdiscosdiferenciaisnoMediaManager:

mas não consigo encontrar uma maneira de fazer algo útil com eles.

Estou deixando meu upvote e checkmark para gilles answer, mas vou voltar a usar métodos mais normais para montar / dev / sdb no guest.

    
por barrycarter 09.12.2016 / 20:59

1 resposta

1

Você deve desmontar o dispositivo antes de fazer o instantâneo. Caso contrário, ao recomeçar, o estado do dispositivo não corresponderia ao estado do cache de disco no kernel guest, o que resultaria em corrupção massiva.

Depois de desmontar o dispositivo, desanexe-o da máquina virtual antes de fazer o instantâneo.

    
por 11.12.2016 / 01:13