Làm thế nào để làm cho hệ thống tập tin ext4 thưa thớt?


10

Tôi đang sử dụng Linux làm hệ điều hành khách trong VirtualBox. Tôi đã xóa số lượng lớn các tập tin từ hệ thống tập tin của nó. Bây giờ tôi muốn thu nhỏ tệp hình ảnh hệ thống tập tin (vdi). Thu hẹp hoạt động bằng cách nén hình ảnh hệ thống tập tin bất cứ nơi nào nó có giá trị "null" trong đĩa.

Có vẻ như một ứng dụng có tên zerofree có thể ghi "null" vào không gian trống của hệ thống tập tin theo cách mà nó trở nên thưa thớt. Nhưng các hướng dẫn nói rằng nó chỉ hoạt động trên ext2 / ext3. Tôi có ext4 trên hệ điều hành khách của tôi.

  1. Tại sao nó không hoạt động trên ext 4 (lý do được trích dẫn là "phạm vi", nhưng ai đó có thể làm sáng tỏ hơn về nó)?

  2. Nó có hoạt động không, nếu tôi gắn ext 4 như ext 3 và sau đó là ext 4 ?

  3. Bất kỳ công cụ nào khác có thể làm điều tương tự như zerofree trên máy lẻ?


2
Theo liên kết ở đó, zerofree hoạt động trên ext4.
psusi

Tôi không chắc liệu nó có hoạt động vào thời điểm của bạn hay không, nhưng trang này nói rằng nó hỗ trợ ext4
phuclv

Câu trả lời:


23

Trang bạn tham khảo ( http://intgat.tigress.co.uk/rmy/uml/index.html ) nêu rõ:

The utility also works on ext3 or ext4 filesystems.

Vì vậy, tôi không chắc chắn nơi bạn nhận được rằng nó không hoạt động trên các hệ thống tập tin ext4.

Lưu ý rằng tiện ích zerofree khác với bản vá kernel zerofree được đề cập trên cùng một trang (mà thực sự dường như không có phiên bản cho ext4).

Cập nhật: Ít nhất là trong trường hợp VirtualBox, tôi không nghĩ bạn cần tiện ích này. Trong thử nghiệm của tôi, trên một bản cài đặt Ubuntu 10.04 trên ext4, bạn có thể loại bỏ hệ thống tập tin như vậy:

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

... Đợi đĩa ảo lấp đầy, sau đó

$ rm test.file

và tắt VM. Sau đó, trên máy chủ VirtualBox của bạn làm:

$ VBoxManage modifyhd --compact yourImage.vdi

và bạn sẽ phục hồi tất cả các không gian chưa sử dụng.


Cảm ơn vì đã trả lời. Trang chủ của zerofree không chỉ định ext4, đó là lý do tại sao tôi cần một giải pháp thay thế.
rajaganesh87

1
Giải pháp thay thế được đề xuất (dd if = / dev / zero of = test.file) đã làm việc cho tôi! Đơn giản hơn nhiều so với các giải pháp khác.
Pisu

3
Đây phải là câu trả lời được chấp nhận. Hoạt động rất đẹp.
Chris Pratt

Làm một syncsau dd.
Ignis

ddý tưởng làm việc cho tôi quá. Làm tốt lắm!
Stefan

1

Bạn có thể sử dụng e2fsprogs, có một phiên bản có thể sử dụng với ext4.

Làm cho mình siêu người dùng:

# su

Ngắt kết nối ổ đĩa của bạn:

# umount /dev/sda1

Xóa nhật ký ổ đĩa của bạn:

# tune2fs -O ^has_journal /dev/sda1

Và sau đó thay đổi kích thước hệ thống tập tin của bạn:

# resize2fs /dev/sda1 30G


Cảm ơn bạn đã trả lời, nhưng tôi không muốn thu nhỏ phân vùng mà là hình ảnh hệ thống tập tin (vdi) của khách.
rajaganesh87
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.