Tworząc wirtualną maszynę pod jakimkolwiek oprogramowaniem wirtualizacyjnym, przy kroku związanym z tworzeniem wirtualnego dysku, szybko i ochoczo wybieramy tworzenie wirtualnego dysku rozszerzanego dynamicznie:

Robimy tak dlatego, że ten wybór ma baaaaardzo dużą zaletę: możemy utworzyć dysk wirtualny o dużym rozmiarze, a potem wypełniany jest on w ramach potrzeb, i teoretycznie (a dlaczego teoretycznie, to za chwilę do tego wrócimy) zajmuje ten dysk wirtualny tylko tyle miejsca na naszym dysku fizycznym, ile jest zapisanych danych wewnątrz niego (a nie więc tyle, na ile ustalona została wielkość tego dysku wirtualnego – jak w przypadku stałego rozmiaru).
Aczkolwiek, jak już wskazałem, tylko teoretycznie zajmuje on tyle miejsca, ile jest danych w środku. Dlaczego? Gdyż o ile na początku, zaraz po utworzeniu, ten dysk ma coś ok. 2MB faktycznego rozmiaru, i potem wraz z zapisywaniem danych wewnątrz niego, zaczyna się jego rozmiar dynamicznie zwiększać, to w momencie kiedy zostanie usunięta jakaś większa ilość danych, to szybko przekonamy się, że rozmiar tego wirtualnego dysku już się wcale nie zmniejsza. Zwiększa się więc może i dynamicznie, ale zmniejszać, to już niestety nie… A ilość miejsca na naszym dysku fizycznym (szczególnie na SSD), jest cenna…

Czy można coś z tym problemem poradzić? Oczywiście, że tak. Ale samo się niestety to nie zrobi. A czynność jaką musimy wykonać, nazywa się kompaktowaniem wirtualnego dysku twardego.

Niestety w ramach najpopularniejszego oprogramowania do wirtualizacji desktopów, jakim jest Oracle VM VirtualBox, nie jest to procedura na pstryknięcie palcami, i trzeba wiedzieć jak to wykonać, aby wykonać z sukcesem.

Teoretycznie służy do tego polecenie „VBoxManage modifyhd” z parametrem „–compact„, problem jednak w tym, że narzędzie to może pomniejszyć wirtualny dysk wtedy, gdy widzi iż na danym obszarze na jego końcu, znajdują się same „wyzerowane bloki” (tj. z wpisanymi bitami 0).

Stąd więc nie wystarczy tylko wydać w/w polecenie, a trzeba przejść małą procedurę.

Aby nasze rozważania były bardziej namacalne,to w ramach tej procedury, rozważymy przykładowy dysk wirtualny, o aktualnej wielkości 37,67 GB (co pozwoli nam też zobaczyć jak „spektakularne” uzysk można czasem osiągnąć):

 

 

 

 

Najpierw wyrzucamy śmieci z systemu oraz czyścimy pliki tymczasowe

Logicznym pierwszym krokiem, jaki musimy wykonać, będzie odchudzenie danych wewnątrz wirtualnego dysku (wewnątrz wirtualnej maszyny oczywiście), tak aby zostały tam tylko maksymalnie potrzebne aktualnie dane.

W tym celu trzeba przemyśleć i pousuwać to co wiemy, że już potrzebne nam w tej wirtualnej maszynie nie będzie. A jak już powyrzucamy śmieci, o których wiemy, to warto następnie włączyć oczyszczanie plików tymczasowych (także wewnątrz wirtualnej maszyny oczywiście). W tym celu należy uruchomić Eksplorator plików, a następnie kliknąć prawym przyciskiem myszy na dysk, który nas interesuje, i z menu wybrać opcję „Właściwości”:

po czym na zakładce „Ogólne” naciskamy przycisk „Oczyszczanie dysku”:

 

i w oknie, które nam się pojawi naciskamy przycisk „Oczyść pliki systemowe”:

 

zaznaczamy wszystkie pozycje w oknie:

naciskamy przycisk „OK” i czekamy na zakończenie usuwania plików tymczasowych, plików nieużywanych już przez system, itp.

 

 

 

Po odchudzeniu danych na dysku wirtualnym, defragmentujemy ten dysk w wirtualnej maszynie

Jak już odchudziliśmy dysk, to następną ważną czynnością będzie defragmentacja tego dysku. Dzięki temu dane zostaną poprzenoszone na początek dysku, i pozostanie wtedy końcówka dysku już bez zapisanych danych – o ten kawałek jaki zostanie, będzie można pomniejszyć potem dysk wirtualny.

W tym celu, podobnie jak w poprzednim kroku przechodzimy do właściwości dysku (wewnątrz wirtualnej maszyny nadal oczywiście), przechodzimy na zakładkę „Narzędzia”, i tam naciskamy przycisk „Optymalizuj”:

 

a następnie w oknie, które się pojawi, zaznaczamy dysk, który chcemy zdefragmentować, i naciskamy przycisk „Optymalizuj”:

po czym czekamy na zakończenie procesu.

 

 

 

Teraz zerujemy puste sektory powstałe po usunięciu danych i defragmentacji

W tym celu wykorzystamy narzędzie dostępne w ramach tzw. SysInternals o nazwie SDelete, które można znaleźć w tym miejscu. Plik zawarty na stronie oczywiście pobieramy, i następnie rozpakowujemy do wybranej przez nas lokalizacji.

Po pobraniu narzędzia, należy otworzyć wiersz poleceń, przejść do katalogu w którym znajduje się tenże rozpakowany plik, i możemy wydać samo polecenie:

sdelete.exe

gdzie możemy zobaczyć informację odnośnie tego co i jak można za jego pomocą osiągnąć:

 

Analizując pomoc dla narzędzia sdelete, można wysnuć, iż w naszym przypadku należałoby wydać następujące polecenie:

sdelete.exe -z C:

gdzie pod „C:” podstawiamy literę dysku, dla którego chcemy wyzerować puste sektory.

 

Przykładowo:

Teraz zostaje tylko już poczekać, aż sdelete zakończy pracę, i wtedy mamy już dysk wirtualny do kompaktowania.

 

 

 

To teraz w końcu możemy wykonać kompaktowanie dysku

W tym celu w systemie gospodarza już, uruchamiamy wiersz poleceń, przechodzimy do katalogu C:\Program Files\Oracle\VirtualBox (konkretnie do katalogu, gdzie zainstalowaliśmy aplikację VirtualBox – także jak zainstalowaliśmy gdzieś indziej, niż ten podany domyślny, to oczywiście musimy przejść do tego katalogu gdzie my mamy zainstalowaną tą aplikację), wykorzystując polecenie:

cd C:\Program Files\Oracle\VirtualBox

Teraz możemy już wydać polecenie kompaktowania wirtualnego dysku, zgodnie ze schematem:

VBoxManage modifyhd {ścieżka do dysku} --compact

gdzie pod {ścieżka do dysku} podajemy ścieżkę do pliku wirtualnego dysku, który chcemy skompaktować (warto wiedzieć, że ścieżkę do dysku można także uzupełnić przeciągając po prostu plik dysku wirtualnego z eksploratora plików do okna wiersza poleceń).

Przykładowo, dla naszego analizowanego przypadku:

 

po czym teraz możemy sprawdzić, czy wyszedł nam jakiś uzysk po całej tej pracy:

I jak spojrzymy na początek artykułu, jak duży był wtedy tenże plik (37,67 GB), a potem spojrzymy jak wiele wirtualnych maszyn mamy… to okazuje się, że nabycie umiejętności kompaktowania wirtualnych dysków, może być dla nas wiedzą cenną (w sumie to nawet dość dosłownie).

 

 

A jak wygląda sprawa, gdy w wirtualnej maszynie mamy zainstalowany system GNU/Linux (a nie MS Windows)?

A tu już zapraszamy do osobnego artykułu, który można znaleźć tutaj 🙂

 

 

 

Udostępnij, jeśli ci się spodobało: