it-swarm-eu.dev

Vymazání nevyužitého prostoru pomocí nul (ext3, ext4)

Jak vyčistit nevyužitý prostor nuly? (ext3, ext4)

Hledám něco chytřejšího než

cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero

Stejně jako FSArchiver hledá "použitý prostor" a ignoruje nepoužívané, ale opačné stránky.

Účel: Chtěl bych komprimovat obrazy diskových oddílů, proto se důrazně doporučuje vyplnit nevyužitý prostor nulami.

Mimochodem. Pro btrfs: Vyčistit nevyužité místo nuly (btrfs)

76

Takový nástroj je zerofree.

Z jeho popisu:

Zerofree najde nepřidělené nenulové bloky v souborovém systému ext2 nebo ext3 a vyplní je nuly. To je užitečné, pokud zařízení, na kterém je tento souborový systém umístěn, je bitová kopie disku. V tomto případě v závislosti na typu bitové kopie disku může být sekundární obslužný program schopen po spuštění zerofree zmenšit velikost bitové kopie disku. Zerofree vyžaduje, aby byl systém souborů odpojen nebo připojen pouze pro čtení.

Obvyklým způsobem, jak dosáhnout stejného výsledku (vynulování nepoužitých bloků), je spustit „dd“, vytvořit soubor plný nul, který zabírá celé volné místo na jednotce, a poté tento soubor smazat. To má mnoho nevýhod, které zerofree zmírňují:

  • je to pomalé
  • způsobí, že se obraz disku (dočasně) zvětší v maximálním rozsahu
  • (dočasně) využívá veškeré volné místo na disku, takže jiné souběžné akce zápisu mohou selhat.

Program Zerofree byl napsán tak, aby byl spouštěn ze systémů GNU/Linux nainstalovaných jako hostující OS uvnitř virtuálního počítače. Pokud tomu tak není, tento balíček téměř určitě nepotřebujete.

AKTUALIZUJTE # 1

Popis balíčku .deb nyní obsahuje následující odstavec, který by naznačoval, že to bude fungovat i s ext4.

Popis: nulové volné bloky ze souborových systémů ext2, ext3 a ext4 Zerofree najde nepřidělené bloky s nenulovou hodnotou v souborovém systému ext2, ext3 nebo ext4 a vyplní je nuly ...

Další použití

Další aplikací tohoto nástroje je komprimovat obrazy disků, které jsou zálohou skutečného disku. Typickým příkladem je výpis SD karty v BeagleBone nebo Raspberry Pi. Po vynulování prázdných mezer lze záložní obrazy komprimovat efektivněji.

82
enzotib

Shrnutí metod (jak je uvedeno v této otázce a jinde) pro vymazání nevyužitého prostoru na ext2/ext3/ext4:

Vynulování nevyužitého prostoru

Souborový systém není připojen

  • Pokud je „disk“ vašeho souborového systému zapnutý (např. Moderní SSD podporující TRIM, a VM soubor, jehož formát podporuje sparseness atd.) A vaše jádro říká, že to blokové zařízení chápe, může použít e2fsck -E discard src_fs zahodit nevyužité místo (vyžaduje e2fsprogs 1.42.2 nebo vyšší).
  • Pomocí zerofree (např. zerofree src_fs) explicitně zapisovat nuly přes nepoužívané bloky.
  • Použitím e2image -rap src_fs dest_fs pouze kopírovat používané bloky (nový souborový systém by měl být na jinak vynulovaném „disku“, vyžaduje e2fsprogs 1.42.9 nebo vyšší).

Souborový systém je připojen

  • Pokud je "disk", na kterém je váš souborový systém zapnutý, tenký (např. Moderní SSD podporující TRIM, a VM soubor, jehož formát podporuje sparseness atd.)), Vaše jádro říká, že jej blokové zařízení chápe a nakonec ovladač souborového systému ext jej podporuje, můžete použít fstrim /mnt/fs/ požádat souborový systém, aby zahodil nevyužité místo.
  • Použitím cat /dev/zero > /mnt/fs/zeros; sync; rm /mnt/fs/zeros (sfill od secure-delete používá tuto techniku). Tato metoda je neefektivní, nedoporučuje ji Ted Ts'o (autor ext4), nemusí vynulovat určité věci a může zpomalit budoucí fscks.

Pokud nebude souborový systém odpojen, získáte lepší výsledky než připojení. Vyřazování má tendenci být nejrychlejší metodou, když je třeba vynulovat mnoho dříve používaného prostoru, ale použití zerofree po procesu vyřazení může někdy vynulovat trochu navíc (v závislosti na tom, jak je vyřazení implementováno na „disku“). .

Zmenšení obrazového souboru

Obrázek je ve vyhrazeném formátu VM)

Budete muset použít vhodný nástroj bitové kopie disku (například qemu-img convert src_image dst_image) umožnit regeneraci vynulovaného prostoru a zmenšit soubor představující obraz.

Obrázek je nezpracovaný soubor

K rozptýlení souboru lze použít jednu z následujících technik (takže spuštění nulového zastavení zabírá místo):

  • cp --sparse=always src_image dst_image.
  • fallocate -d src_image (vyžaduje util-linux v2.25 nebo vyšší).

V těchto dnech může být snazší použít tyto nástroje jako virt-sparify k provedení těchto kroků a více najednou.

Zdroje

33
Anon

sfill od secure-delete to může udělat a několik dalších souvisejících úloh.

např.

sfill -l -l -z /mnt/X

AKTUALIZUJTE # 1

Zdá se, že existuje zdrojový strom, který se zdá být používán v projektu ArchLinux na githubu, který obsahuje zdroj pro sfill, což je nástroj zahrnutý v balíčku Secure-Delete.

Je zde také kopie manuálové stránky sfill:

15
cas

Pokud máte e2fsprogs 1.42.9, můžete použít e2image pro vytvoření obrazu oddílu bez volného místa na prvním místě, takže můžete vynechat krok nulování.

8
psusi

pokud se nechcete uchýlit k dalším nástrojům, měla by být tato metoda rychlejší než cat /dev/zero > /mnt/fs/zeros:

dd if=/dev/zero of="/mnt/fs/filler" bs=10485760
dd if=/dev/zero of="/mnt/fs/filler1" bs=1
rm /mnt/fs/filler
rm /mnt/fs/filler1
0
eadmaster

Můžete použít sfill . Je to lepší řešení pro tenké objemy.

0
user64219