dość standardowy scenariusz: zaczęło mi na lapq brakować przestrzeni więc zacząłem szukać co ją kradnie. jednym ze złodziei okazała się maszyna wirtualna z w7 – pomimo, że dysk skonfigurowany był jako 'dynamic’, cała maszyna na vhdx, to wielkość fizyczna jest taka sama, jak wielkość partycji w maszynie.
ładnie zdefragmentowałem dysk, shutdown i optymalizacja:
optimize-vhd <pathTo.vhdx>
nic. ani bajta
optimize-vhd <pathTo.vhdx> -mode full
…nadal nic – nawet bajta /:
czas poszperać. gdzieś na forum znalazłem informację, że jest bug w obsłudze vhdx i lepiej używać vhd. nie wierzę – szukam dalej. znalazłem kolejny ciekawy wpis – że jest błąd przełączniq 'full’ i lepiej używać 'quick’ choć wydaje się to nie mieć sensu. sprawdziłem, zachowuje się zgodnie z przewidywaniami, czyli nie ugryzł ani bajta. na dysq miałem bardzo mało miejsca, pomyślałem, że może optimize-hvd działa jak np. eseutil – tworząc kopię gdzieś w tempie a potem nadpisując. ciekawostka jest taka, że niestety z tej operacji nie ma żadnego raportu – ani w eventvwr, ani na ekranie. skopiowałem plik na dysk zewnętrzny i powtórzyłem próby – bez zmian.
rozwiązanie:
rozwiązanie trochę mnie zaskoczyło. kluczowym jest informacja z technetu:
—Full scans for zero blocks and reclaims unused blocks. (Allowable only if the virtual hard disk is mounted read-only.)
aby kompresja zadziałała prawidłowo, trzeba najpierw podmountować dysk [hę?] w trybie readonly:
Mount-VHD <pathTo.vhdx> -ReadOnly Optimize-VHD <pathTo.vhdx> -Mode Full dismount-vhd <pathTo.vhdx>
spodziewałem się, że przy wyłączonej maszynie mountowanie jest robione dynamicznie albo wręcz niepotrzebne. optymalizacja bez mountowania o niczym nie informuje – a mogłaby… zatem pozostaje wiedzieć (:
eN.
Nie publikuję emaila
luniz