我正在使用网络块设备 (NBD),但找不到关于 NBD_SET_SIZE 所指内容的任何文档。我怀疑它是块设备的大小,然后 NBD_SET_BLKSIZE 是底层设备块大小的提示。那么什么是 NBD_SET_SIZE_BLOCKS?
有没有什么地方可以得到 nbd.h 中定义的所有 ioctl 标志的定义?进行谷歌搜索没有任何结果,并且 nbd.h 不包含有关这些标志的评论。
我正在使用网络块设备 (NBD),但找不到关于 NBD_SET_SIZE 所指内容的任何文档。我怀疑它是块设备的大小,然后 NBD_SET_BLKSIZE 是底层设备块大小的提示。那么什么是 NBD_SET_SIZE_BLOCKS?
有没有什么地方可以得到 nbd.h 中定义的所有 ioctl 标志的定义?进行谷歌搜索没有任何结果,并且 nbd.h 不包含有关这些标志的评论。
你可以在这里阅读代码。
基本上,有两种设置大小的方式:一种是以字节为单位的,另一种是以块为单位的。
前者是 NBD_SET_SIZE。后者需要您执行两个 ioctl,一个设置块大小 (NBD_SET_BLKSIZE),另一个设置块大小 (NBD_SET_SIZE_BLOCKS)。
一旦你理解了名字的来源,这真的不是那么难:-)
我不确定 NBD_SET_SIZE 是否仍受支持,因为我知道的大多数 nbd 实现都使用 NBD_SET_BLKSIZE。