强制重读分区表:BLKRRPART 和 BLKPG ioctl 之间的区别?(Linux)

Tot*_*tor 10 linux partition sfdisk hdparm

当我希望 Linux 在不重启的情况下考虑新创建的分区时,我有几个工具可用于强制刷新内核“分区缓存”:

  • partx -va /dev/sdX
  • kpartx -va /dev/sdX
  • hdparm -z /dev/sdX
  • sfdisk -R /dev/sdX
  • partprobe /dev/sdX
  • ...

我不确定这些技术之间的区别,但我认为它们不使用相同的ioctl,例如BLKRRPARTBLKPG。那么,它们之间有ioctl什么区别呢?

Ron*_*dom 8


BLKRRPART 告诉内核重新读取分区表。 man 4 sd

随着BLKPG你可以创建,添加,删除分区,请你(从内核,而不是当然的磁盘)。您必须告诉内核单个分区的偏移量和大小,这意味着您必须事先自己解析分区表。参见Linux 内核:/include/uapi/linux/blkpg.h

我个人使用partprobe(parted of parted),它使用后一种方法,可能是为了支持内核不支持的分区表。