ฉันจะกำหนดขนาดใหม่สำหรับ resize2fs ได้อย่างไร


22

ฉันต้องการลดขนาดระบบแฟ้ม ext4 เพื่อให้มีที่ว่างสำหรับพาร์ติชันใหม่และพบกับresize2fsโปรแกรม คำสั่งมีลักษณะดังนี้:

resize2fs -p /dev/mapper/ExistingExt4 $size

ฉันควรจะตรวจสอบ$sizeถ้าผมต้องการที่จะลบคุณว่า 15 ลิ่มจากระบบแฟ้ม ext4 ปัจจุบันหรือไม่? ฉันสามารถใช้เอาท์พุตdfอย่างใดได้หรือไม่?

คำตอบ:


39

คุณไม่ควรใช้dfเพราะมันแสดงให้เห็นขนาดตามการรายงานของระบบแฟ้ม (ในกรณีนี้, ext4)

ใช้dumpe2fs -h /dev/mapper/ExistingExt4คำสั่งเพื่อค้นหาขนาดที่แท้จริงของพาร์ติชัน -hทำให้ตัวเลือกdumpe2fsแสดงข้อมูลบล็อก super โดยไม่ต้องมีรายละเอียดที่ไม่จำเป็นอื่น ๆ จำนวนมาก จากการส่งออกคุณต้องนับบล็อกและบล็อกขนาด

...  
จำนวนบล็อก:               19506168  
จำนวนบล็อกสำรอง: 975308  
บล็อกฟรี: 13750966  
ฟรี inodes: 4263842  
บล็อกแรก: 0  
ขนาดบล็อก:                4096  
...

Multiplicating ค่าเหล่านี้จะทำให้ขนาดพาร์ติชันในไบต์ ตัวเลขด้านบนเกิดขึ้นเป็นตัวคูณที่สมบูรณ์แบบ 1024:

$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0

เนื่องจากคุณต้องการลดขนาดพาร์ติชันลง 15 GiB (ซึ่งคือ 15 MiB คูณ 1 KiB):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'
62296032.0

ตามที่resize2fsยอมรับคำต่อท้ายหลายชนิดหนึ่งในนั้นคือK"1024 ไบต์" คำสั่งสำหรับลดขนาดพาร์ติชันเป็น 62296032 KiB จะกลายเป็น:

resize2fs -p /dev/mapper/ExistingExt4 62296032K

หากไม่มีหน่วยตัวเลขจะถูกตีความว่าเป็นหลายส่วนของขนาดบล็อกของระบบไฟล์ (4096 ในกรณีนี้) ดูผู้ชาย resize2fs (8)


3
man resize2fs: ทางเลือกพารามิเตอร์ขนาดอาจต่อท้ายโดยหนึ่งในผู้ออกแบบหน่วยต่อไปนี้: 's', 'K', 'M' หรือ 'G', สำหรับ 512 ไบต์ของเซ็กเตอร์, กิโลไบต์, เมกะไบต์หรือกิกะไบต์ตามลำดับ . อาจจะง่ายกว่าการคำนวณบล็อค
lkraav

1
คุณไม่หายไปkที่resize2fs -p /dev/mapper/ExistingExt4 62296032?
Sopalajo de Arrierez

@SopalajodeArrierez คุณถูกต้องเงินทุนKหายไป หากไม่มีจดหมายนี้ resize2fs ควรบ่นในกรณีของฉันเนื่องจากขนาดใหญ่กว่าดิสก์จริง
Lekensteyn

2
dumpe2fsไม่ได้รายงานขนาดพาร์ติชัน มันรายงานขนาดของระบบไฟล์จริงๆ (ซึ่งเป็นสิ่งที่ดีเพราะอาจเป็นสิ่งที่คุณต้องการ)
Mehrdad
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.