จะเติมส่วนที่ไม่ได้ใช้ของอิมเมจระบบไฟล์ btrfs ด้วยศูนย์ได้อย่างไร
สำหรับแขก Linux ภายใต้ VMware Workstation
ฉันลองvmware-toolbox-cmd disk shrink /
btrfs ซึ่งติดตั้งเป็นcompress=zstd,noatime,nodiratime,space_cache,ssd,discard
ไฟล์. อย่างไรก็ตามรูปภาพเพิ่งขยายถึงขนาดสูงสุดและไม่สามารถย่อขนาดได้
ดูเหมือนว่า btrfs ที่บีบอัดจะไม่เขียนไฟล์ศูนย์เป็นศูนย์
ฉันพบว่ามีแพทช์ ioctl อยู่ที่ศูนย์เติมที่ https://lwn.net/ml/linux-btrfs/aed736d257f7e91cf3b0cf4d1fdfc247212d8bf7.1524233244.git.dsterba@suse.com/.
ฉันจะโทรBTRFS_CLEAR_OP_ZERO_NOUNMAP
จาก Guest Linux ได้อย่างไร
คำตอบ
เท่าที่ฉันรู้ไม่มีวิธีโดยตรงในการเติมช่องว่างที่ไม่ได้ใช้ของระบบไฟล์ Btrfs ด้วยศูนย์ อย่างไรก็ตามคุณสามารถประสบความสำเร็จในสิ่งเดียวกันโดยเพียงแค่กรอกข้อมูลระบบแฟ้มกับศูนย์ไฟล์เต็มแล้วลบพวกเขา sfill sfill -llz \dev\X
เป็นวิธีหนึ่งที่จะทำว่า: Sfill เป็นส่วนหนึ่งของชุดเครื่องมือลบความปลอดภัย:https://github.com/GIJack/secure_delete.
แต่อย่างที่คุณสังเกตเห็นว่าจะใช้ไม่ได้กับการเปิดใช้งานการบีบอัดระบบไฟล์เนื่องจากไม่มีอะไรที่จะบีบอัดได้ง่ายไปกว่าศูนย์จำนวนมาก คุณต้องติดตั้งระบบไฟล์ใหม่โดยไม่ใช้อ็อพชันการบีบอัด = zstd mount เพื่อให้ทำงาน หรือตั้งค่าแฟล็กไม่มีการบีบอัดเป็นรูทของระบบไฟล์ Btrfs ของคุณด้วยbtrfs property set <object> compression ""
หากระบบของคุณอยู่บนโวลุ่มย่อย Btrfs คุณต้องเมานต์รูทระบบไฟล์ก่อน chattr -c
ธงว่าขณะนี้สามารถลบออกได้ด้วย
อิมเมจ VMWare ไม่ย่อขนาดโดยอัตโนมัติ แต่มีหลายวิธีในการย่อขนาด