ฉันใช้ tune2fs แต่ให้ข้อมูลเป็นบล็อกและฉันไม่สามารถรับค่าที่แน่นอนของขนาดรวมของพาร์ติชัน
ฉันได้ใช้ไปfdisk -l /dev/mmcblk0p1
แล้ว แต่ขนาดที่ฉันได้รับจากที่นี่ก็เป็นค่าที่แตกต่างกัน
ฉันจะหาขนาดพาร์ติชันที่แน่นอนได้อย่างไร
ฉันใช้ tune2fs แต่ให้ข้อมูลเป็นบล็อกและฉันไม่สามารถรับค่าที่แน่นอนของขนาดรวมของพาร์ติชัน
ฉันได้ใช้ไปfdisk -l /dev/mmcblk0p1
แล้ว แต่ขนาดที่ฉันได้รับจากที่นี่ก็เป็นค่าที่แตกต่างกัน
ฉันจะหาขนาดพาร์ติชันที่แน่นอนได้อย่างไร
คำตอบ:
คำสั่งคือ:
blockdev --getsize64 /dev/mmcblk0p1
มันให้ผลเป็นไบต์เป็นจำนวนเต็ม 64 บิต มันสอบถามขนาดไบต์ของอุปกรณ์บล็อกตามที่เคอร์เนลเห็นขนาดของมัน
เหตุผลที่ว่าทำไมfdisk -l /dev/mmcblk0p1
ไม่ทำงานคือการที่fdisk
ไม่บางสิ่งที่แตกต่างกันทั้งหมด: มันอ่านในตารางพาร์ทิชัน (= ภาคแรก) ของอุปกรณ์ป้องกันและพิมพ์สิ่งที่มันพบ มันไม่ได้ตรวจสอบอะไรเลยเพียงแค่บอกสิ่งที่อยู่ในตารางพาร์ทิชัน
ไม่ต้องกังวลหากตารางพาร์ติชั่นเสียหายหรืออุปกรณ์บล็อคไม่มี: มันจะพิมพ์คำเตือนว่า checksum ไม่เป็นไร แต่ยังพิมพ์สิ่งที่พบแม้ว่าค่าจะไม่ชัดเจน -sense
นี่คือสิ่งที่เกิดขึ้นในกรณีของคุณ: /dev/mmcblk0p1
ไม่มีตารางพาร์ติชัน ตามที่ชื่อของอุปกรณ์แสดงเป็นพาร์ติชันแรกของฟิสิคัลดิสก์/dev/mmcblk0
อยู่แล้ว ดิสก์นี้มีตารางพาร์ติชันคุณได้ทำการสอบถามด้วยfdisk -l /dev/mmcblk0
มันทำงานได้ (สมมติว่ามีตารางพาร์ติชัน msdos)
fdisk -l /dev/mmcblk0
? ควรบอกขนาดของหนึ่งบล็อกจำนวนรวมของบล็อกบนอุปกรณ์ขนาดของพาร์ติชันและบล็อกเริ่มต้นและสิ้นสุดของแต่ละพาร์ติชัน คุณยังสามารถกำหนดช่วงบล็อกที่ไม่ได้กำหนดให้กับพาร์ติชันใด ๆ จากข้อมูลนั้น
ลอง lsblk
ก็ไม่ต้องใช้ราก:
$ lsblk -b
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 34359738368 0 disk
├─xvda1 202:1 0 1676673024 0 part [SWAP]
└─xvda2 202:2 0 32682016768 0 part /var/spool
-b
พารามิเตอร์บอกว่ามันเอาท์พุทขนาดไบต์
ในการรับค่าที่แน่นอนของขนาดทั้งหมดของการเรียกใช้พาร์ติชัน:
awk '{print $1*512}' /sys/class/block/mmcblk0p1/size
ทางออกของฉัน:
part_dev='/dev/hda2'
total_block=`tune2fs -l $part_dev | awk '/Block count/ {print $3}'`
block_size=`tune2fs -l $part_dev | awk '/Block size/ {print $3}'`
total_size=$(($total_block* $block_size))
echo $total_size
โดยที่/dev/hda2
เป็นพาร์ติชันที่ไม่จำเป็นต้องติดตั้ง มันผ่านการทดสอบกับtune2fs
เวอร์ชั่น 1.42.4