Score:0

ไฟล์ .img ที่ติดตั้งจะไม่ล้างพื้นที่ดิสก์เมื่อไฟล์ถูกลบ

ธง cn

ฉันมีความต้องการใช้ไอโหนดมากกว่าปกติในระบบไฟล์ส่วนใหญ่ ดังนั้น ฉันจึงสร้างและติดตั้งระบบไฟล์ ext4 ด้วยการตั้งค่าไอโหนดที่กำหนดเอง:

dd if=/dev/zero of=loop0.img bs=1MB count=5000
สูญเสีย -- ค้นหา -- แสดง `pwd`/loop0.img
mkfs -t ext4 -i 1024 /dev/loop0
เมานต์ /dev/loop0 /mnt

สิ่งนี้จะสร้างไฟล์ 5,000MB บนดิสก์ (ผ่าน ls /mt) แต่เมื่อฉันตรวจสอบโดยใช้ ดีเอฟ มันแสดงว่าดิสก์ไม่ได้ถูกครอบครอง (พื้นที่ดิสก์ไม่เพิ่มขึ้น 5,000MB ) ฉันสงสัยว่าเพราะมันเป็นศูนย์บนดิสก์และดูเหมือนพื้นที่ว่างที่ไม่ได้ใช้

เมื่อดิสก์เต็ม ฉันมีโปรแกรมที่พยายามลบไฟล์ที่เพิ่งใช้งานน้อยที่สุดจนกว่าพื้นที่ว่างในดิสก์จะถูกลบออก ปรากฎว่าแม้จะลบไฟล์ใน /mtมันยังคงลงทะเบียนว่ากินพื้นที่บนดิสก์ของฉันอย่างน้อยตาม ดีเอฟ และการเรียกระบบอื่น ๆ ที่ไม่มีดิสก์

มีวิธีพิเศษที่ฉันต้องการ rm ไฟล์บนดิสก์เสมือนนี้เพื่อลงทะเบียนว่าพื้นที่ว่างหรือไม่ หรือฉันต้องสอบถามเกี่ยวกับพื้นที่ว่างด้วยวิธีที่ไม่ได้มาตรฐาน?

แก้ไข: คำสั่งและเอาต์พุตแบบเต็ม โปรดสังเกตว่าการใช้งานดิสก์สำหรับ /dev/vda1 ไม่เพิ่ม 5,000MB

root@localhost:~# df
ระบบไฟล์ 1K-blocks ใช้อยู่ ใช้% Mounted on
อูเดฟ 490064 0 490064 0% /เดฟ
tmpfs 101092 3188 97904 4% /รัน
/dev/vda1 19343152 2699088 15660656 15% /
tmpfs 505448 0 505448 0% /dev/shm
tmpfs 5120 0 5120 0% /รัน/ล็อค
tmpfs 505448 0 505448 0% /sys/fs/cgroup
tmpfs 101088 0 101088 0% /รัน/ผู้ใช้/0
root@localhost:~# dd if=/dev/zero of=loop0.img bs=1MB count=5000
5,000+0 บันทึกใน
5000+0 บันทึกออก
คัดลอก 5000000000 ไบต์ (5.0 GB, 4.7 GiB), 6.20117 วินาที, 806 MB/วินาที
root@localhost:~# สูญเสีย --find --show `pwd`/loop0.img
/dev/loop0
root@localhost:~# mkfs -t ext4 -i 1024 /dev/loop0
mke2fs 1.44.5 (15-ธ.ค.-2561)
การทิ้งบล็อกอุปกรณ์: เสร็จสิ้น
การสร้างระบบไฟล์ด้วยบล็อก 1220703 4k และ 4884000 ไอโหนด
ระบบไฟล์ UUID: 4f308a54-6ddd-4ef6-b685-c193dfec8b84
การสำรองข้อมูล Superblock ที่จัดเก็บไว้ในบล็อก:
        8176, 24528, 40880, 57232, 73584, 204400, 220752, 400624, 662256,
        1022000

การจัดสรรตารางกลุ่ม: เสร็จสิ้น
การเขียนตารางไอโหนด: เสร็จแล้ว
การสร้างสมุดรายวัน (16384 บล็อก): เสร็จสิ้น
การเขียน superblocks และข้อมูลการบัญชีระบบไฟล์: เสร็จสิ้น

root@localhost:~# เมานต์ /dev/loop0 /mnt
root@localhost:~# df
ระบบไฟล์ 1K-blocks ใช้อยู่ ใช้% Mounted on
อูเดฟ 490064 0 490064 0% /เดฟ
tmpfs 101092 3216 97876 4% /รัน
/dev/vda1 19343152 2769404 15590340 16% /
tmpfs 505448 0 505448 0% /dev/shm
tmpfs 5120 0 5120 0% /รัน/ล็อค
tmpfs 505448 0 505448 0% /sys/fs/cgroup
tmpfs 101088 0 101088 0% /รัน/ผู้ใช้/0
/dev/loop0 3594900 45080 3289556 2% /นาที
Tom Yan avatar
in flag
โปรดทราบว่าเมื่อคุณใช้ `dd if=/dev/zero` โดยไม่มี `conv=sparse` เพื่อสร้างอิมเมจ การใช้งานระบบไฟล์ (ของระบบไฟล์ที่ประกอบด้วยอิมเมจ) จะเพิ่มขึ้นมากน้อยเพียงใดนั้นอาจขึ้นอยู่กับระบบไฟล์โดยเฉพาะ หากคุณต้องการให้รูปภาพเป็นไฟล์กระจัดกระจาย คุณสามารถใช้ `truncate' เพื่อสร้างได้
Score:0
ธง in

คุณสามารถใช้ได้ เฟิร์สทริม:

$rm /tmp/test.img
rm: ไม่สามารถลบ '/tmp/test.img': ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
$ truncate -s 1G /tmp/test.img
$ sudo สูญเสีย --show -f /tmp/test.img 
/dev/loop0
$ sudo mkfs.ext4 -E root_owner=1,000:1000 /dev/loop0
mke2fs 1.46.2 (28-ก.พ.-2564)
การทิ้งบล็อกอุปกรณ์: เสร็จสิ้น                            
การสร้างระบบไฟล์ด้วยบล็อก 262144 4k และไอโหนด 65536
ระบบไฟล์ UUID: 70f9b205-0ada-43b1-8636-36983ad79394
การสำรองข้อมูล Superblock ที่จัดเก็บไว้ในบล็อก: 
    32768, 98304, 163840, 229376

การจัดสรรตารางกลุ่ม: เสร็จสิ้น                            
การเขียนตารางไอโหนด: เสร็จแล้ว                            
การสร้างสมุดรายวัน (8192 บล็อก): เสร็จสิ้น
การเขียน superblocks และข้อมูลการบัญชีระบบไฟล์: เสร็จสิ้น

$ sudo เมานต์ /dev/loop0 /tmp/meh/
$ openssl enc -pbkdf2 -aes-256-ctr -in /dev/zero -pass ไฟล์:/dev/urandom -nosalt 2>/dev/null | dd of=/tmp/meh/fill iflag=count_bytes count=768M
1572864+0 บันทึกใน
1572864+0 บันทึกออก
คัดลอก 805306368 ไบต์ (805 MB, 768 MiB), 2.15669 วินาที, 373 MB/วินาที
$ sudo umount /tmp/meh/
$ sudo เมานต์ /dev/loop0 /tmp/meh/
$ rm /tmp/meh/เติม 
$ sudo umount /tmp/meh/
$ sudo เมานต์ /dev/loop0 /tmp/meh/
$ du -h /tmp/test.img 
802M /tmp/test.img
$ sudo fstrim -v /tmp/meh/
/tmp/meh/: 973.4 MiB (1020678144 ไบต์) ถูกตัดแต่ง
$ du -h /tmp/test.img 
33M /tmp/test.img

พื้นที่ที่ไม่ได้ใช้ (ในแง่ของระบบไฟล์บนรูปภาพ) จะถูกแปลงเป็น "รู" (ในไฟล์ ไฟล์กระจัดกระจาย ความรู้สึก).

อย่างที่คุณเดาได้ คุณสามารถเมานต์ด้วย -o ทิ้ง เช่นกัน -- โปรดทราบว่าผลลัพธ์อาจล่าช้าเล็กน้อย

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา