Jak wyczyścić nieużywane miejsce zerami? (ext3, ext4)
Szukam czegoś mądrzejszego niż
cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero
Podobnie jak FSArchiver szuka „używanej przestrzeni” i ignoruje nieużywaną, ale przeciwną stronę.
Cel: Chciałbym skompresować obrazy partycji, dlatego wysoce zalecane jest wypełnienie nieużywanego miejsca zerami.
Btw. Dla btrfs: Wyczyść nieużywane miejsce zerami (btrfs)
filesystems
partition
backup
storage
compression
Grzegorz Wierzowiecki
źródło
źródło
Odpowiedzi:
Takim narzędziem jest
zerofree
.Z jego opisu:
AKTUALIZACJA # 1
Opis pakietu .deb zawiera teraz następujący akapit, który sugerowałby, że będzie to również działało poprawnie z ext4.
Inne zastosowania
Inną aplikacją tego narzędzia jest kompresja obrazów dysków, które są kopią zapasową dysku rzeczywistego. Typowym tego przykładem jest zrzut karty SD w BeagleBone lub Raspberry Pi. Po wyzerowaniu pustych przestrzeni obrazy zapasowe można kompresować bardziej wydajnie.
źródło
dd
metodą z pierwotnego pytania, ponieważ nie działa na zamontowanych systemach plików.zerofree
na Astralinux (oparty na Debianie)…Podsumowanie metod (jak wspomniano w tym pytaniu i gdzie indziej), aby wyczyścić nieużywane miejsce na ext2 / ext3 / ext4:
Zerowanie nieużywanego miejsca
System plików nie jest podłączony
e2fsck -E discard src_fs
do odrzucenia nieużywanego miejsca (wymaga e2fsprogs 1.42.2 lub wyższy).zerofree src_fs
) Do jawnego pisania zer na nieużywanych blokach.e2image -rap src_fs dest_fs
tylko do kopiowania używanych bloków (nowy system plików powinien znajdować się na „zerowanym” dysku, wymaga e2fsprogs 1.42.9 lub nowszego).System plików jest zamontowany
fstrim /mnt/fs/
poprosić system plików o odrzucenie nieużywanego miejsca.cat /dev/zero > /mnt/fs/zeros; sync; rm /mnt/fs/zeros
(sfill
z bezpiecznego usuwania używa tej techniki). Ta metoda jest nieefektywna, niezalecana przez Teda Ts'o (autora ext4), może nie zerować pewnych rzeczy i może spowolnić przyszłefsck
.Odmontowanie systemu plików da lepsze wyniki niż zamontowanie go. Odrzucanie jest zwykle najszybszą metodą, gdy wiele wcześniej wykorzystywanego miejsca wymaga wyzerowania, ale użycie
zerofree
po procesie odrzucania może czasem wyzerować trochę więcej (w zależności od tego, w jaki sposób odrzucenie jest realizowane na „dysku”).Zmniejszanie pliku obrazu
Obraz jest w dedykowanym formacie VM
Musisz użyć odpowiedniego narzędzia obrazu dysku (np.
qemu-img convert src_image dst_image
), Aby umożliwić odzyskanie zerowanego miejsca i umożliwić zmniejszenie pliku reprezentującego obraz.Obraz jest plikiem surowym
Aby rozrzedzić plik, można zastosować jedną z następujących technik (więc zerowanie przestaje zajmować miejsce):
cp --sparse=always src_image dst_image
.fallocate -d src_image
(wymaga util-linux v2.25 lub wyższej).W dzisiejszych czasach może być łatwiej użyć narzędzia takiego jak virt-sparsify, aby wykonać te czynności i wiele więcej za jednym razem.
Źródła
zerofree
źródło
sfill
z bezpiecznego usuwania można to zrobić i kilka innych powiązanych zadań.na przykład
AKTUALIZACJA # 1
Istnieje drzewo źródłowe, które wydaje się być używane przez projekt ArchLinux na github, który zawiera źródło, dla
sfill
którego jest narzędziem zawartym w pakiecie Secure-Delete.Kopia
sfill
strony podręcznika użytkownika znajduje się tutaj:źródło
Jeśli masz e2fsprogs 1.42.9, możesz
e2image
w pierwszej kolejności utworzyć obraz partycji bez wolnego miejsca, dzięki czemu możesz pominąć krok zerowania.źródło
e2image -ar /dev/foo1 | gzip > fs.img.gz
lub niektóre z jego odmian. Dołącz,-f
aby użyć go na zamontowanym fs.Możesz użyć
sfill
. To lepsze rozwiązanie dla cienkich tomów.źródło
jeśli nie chcesz korzystać z dodatkowych narzędzi, ta metoda powinna być szybsza niż
cat /dev/zero > /mnt/fs/zeros
:źródło
cat
? (Nie, argument wielkości blokudd
nie pomaga)dd
przyspiesza. W rzeczywistości prawdopodobniecat
przyspiesza. Rozmiar bloku jest ważny tylko w celu zminimalizowania obciążenia wywołaniami systemowymi i zoptymalizowania użycia pamięci podręcznej procesora. Z górą wywołania systemowego wchodzisz w obszar malejących zwrotów. Pamięć podręczna zaczyna boleć powyżej, powiedzmy, 1 MB. Podczas pracy na prawdziwych dyskach i tak jesteś związany we / wy, a kwestia ta jest w większości dyskusyjna. Spróbuj samodzielnie go przetestować.