Używam Linuksa jako systemu operacyjnego gościa w VirtualBox. Usunąłem ogromną liczbę plików z jego systemu plików. Teraz chcę zmniejszyć plik obrazu systemu plików (vdi). Zmniejszanie polega na kompresji obrazu systemu plików wszędzie tam, gdzie ma on na dysku wartość „null”.
Wygląda na to, że aplikacja o nazwie zerofree może zapisywać „null” w wolnej przestrzeni systemu plików w taki sposób, że staje się rzadka. Ale instrukcje mówią, że działa tylko na ext2 / ext3. Mam ext4 w moim systemie operacyjnym gościa.
Dlaczego nie działa na ext 4 (przytoczony powód to „zakres”, ale czy ktoś może rzucić na to więcej światła)?
Czy to zadziała, jeśli zamontuję ext 4 jako ext 3, a następnie ponownie zamontuję jako ext 4 ?
Jakieś inne narzędzia, które mogą wykonywać podobne czynności jak zerofree na ext?
źródło
Odpowiedzi:
Strona, do której się odwołujesz ( http://intgat.tigress.co.uk/rmy/uml/index.html ), stanowi:
Więc nie jestem pewien, skąd się bierzesz, że to nie działa na systemach plików ext4.
Zauważ, że narzędzie zerofree różni się od poprawki jądra zerofree wymienionej na tej samej stronie (która w rzeczywistości nie wydaje się mieć wersji dla ext4).
Aktualizacja: Przynajmniej w przypadku VirtualBox, nie sądzę, że w ogóle potrzebujesz tego narzędzia. W moich testach na standardowej instalacji Ubuntu 10.04 na ext4 możesz po prostu wyzerować system plików w następujący sposób:
... poczekaj, aż dysk wirtualny zapełni się
i wyłącz maszynę wirtualną. Następnie na hoście VirtualBox wykonaj:
a odzyskasz całą niewykorzystaną przestrzeń.
źródło
sync
podd
.dd
pomysł też dla mnie zadziałał. Ładnie wykonane!Można użyć
e2fsprogs
, istnieje wersja, która nadaje się do użytku z ext4.Zrób sobie superużytkownika:
# su
Odmontuj dysk:
# umount /dev/sda1
Usuń dziennik z dysku:
# tune2fs -O ^has_journal /dev/sda1
A następnie zmień rozmiar systemu plików:
# resize2fs /dev/sda1 30G
źródło