Bagaimana cara menghapus ruang yang tidak terpakai dengan nol? (Saya meminta alat untuk filesystem btrfs )
Saya mencari sesuatu yang lebih pintar daripada
cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero
Seperti FSArchiver sedang mencari "ruang bekas" dan mengabaikan situs yang tidak digunakan, tetapi berlawanan.
Tujuan: Saya ingin mengompres gambar partisi, jadi mengisi ruang yang tidak digunakan dengan nol sangat dianjurkan.
Btw. Untuk ext3, ext4: Bersihkan ruang yang tidak digunakan dengan nol (ext3, ext4) . Di sini saya minta btrfs
Klarifikasi "algoritma yang lebih cerdas": Seperti yang saya lihat bahwa "algoritma yang lebih cerdas" menyebabkan kebingungan, di sini saya akhirnya memutuskan untuk menambahkan baris tentang itu. Pembaca yang terhormat, tolong pikirkan sistem file sebagai datastructure. Untuk tujuan penyederhanaan, mari kita bayangkan self-balancing red-black holding tree map, yang digunakan sebagai asosiasi key-> value array, di mana nilainya adalah integer. Sasarannya adalah menghapus semua nilai negatif dengan nol. Algoritma "tidak pintar" akan beralih di atasnya dan menambahkan kunci: pasangan nilai ke peta baru (dengan akhirnya mengubah negatif ke nol). Algoritma pintar hanya akan mendeteksi tempat-tempat di mana nilai-nilai negatif disimpan dan menghapusnya di tempat .
sumber
sfill
sarannya ? Sepertinya tidak memerlukan extX.truncate
dan / ataufallocate
Jawaban:
Berikut adalah repost yang dimodifikasi dan diperluas dari jawaban saya untuk pertanyaan Anda sebelumnya:
sfill
darisecure-delete
paket dapat melakukan apa yang Anda inginkan.Tidak seperti zerofree (yang hanya bekerja dengan sistem file ext2, ext3, dan ext4), sfill akan bekerja dengan sistem file apa pun.
misalnya
Halaman beranda sfill / secure-delete sekarang tampaknya telah menghilang, tetapi dipaket untuk debian dan ubuntu. mungkin distro lain juga. jika Anda memerlukan kode sumber, itu dapat ditemukan di arsip debian jika Anda tidak dapat menemukannya di tempat lain.
CATATAN: sfill hanya berfungsi pada sistem file yang terpasang. Jika Anda nol-mengisi file gambar dari sistem host daripada dari dalam VM, Anda harus me-mount gambar fs pada host. Metode yang tepat bervariasi tergantung pada jenis file gambar apa itu (mis. Qcow2 atau mentah).
Memasang gambar 'mentah' mudah dan langsung. Cukup gunakan
kpartx
pada file gambar untuk membuat perangkat loopback dan / dev / mapper / entri untuk setiap partisi kemudian dapat dipasang secara individual.inilah skrip parsial yang dimodifikasi dari fragmen skrip yang saya gunakan untuk me-mount gambar hard-disk freedos net-bootable (digunakan untuk pembaruan bios pada mesin di mana flashrom tidak berfungsi):
CATATAN: mengasumsikan setiap partisi dalam gambar dapat dipasang. benar dalam kasus penggunaan saya (gambar hd freedos dengan satu partisi). tidak benar jika salah satu partisi, katakanlah, bertukar ruang. Mendeteksi partisi seperti itu dan menggunakan dd ke nol partisi swap dibiarkan sebagai latihan untuk pembaca :)
Metode ini, atau varian dari itu, harus bekerja untuk volume LVM juga.
Jika gambar Anda qcow maka Anda dapat menggunakan
qemu-nbd
alat dariqemu-utils
paket, yang akan menyajikan file gambar dan partisi-partisi sebagai perangkat blok jaringan - misalnya / dev / nbd0 / dev / ndb0p1 - yang dapat digunakan dengan cara yang mirip dengan / perangkat dev / mapper di atas.Mungkin lebih mudah dan lebih mudah (tetapi lebih memakan waktu) untuk digunakan
qemu-img
untuk mengkonversi dari qcow ke mentah, menggunakan metode untuk mentah di atas, dan kemudian mengubah gambar mentah yang dimodifikasi kembali ke qcow2 terkompresi. Ini mungkin akan menghasilkan gambar yang sedikit lebih kecil daripada menggunakan qemu-nbd karena Anda akan mengompres gambar qcow2 yang baru saat sedang dibuat.sumber
Cara yang benar dan "pintar" untuk membersihkan ruang kosong menggunakan:
Gunakan ini pada sistem file yang terpasang.
Penting untuk dicatat bahwa tidak ada keuntungan keamanan untuk ini. Jika Anda ingin menghapus disk Anda untuk keamanan, buat cadangan file Anda, nol seluruh disk dengan perintah seperti "rusak" dan kemudian kembalikan file Anda.
Namun solusinya berfungsi dengan baik jika disk Anda tipis pada sistem file yang jarang dan Anda ingin memulihkan ruang yang tidak digunakan.
sumber