Điểm:0

Tệp .img được gắn kết không giải phóng dung lượng ổ đĩa khi tệp bị xóa

lá cờ cn

Tôi có yêu cầu sử dụng nhiều inode hơn bình thường trên hầu hết các hệ thống tệp. Do đó, tôi tạo và gắn hệ thống tệp ext4 với cài đặt inode tùy chỉnh:

dd if=/dev/zero of=loop0.img bs=1MB đếm=5000
losstup --find --show `pwd`/loop0.img
mkfs -t ext4 -i 1024 /dev/loop0
gắn kết/dev/loop0/mnt

Điều này sẽ tạo một tệp 5000 MB trên đĩa (thông qua ls / mnt), nhưng khi tôi kiểm tra bằng cách sử dụng df nó hiển thị là đĩa không bị chiếm dụng (dung lượng đĩa không tăng thêm 5000MB ). Tôi nghi ngờ vì nó bị xóa sạch trên đĩa và trông giống như dung lượng chưa sử dụng.

Khi đĩa đầy, tôi có một chương trình cố gắng xóa các tệp ít được sử dụng gần đây nhất cho đến khi loại bỏ áp lực dung lượng ổ đĩa. Chà, hóa ra là mặc dù đã xóa các tệp trong /mnt, nó vẫn đăng ký là chiếm dung lượng trên đĩa của tôi, ít nhất là theo df và các cuộc gọi hệ thống miễn phí đĩa khác.

Vì vậy, có một cách đặc biệt tôi cần phải rừm các tệp trên đĩa ảo này để đăng ký rằng không gian trống? hoặc tôi có cần hỏi về dung lượng trống theo cách không chuẩn không?

Chỉnh sửa: Lệnh và đầu ra đầy đủ, lưu ý rằng việc sử dụng đĩa cho /dev/vda1 không tăng 5000MB.

root@localhost:~# df
Hệ thống tập tin Khối 1K Được sử dụng Có sẵn Sử dụng% Được gắn trên
udev 490064 0 490064 0%/dev
tmpfs 101092 3188 97904 4%/lần chạy
/dev/vda1 19343152 2699088 15660656 15%/
tmpfs 505448 0 505448 0%/dev/shm
tmpfs 5120 0 5120 0%/chạy/khóa
tmpfs 505448 0 505448 0% /sys/fs/nhóm
tmpfs 101088 0 101088 0%/chạy/người dùng/0
root@localhost:~# dd if=/dev/zero of=loop0.img bs=1MB count=5000
5000+0 hồ sơ trong
5000+0 bản ghi ra
Đã sao chép 5000000000 byte (5,0 GB, 4,7 GiB), 6,20117 giây, 806 MB/giây
root@localhost:~# losetup --find --show `pwd`/loop0.img
/dev/loop0
root@localhost:~# mkfs -t ext4 -i 1024 /dev/loop0
mke2fs 1.44.5 (15-Dec-2018)
Loại bỏ khối thiết bị: xong
Tạo hệ thống tệp với 1220703 khối 4k và 4884000 nút
UUID hệ thống tập tin: 4f308a54-6ddd-4ef6-b685-c193dfec8b84
Sao lưu siêu khối được lưu trữ trên các khối:
        8176, 24528, 40880, 57232, 73584, 204400, 220752, 400624, 662256,
        1022000

Phân bổ bảng nhóm: xong
Viết bảng inode: xong
Tạo nhật ký (16384 khối): xong
Viết siêu khối và thông tin kế toán hệ thống tập tin: xong

root@localhost:~# mount /dev/loop0 /mnt
root@localhost:~# df
Hệ thống tập tin Khối 1K Được sử dụng Có sẵn Sử dụng% Được gắn trên
udev 490064 0 490064 0%/dev
tmpfs 101092 3216 97876 4%/lần chạy
/dev/vda1 19343152 2769404 15590340 16%/
tmpfs 505448 0 505448 0%/dev/shm
tmpfs 5120 0 5120 0%/chạy/khóa
tmpfs 505448 0 505448 0% /sys/fs/nhóm
tmpfs 101088 0 101088 0%/chạy/người dùng/0
/dev/loop0 3594900 45080 3289556 2%/mnt
Tom Yan avatar
lá cờ in
Lưu ý rằng khi bạn sử dụng `dd if=/dev/zero` mà không có `conv=sparse` để tạo hình ảnh, mức độ sử dụng hệ thống tệp (của hệ thống tệp bao gồm hình ảnh) sẽ tăng lên có thể tùy thuộc vào từng hệ thống tệp. Nếu bạn vẫn muốn hình ảnh là một tệp thưa thớt, bạn chỉ cần sử dụng `truncate` để tạo nó.
Điểm:0
lá cờ in

Bạn có thể dùng fstrim:

$ rm /tmp/test.img
rm: không thể xóa '/tmp/test.img': Không có tệp hoặc thư mục như vậy
$ truncate -s 1G /tmp/test.img
$ sudo losstup --show -f /tmp/test.img 
/dev/loop0
$ sudo mkfs.ext4 -E root_owner=1000:1000 /dev/loop0
mke2fs 1.46.2 (28-Feb-2021)
Loại bỏ khối thiết bị: xong                            
Tạo hệ thống tập tin với 262144 khối 4k và 65536 nút
UUID hệ thống tập tin: 70f9b205-0ada-43b1-8636-36983ad79394
Sao lưu siêu khối được lưu trữ trên các khối: 
    32768, 98304, 163840, 229376

Phân bổ bảng nhóm: xong                            
Viết bảng inode: xong                            
Tạo nhật ký (8192 khối): xong
Viết siêu khối và thông tin kế toán hệ thống tập tin: xong

$ sudo gắn kết /dev/loop0 /tmp/meh/
$ openssl enc -pbkdf2 -aes-256-ctr -in /dev/zero -pass file:/dev/urandom -nosalt 2>/dev/null | dd of=/tmp/meh/fill ifflag=count_bytes đếm=768M
1572864+0 bản ghi trong
1572864+0 ghi ra
Đã sao chép 805306368 byte (805 MB, 768 MiB), 2,15669 giây, 373 MB/giây
$ sudo umount /tmp/meh/
$ sudo gắn kết /dev/loop0 /tmp/meh/
$ rm /tmp/meh/điền 
$ sudo umount /tmp/meh/
$ sudo gắn kết /dev/loop0 /tmp/meh/
$ du -h /tmp/test.img 
802M /tmp/test.img
$ sudo fstrim -v /tmp/meh/
/tmp/meh/: 973,4 MiB (1020678144 byte) được cắt bớt
$ du -h /tmp/test.img 
33M /tmp/test.img

Không gian không sử dụng (về hệ thống tệp trên hình ảnh) sẽ được chuyển đổi thành "lỗ hổng" (trong tập tin thưa thớt cảm giác).

Như bạn có thể đoán, bạn có thể gắn kết với -o loại bỏ đồng thời -- chỉ cần lưu ý rằng kết quả có thể bị chậm một chút.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.