Jak sprawić, by system plików ext4 był rzadki?

10

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.

  1. Dlaczego nie działa na ext 4 (przytoczony powód to „zakres”, ale czy ktoś może rzucić na to więcej światła)?

  2. Czy to zadziała, jeśli zamontuję ext 4 jako ext 3, a następnie ponownie zamontuję jako ext 4 ?

  3. Jakieś inne narzędzia, które mogą wykonywać podobne czynności jak zerofree na ext?

rajaganesh87
źródło
2
Zgodnie z linkiem, zeroofree działa na ext4.
psusi
Nie jestem pewien, czy to działa w swoim czasie, czy nie, ale podręcznika mówi, że obsługuje ext4
phuclv

Odpowiedzi:

23

Strona, do której się odwołujesz ( http://intgat.tigress.co.uk/rmy/uml/index.html ), stanowi:

The utility also works on ext3 or ext4 filesystems.

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:

$ dd if=/dev/zero of=test.file

... poczekaj, aż dysk wirtualny zapełni się

$ rm test.file

i wyłącz maszynę wirtualną. Następnie na hoście VirtualBox wykonaj:

$ VBoxManage modifyhd --compact yourImage.vdi

a odzyskasz całą niewykorzystaną przestrzeń.

pdo
źródło
Dzięki za odpowiedź. Strona zerofree nie określiła ext4, dlatego potrzebowałem alternatywy.
rajaganesh87
1
Proponowana alternatywa (dd if = / dev / zero of = test.file) działała dla mnie! Znacznie prostsze niż inne rozwiązania.
Pisu,
3
To powinna być zaakceptowana odpowiedź. Działa pięknie.
Chris Pratt
Zrób syncpo dd.
ignis
ddpomysł też dla mnie zadziałał. Ładnie wykonane!
Stefan
1

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
Dzięki za odpowiedź, ale nie chcę zmniejszać partycji, ale obraz systemu plików (vdi) gościa.
rajaganesh87 12.04.11