Substituir .vmdk para o VirtualBox no bash?

1

Portanto, eu tenho um adaptador SATA externo e uma VM VirtualBox Windows 10. Eu regularmente permuto e desisto hdds que eu quero que a VM seja capaz de acessar. Agora posso criar o vmdk sem problemas com VBoxManage internalcommands createrawvmdk -filename VMShare/external.vmdk -rawdisk /dev/$part .

Agora, pensei em ser inteligente e escrever um script que substituísse cada instância de external.vmdk quando eu entrasse e saísse de um novo disco rígido. O VirtualBox não gosta disso e relata que o UUID {#} do meio ~/VMShare/external.vmdk não corresponde ao valor {#} armazenado no registro de mídia ( ~/.config/VirtualBox/VirtualBox.xml ).

Agora eu tentei mexer com os arquivos xml para combinar os UUIDs, mas sem sorte. Eu também tentei VBoxManage storageattach Windows --storagectl "SATA" --port 1 --device 0 --type hdd --medium none limpar esse ponto, então recarregue o vmdk, mas recebo o mesmo erro. Eu suspeito que eu preciso atualizar algo de alguma forma, mas eu realmente não tenho certeza qual configuração eu preciso acertar em seguida. Alguma idéia?

    
por coinich 21.12.2015 / 16:26

1 resposta

1

Encontrou a resposta no wiki do Arch!

O comando específico foi VBoxManage closemedium disk VMShare/external.vmdk

Código completo:

# remove old vmdk
echo "Removing old"
eval "VBoxManage storageattach Windows --storagectl "SATA" --port 1 --device 0 --type hdd --medium none"
eval "VBoxManage closemedium disk VMShare/external.vmdk"
eval "rm VMShare/external.vmdk"

# create new vmdk and add it
echo "Creating new"
eval "VBoxManage internalcommands createrawvmdk -filename VMShare/external.vmdk -rawdisk /dev/$part"
eval "VBoxManage storageattach Windows --storagectl "SATA" --port 1 --device 0 --type hdd --medium VMShare/external.vmdk"
    
por 21.12.2015 / 21:08