GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengonversi image disk Linux menjadi file jarang?

Pertama-tama, file jarang hanya ditangani secara transparan jika Anda mencari, bukan jika Anda menulis angka nol.

Untuk membuatnya lebih jelas, contoh dari Wikipedia

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

tidak tidak tulis angka nol apa pun, itu akan membuka file keluaran, mencari (melompati) 5 MB, lalu menulis nol nol (yaitu tidak ada sama sekali). Perintah ini (tidak dari Wikipedia)

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

akan menulis 5MB nol dan tidak akan membuat file jarang!

Akibatnya, file yang sudah non-sparse tidak akan secara ajaib menjadi jarang nanti.

Kedua, untuk membuat file dengan banyak nol kosong, Anda harus cp itu

cp --sparse=always original sparsefile

atau Anda juga dapat menggunakan opsi --sparse dari tar atau rsync.


Mungkin cara termudah untuk memisahkan file adalah dengan menggunakan fallocate utilitas sebagai berikut:

fallocate -v --dig-holes {file_name}

fallocate(1) disediakan oleh paket util-linux di Debian.


Mengedit jawaban saya untuk kelengkapan:

  1. Balon ruang FS kosong dengan nol (PERINGATAN:ini mengubah gambar disk Anda):

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

Asumsikan itu memberikan /dev/loop1 sebagai disk dan hanya ada satu partisi, jika tidak, kita perlu mengulang ini untuk setiap partisi dengan FS yang dapat dipasang di dalamnya (abaikan partisi swap, dll.).

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

Biarkan selesai sampai gagal dengan ENOSPC.

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

  1. Salin ke gambar renggang:

'dd' memiliki opsi untuk mengonversi file dengan nol menjadi file jarang:

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


Linux
  1. Cara Mengonversi File ke Encoding UTF-8 di Linux

  2. Bagaimana cara menghapus ruang disk kosong di Linux?

  3. Bagaimana cara memasang image disk multi-partisi di Linux?

  1. Cara Menambah Nomor Disk Inode di Linux

  2. Cara membuat file sparse di Linux menggunakan perintah 'dd'

  3. Apakah hasil edit file di Linux langsung disimpan ke dalam disk?

  1. Cara memindahkan file di Linux

  2. Cara Memformat Partisi Disk di Linux

  3. Cara mengonversi file TAR menjadi file ISO