Tôi có một loạt các hình ảnh đĩa, được tạo bằng ddresTHER, trên phân vùng EXT và tôi muốn giảm kích thước của chúng mà không mất dữ liệu, trong khi vẫn có thể gắn kết.
Làm cách nào tôi có thể lấp đầy không gian trống trong hệ thống tệp của hình ảnh bằng các số 0 và sau đó chuyển đổi tệp thành tệp thưa để không gian trống này không thực sự được lưu trữ trên đĩa?
Ví dụ:
> du -s --si --apparent-size Jimage.image
120G Jimage.image
> du -s --si Jimage.image
121G Jimage.image
Điều này thực sự chỉ có 50G dữ liệu thực trên đó, do đó, phép đo thứ hai nên nhỏ hơn nhiều.
Điều này được cho là sẽ lấp đầy không gian trống với số không:
cat /dev/zero > zero.file
rm zero.file
Nhưng nếu các tệp thưa thớt được xử lý trong suốt , nó thực sự có thể tạo ra một tệp thưa thớt mà không ghi bất cứ điều gì vào đĩa ảo, trớ trêu thay tôi không thể biến hình ảnh đĩa ảo thành một tệp thưa. :) Phải không?
Lưu ý: Vì một số lý do, sudo dd if=/dev/zero of=./zero.file
hoạt động khi cat
không có trên hình ảnh đĩa được gắn.
sudo cat /dev/zero > zero.file
không hoạt động vì bash của bạn (chạy như bạn chứ không phải root) thực hiện chuyển hướng trước khi thực hiện sudo
lệnh. Xem unix.stackexchange.com/questions/1416/ Kẻ