Bagaimana cara membuat sistem file ext4 jarang?

10

Saya menggunakan Linux sebagai OS tamu di VirtualBox. Saya menghapus sejumlah besar file dari sistem file-nya. Sekarang saya ingin mengecilkan file gambar sistem file (vdi). Penyusutan bekerja dengan mengompresi gambar sistem file di mana pun ia memiliki nilai "null" di disk.

Tampaknya aplikasi bernama zerofree dapat menulis "null" ke dalam ruang kosong filesystem sedemikian rupa sehingga menjadi jarang. Tetapi instruksi mengatakan itu hanya berfungsi pada ext2 / ext3. Saya memiliki ext4 di OS tamu saya.

  1. Mengapa ini tidak bekerja pada ext 4 (alasan yang dikutip adalah "extents", tetapi bisakah seseorang menjelaskan lebih lanjut tentang itu)?

  2. Apakah akan berfungsi, jika saya memasang ext 4 sebagai ext 3 dan kemudian remount sebagai ext 4 ?

  3. Adakah alat lain yang dapat melakukan hal serupa seperti zerofree on ext?

rajaganesh87
sumber
2
Menurut tautan di sana, zerofree bekerja pada ext4.
psusi
Saya tidak yakin apakah itu bekerja pada waktu Anda atau tidak, tetapi halaman manual mengatakan bahwa ia mendukung ext4
phuclv

Jawaban:

23

Halaman yang Anda referensi ( http://intgat.tigress.co.uk/rmy/uml/index.html ) menyatakan:

The utility also works on ext3 or ext4 filesystems.

Jadi saya tidak yakin dari mana Anda mendapatkan bahwa itu tidak bekerja pada sistem file ext4.

Perhatikan bahwa utilitas zerofree berbeda dari patch kernel zerofree yang disebutkan pada halaman yang sama (yang memang sepertinya tidak memiliki versi untuk ext4).

Pembaruan: Setidaknya dalam kasus VirtualBox, saya pikir Anda tidak memerlukan utilitas ini sama sekali. Dalam pengujian saya, pada stok Ubuntu 10,04 instal pada ext4, Anda dapat menghapus sistem file seperti:

$ dd if=/dev/zero of=test.file

... tunggu hingga disk virtual diisi, lalu

$ rm test.file

dan matikan VM. Kemudian pada host VirtualBox Anda lakukan:

$ VBoxManage modifyhd --compact yourImage.vdi

dan Anda akan memulihkan semua ruang yang tidak digunakan.

pdo
sumber
Terima kasih untuk balasan Anda. Halaman manual zerofree tidak menentukan ext4, itu sebabnya saya butuh alternatif.
rajaganesh87
1
Alternatif yang diusulkan (dd if = / dev / zero of = test.file) bekerja untuk saya! Jauh lebih sederhana dari solusi lain.
Pisu
3
Ini harus menjadi jawaban yang diterima. Bekerja dengan indah.
Chris Pratt
Lakukan syncsetelah dd.
ignis
ddIde juga bekerja untuk saya. Bagus sekali!
Stefan
1

Anda bisa menggunakan e2fsprogs, ada versi yang dapat digunakan dengan ext4.

Jadikan diri Anda superuser:

# su

Lepas drive Anda:

# umount /dev/sda1

Hapus jurnal drive Anda:

# tune2fs -O ^has_journal /dev/sda1

Dan kemudian mengubah ukuran sistem file Anda:

# resize2fs /dev/sda1 30G


sumber
Terima kasih atas balasan Anda, tetapi saya tidak ingin mengecilkan partisi tetapi gambar sistem berkas (vdi) dari tamu.
rajaganesh87