VirtualBox - jak zwolnić nieużywane miejsce na dysku VDI?

14

Więc jeśli mam pamięć dynamiczną w gościu virtualbox, jak mogę zmniejszyć rozmiar VDI, jeśli jest wiele nieużywanych miejsc w gościu?

Mam na myśli, że wiem, że gość Virtualbox w rzeczywistości ma wielkość około 3 GB, ale plik VDI ma 10 GB, ponieważ raz gość był tak duży. Ale teraz ma tylko 3 GB. Jak mogę zmniejszyć rozmiar VDI? Czyliby to były tylko 3 GB bajtów? (i nie, nie ma żadnych migawek dotyczących gościa)

LanceBaynes
źródło

Odpowiedzi:

15

Spójrz na vboxmanage modyfikuj : pozwala ci uczynić obraz bardziej kompaktowym.

Dzięki opcji --compact można go używać do kompaktowania obrazów dysków, tj. Usuwania bloków zawierających tylko zera. Spowoduje to ponowne zmniejszenie dynamicznie przydzielanego obrazu; zmniejszy fizyczny rozmiar obrazu bez wpływu na logiczny rozmiar dysku wirtualnego. Kompresja działa zarówno w przypadku obrazów podstawowych, jak i obrazów różnic utworzonych jako część migawki.

Aby ta operacja była skuteczna, należy najpierw wyzerować wolne miejsce w systemie gościa za pomocą odpowiedniego narzędzia programowego. W przypadku gości systemu Windows można użyć narzędzia sdelete dostarczonego przez firmę Microsoft. Uruchom sdelete -c na gościu, aby wyzerować wolne miejsce na dysku przed skompresowaniem obrazu dysku wirtualnego. W systemie Linux użyj narzędzia zerofree, które obsługuje systemy plików ext2 / ext3.

Karolos
źródło
1
Użyj sdelete -z nie -c! Zobacz superuser.com/questions/747820/… - opcja -c po prostu nadpisuje losowe dane w celu „bezpiecznego czyszczenia” (niewielkie zużycie dysków SSD).
Luc
6

Bądź ostrożny - w pewnym momencie MS zmieniło znaczenie „-c” (czyste) i „-z” (zero). Aby być bezpiecznym, uruchom „sdelete /?” aby zobaczyć, której opcji należy użyć:

C:\> sdelete /?

SDelete - Secure Delete v1.6
Copyright (C) 1999-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: sdelete [-p passes] [-s] [-q] <file or directory> ...
       sdelete [-p passes] [-z|-c] [drive letter] ...
   -a         Remove Read-Only attribute
   -c         Clean free space
   -p passes  Specifies number of overwrite passes (default is 1)
   -q         Don't print errors (Quiet)
   -s or -r   Recurse subdirectories
   -z         Zero free space (good for virtual disk optimization)
Hornlo
źródło
1
Opcja -c zastępuje losowymi danymi (patrz superuser.com/questions/747820/... ), które nieznacznie zużywają dyski SSD. Użyj -z do zerowania.
Luc