Partition

重讀分區表而不重新啟動?

  • November 7, 2020

有時,當調整大小或以其他方式處理磁碟上的分區時,cfdi​​sk 會說:

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 中的值將會改變。

引用自:https://serverfault.com/questions/36038