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

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

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

  • partx -va /dev/sdX
  • kpartx -va /dev/sdX
  • hdparm -z /dev/sdX
  • blockdev --rereadpt /dev/sdX
  • sfdisk -R /dev/sdX(已弃用)
  • partprobe /dev/sdX
  • ...

我不确定这些技术之间的区别,但我认为它们不使用相同的ioctl、喜欢BLKRRPARTBLKPG。所以,那些有什么区别ioctl

答案1


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

BLKPG可以根据需要创建、添加、删除分区(从内核,当然不是在磁盘上)。您必须告诉内核各个分区的偏移量和大小,这意味着您必须事先自己解析分区表。看Linux内核:/include/uapi/linux/blkpg.h

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

相关内容