Jak zmniejszyć rozmiar dynamicznego dysku VDI w Virtualbox
Czy odniosłeś wrażenie że twój dynamiczny dysk VDI w Virtualbox rozrasta się do rozmiarów przekraczających faktyczne zapisane dane?
Nasz dysk dynamiczny startuję od 0, a podczas zapisu powiększa się o nowe dane, skasowanie danych wewnątrz maszyny wirtualnej nie spowoduje jednak automatycznego zmniejszenia się dysku wirtualnego.
Jest na to jednak konkretna procedura.
Oto przykładowy dysk VDI i jego rozmiar (ok 40GB)
Z poziomu systemu operacyjnego gościa, zużyte jest ok 20 GB danych.
Aby wykonać procedurę:
Pobieramy sDelete na komputerze gościa:
https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete
i uruchamiamy:
po zakończeniu operacji otrzymamy taki oto komunikat:
z poziomu hosta
vboxmanage modifymedium --compact nazwadysku.vdi
komenda zakończy się błędem, jeżeli w virtualbox mamy "zamontowany" dysk który chcemy skompaktować:
Cannot register the hard disk 'xxx.vdi' {dasdsda} because a hard disk 'xxx.vdi' with UUID {asdasdasdas} already exists VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 179 of file VBoxManageDisk.cpp
Kopiujemy tresć uuid:
{asdasdasdas}
I wydajemy komendę
VBoxManage modifyhd {asdasdasdas} --compact
wynik komendy
efekt końcowy