Partition
重讀分區表而不重新啟動?
有時,當調整大小或以其他方式處理磁碟上的分區時,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
*另一方面,該命令似乎使用了一個名為 BLKPG 的新 ioctl,這可能會更好;我不知道。(如果 BLKPG 失敗,它也會退回到 BLKRRPART。)BLKPG 似乎是“此分區已更改;這是新的大小”操作,看起來像是
partprobe
在通過的設備上的所有分區上單獨呼叫它,因此如果各個分區未使用,它應該可以工作。但是,我還沒有機會嘗試。
恕我直言,最可靠/最好的答案是
partprobe /dev/sdX
重讀分區表資訊並不總是有效,但試試
hdparm -z /dev/sda
要麼
sfdisk -R /dev/sda
如果它有效,/proc/partitions 中的值將會改變。