有时,当调整大小或以其他方式处理磁盘上的分区时,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
在传递的设备上的所有分区上单独调用它,因此如果未使用单个分区,它应该可以工作。但是,我没有机会尝试。
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.