GNU/Linux >> Znalost Linux >  >> Linux

Jak převedu obraz disku Linux na řídký soubor?

Za prvé, s řídkými soubory se zachází transparentně, pouze pokud hledáte, nikoli pokud píšete nuly.

Aby to bylo jasnější, příklad z Wikipedie

dd if=/dev/zero of=sparse-file bs=1k count=0 seek=5120

ne napište libovolné nuly, otevře se výstupní soubor, vyhledá (přeskočí) 5 MB a poté zapíše nulu nuly (tedy vůbec nic). Tento příkaz (ne z Wikipedie)

dd if=/dev/zero of=sparse-file bs=1k count=5120

zapíše 5 MB nul a nevytvoří řídký soubor!

V důsledku toho se soubor, který již není řídký, později magicky nestane řídkým.

Za druhé, aby byl soubor se spoustou nul řídký, musíte jej cp

cp --sparse=always original sparsefile

nebo můžete také použít volbu --sparse tar nebo rsync.


Snad nejjednodušší způsob, jak rozložit soubor na místě, by bylo použít fallocate nástroj takto:

fallocate -v --dig-holes {file_name}

fallocate(1) je poskytován balíčkem util-linux na Debianu.


Úprava mé odpovědi pro úplnost:

  1. Balónový prázdný prostor FS s nulami (VAROVÁNÍ:tím se změní obraz disku):

losetup --partscan --find --show disk.img

Předpokládejme, že jako disk je uveden /dev/loop1 a existuje pouze jeden oddíl, jinak to musíme zopakovat pro každý oddíl s připojitelným FS (ignorovat odkládací oddíl atd.).

mkdir -p /mnt/tmp mount /dev/loop1p1 /mnt/tmp dd if=/dev/zero of=/mnt/tmp/tempfile

Nechte to dopadnout do neúspěchu s ENOSPC.

/bin/rm -f /mnt/tmp/tempfile umount /mnt/tmp losetup -d /dev/loop1

  1. Zkopírujte do řídkého obrázku:

'dd' má možnost převést soubor s nulami na řídký soubor:

dd if=disk.img of=disk-sparse.img conv=sparse


Linux
  1. Jak zvýšit počet diskových inodů v Linuxu

  2. Jak převést soubory do kódování UTF-8 v Linuxu

  3. Jak vytvořit řídké soubory v Linuxu pomocí příkazu „dd“.

  1. Jak vymazat volné místo na disku v Linuxu?

  2. Jak připojit obraz disku s více oddíly v Linuxu?

  3. Ukládají se úpravy souborů v Linuxu přímo na disk?

  1. Jak přesunout soubor v Linuxu

  2. Jak formátovat diskové oddíly v Linuxu

  3. Jak převést soubor TAR na soubor ISO