Jak zmniejszyć rozmiar dynamicznego dysku VDI w Virtualbox

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania

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)

Screenshot from 2018-02-20 12-06-23.png

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:

Screenshot from 2018-02-20 12-08-51.png


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

Screenshot from 2018-02-20 13-08-27.png

efekt końcowy


Screenshot from 2018-02-20 13-09-23.png