บางครั้งเมื่อปรับขนาดหรือลบล้างพาร์ติชันบนดิสก์ cfdisk จะพูดว่า:
Wrote partition table, but re-read table failed. Reboot to update table.
(สิ่งนี้เกิดขึ้นกับเครื่องมือการแบ่งพาร์ติชันอื่น ๆ ด้วยดังนั้นฉันคิดว่านี่เป็นปัญหาของ Linux มากกว่าปัญหา cfdisk) เหตุใดจึงเป็นเช่นนี้และทำไมบางครั้งมันเกิดขึ้นเท่านั้นและฉันควรทำอย่างไรเพื่อหลีกเลี่ยงปัญหานี้
หมายเหตุ: โปรดสมมติว่าไม่มีพาร์ติชันที่ฉันกำลังแก้ไขเปิดอยู่ติดตั้งหรือใช้งานอยู่
ปรับปรุง:
cfdisk ใช้ioctl(fd, BLKRRPART, NULL)
บอก Linux เพื่ออ่านตารางพาร์ติชันอีกครั้ง สองเครื่องมืออื่น ๆ ที่แนะนำจนถึง ( hdparm -z
DEVICE
, sfdisk -R
DEVICE
) ทำสิ่งเดียวกัน ในทางกลับกันpartprobe
DEVICE
คำสั่งดูเหมือนว่าจะใช้ ioctl ใหม่ที่เรียกว่า BLKPG ซึ่งอาจจะดีกว่า ฉันไม่รู้ (นอกจากนี้ยังกลับไปใช้ BLKRRPART หาก BLKPG ล้มเหลว)
BLKPG ดูเหมือนว่าเป็นการดำเนินการ "พาร์ติชันนี้มีการเปลี่ยนแปลงที่นี่คือขนาดใหม่" การดำเนินการและดูเหมือนpartprobe
ว่ามันจะเรียกว่าเป็นรายบุคคลในทุกพาร์ติชันบนอุปกรณ์ที่ผ่านไปดังนั้นมันควรจะทำงานถ้าพาร์ทิชันที่ไม่ได้ใช้ อย่างไรก็ตามฉันไม่ได้มีโอกาสลอง
man sfdisk
พูดว่า:Since version 2.26 sfdisk no longer provides the -R or --re-read option to force the kernel to reread the partition table. Use blockdev --rereadpt instead.