Czy istnieje możliwość „defragmentacji” rzadkiego obrazu pakietu i odzyskania (większości) wolnego miejsca?
Oto tło: używam rzadkich pakietów i od czasu do czasu chcę odzyskać od nich miejsce, więc uruchamiam:
hdiutil compact image.sparsebundle
Jednak, jak wyjaśniono na stronie podręcznika, odzyskuje tylko całkowicie nieużywane pliki zespołu, więc w moim przypadku mówi:
Reclaimed 0 bytes out of 90.4 GB possible.
Oczywiście istnieje możliwość skopiowania zawartości tego obrazu do nowego rzadkiego pakietu, który jest następnie używany zamiast tego, ale jest to zarówno kłopotliwe, jak i wymaga wystarczającej ilości wolnego miejsca dla tej operacji.
W międzyczasie dowiedziałem się, że dane wyjściowe polecenia kompaktowego są nieco mylące (obecnie korzystam z systemu OS X 10.5.7), ponieważ czasami podaje on możliwie największy rozmiar, który jest większy niż rozmiar aktualnie zajmowany przez pakiet obrazów na dysku twardym napęd. Nie przyjrzałem się bliżej, ale wynik wydaje się być albo maksymalnym rozmiarem, albo „maksymalnym rozmiarem” - „użytym rozmiarem”.
Odpowiedzi:
Ciekawy!
Z tego, co słyszałem, rzadki pakiet dzieli dane na pasma 8 Mb. Zmiana wielkości pasma może po prostu pomóc, jeśli masz szczęście. To znaczy, nigdy nie dostaniesz w 100% odzyskanego miejsca, ale może lepiej niż to, co dostajesz teraz. (W zależności od danych na obrazie itp.)
Zrobiłem brudny prosty test z dwoma rzadkimi pakietami 500 Mb, jednym z pasmem 8 Mb (domyślnym), a drugim z 1 Mb (najmniejszym dozwolonym rozmiarem z tego, co mogę powiedzieć). Skopiowałem ponad 400 MB plików mp3, a następnie usunąłem każdy inny plik, a następnie uruchomiłem
hdiutil compact
na nich osły.Polecenie przekonwertowania rzadkiego pakietu to
Rozmiar pasma jest w jednostce 512 bajtów. Tak więc powyższy przykład ustawia rozmiar pasma na 512 * 2048 = 1 Mb. Bądź ostrożny, jeśli masz do czynienia z obrazami TimeMachine lub obrazami folderów domowych użytkownika itp. Odchodzisz od ścieżki Apple :) Zachowaj bezpieczną kopię zapasową!
Co do defragmentacji: mam zabawne wrażenie, że równie szybko (lub szybciej!) Wystarczy użyć hdiutil do konwersji pliku sparse na nowy plik rzadki o tym samym formacie. Myślę, że stara się być mądry. Ale nie wiem.
(Zauważ, że defragmentacja rzadkiego pakietu po prostu defragmentuje dane dysku, a nie rzadkie pasma pakietów, chyba że jest to defragmentator obsługujący rzadkie pakiety
hdiutil convert
.źródło
-o
powinny znajdować się bezpośrednio przeddst.sparsebundle
, a niesrc.sparsebundle
(-o
oznacza „wynik”).-encryption
przełącznik do polecenia.Myślę, że możliwe 90,4 GB jest po prostu błędne. Kiedy pobiegłem:
... uwolniło 16 GB miejsca, co jest mniej więcej tym, czego się spodziewałem. Zabawne jest to, że napisano w przybliżeniu „możliwe 800 GB”, czyli znacznie więcej niż pojemność mojego HD. Zakładam więc, że druga liczba to tylko (błędna) liczba teoretyczna.
źródło
@Oscar wskazał nam właściwy kierunek. Ale nie musisz konwertować do 1 MB i mieć kompaktowy rozmiar, mając nadzieję na odzyskanie miejsca.
Zamiast tego po prostu skopiuj pakiet sparsebundle do innego nowego pakietu sparsebundle. To z kolei powoduje defragmentację obrazu. Jednocześnie możesz zmienić system plików, rozmiar, a nawet pasma.
Oto przykład, który zrobiłem niedawno: konwersję obrazu „kodu” o wielkości 20 GB, który synchronizuję między urządzeniami.
Zobacz wszystkie opcje za pomocą
hdiutil create -help
.To polecenie generuje:
Możesz zobaczyć
-attach
opcję zamontowania go pod/Volumes/code
.Uwaga: używam
HSFX
HFS + z rozróżnianiem wielkości liter, ponieważ synchronizuję również obrazy z Linuksem i montuję je. Najprawdopodobniej będziesz chciał użyćHFS+
zamiast tego, ponieważ macOS zwykle nie rozróżnia wielkości liter.Teraz wszystko, co muszę zrobić, to skopiować wszystko do mojej nowej części:
A teraz do porównania:
Tak Mój 15 GB sparsebundle ma teraz 3 GB, jest zdefragmentowany, a zespoły zmienione!
źródło
Nie wiem, jak to zrobić za darmo, ale wierzę, że geniusz Prosoft Drive zrobi to, czego potrzebujesz:
http://www.prosofteng.com/products/drive_genius.php
Montujesz sparsebundle, defragmentujesz go za pomocą Drive Genius, a następnie
polecenie powinno działać.
źródło
Założę się, że dysk, na którym znajduje się rzadki pakiet, ma około 90 GB wolnego miejsca? Ponieważ rzadkie pakiety często mogą rosnąć aż do zapełnienia dysku, miejsce to jest po prostu zgłaszane jako dostępne wolne miejsce ... W Narzędziu dyskowym zobaczysz te same liczby. Rzeczywiście bardzo mylące.
Poniższe informacje mogą dać ci pewien wgląd:
źródło
Miałem problematyczny rzadki pakiet, który twierdził, że 950 GiB jest zajęty z 1024 GiB (mój dysk SSD ma tylko 320 GiB, więc to nie mogło się zdarzyć).
hdi compact
nie pomogłoUruchomiłem „Pierwszą pomoc” z Narzędzia dyskowego na obu pakietach AND i to pomogło - wolny licznik miejsca zaczął pokazywać prawdziwe 20 GiB tak, jak powinien, a następnie
hdi compact
działał bez problemu.źródło