ฉันมีไดรฟ์ (การ์ด SD) ที่มีพาร์ติชั่น ext4 ไม่กี่ตัว แต่ก็มีบางส่วนที่ไม่ได้ถูกจัดสรร fstrim
ยูทิลิตี้เท่านั้นที่สามารถทำงานในระบบแฟ้ม ก่อนที่ฉันจะสร้างล้อใหม่และเขียนมันมียูทิลิตีอื่นที่สามารถตัดพื้นที่ที่ไม่ได้ปันส่วน (หรือที่สามารถตัดช่วงที่ระบุไว้อย่างชัดเจน) ได้หรือไม่
ฉันสามารถตรวจสอบได้ว่าส่วนใหญ่ของพื้นที่ที่ไม่ได้ถูกจัดสรรบนอุปกรณ์ไม่เป็นที่รู้จักในขณะนี้โดยคอนโทรลเลอร์เนื่องจากอย่างที่ฉันสังเกตเห็นว่าในการ์ดใบนี้โดยเฉพาะการอ่านเพื่อตัดพื้นที่คืน 0 กลับมา แต่การสแกนอุปกรณ์แสดง มีข้อมูลขยะเหลืออยู่มากมาย
แก้ไข: hdparm
ฉันมีปัญหาการใช้ ตัวอย่างด้านล่างละทิ้งภาคแรก แต่ฉันเห็นผลลัพธ์เดียวกันโดยไม่คำนึงถึงช่วงที่ฉันระบุ fstrim
ไม่มีปัญหาในอุปกรณ์:
root@ubuntu:~# hdparm --please-destroy-my-drive --trim-sector-ranges 0:1 --verbose /dev/mmcblk0
/dev/mmcblk0:
trimming 1 sectors from 1 ranges
outgoing cdb: 85 0d 06 00 01 00 01 00 00 00 00 00 00 40 06 00
outgoing_data:
00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ioctl(fd,SG_IO): Invalid argument
FAILED: Invalid argument
ฉันกำลังตรวจสอบเพิ่มเติม แต่ไม่มีใครเข้าใจหรือไม่?
blkdiscard
ดูเหมือนจะไม่สามารถใช้ได้ในที่เก็บแพคเกจมาตรฐานของฉัน (Ubuntu 12.04 ดูเหมือนจะไม่มีอยู่ในutil-linux
)
hdparm
ทำงานให้ฉันได้ด้วยเหตุผลบางอย่าง แต่ฉันคว้าแหล่งข้อมูลลินุกซ์จากgithub.com/karelzak/util-linux/tree/stable/v2.23สร้างมันขึ้นมา ( ./autogen.sh ; ./configure ; make blkdiscard
) และมันทำงานได้ดีมาก ยังคงสงสัยเกี่ยวกับhdparm
แต่blkdiscard
ทำในสิ่งที่ฉันต้องการ โบนัส: ไม่จำเป็นต้องสร้างระบบไฟล์ชั่วคราวก่อนคุณสามารถใช้sfdisk -l
เพื่อหาช่องว่างระหว่างพาร์ติชั่นและblkdiscard
ตัดมันได้
blkdiscard
ความสามารถในการทำงานกับตัวเลือกออฟเซ็ต / ความยาว ดังนั้นพาร์ติชันชั่วคราวที่ฉันแนะนำจึงไม่จำเป็น ดี!
blkdiscard
กับพาร์ติชั่นที่ตัดแต่งอุปกรณ์ทั้งหมดได้