Lin*_*ser 3 linux block-device linux-kernel
sysfs 中的 Linux 块设备有一个capability文件,部分记录在此处。嗯,有一个记录在案。
正如它所暗示genhd.h的那样,还有其他的。有没有关于它们的任何文档,或者有人知道它们的含义吗?
为方便起见,在此列出:
进一步来说,
可拆卸的?喜欢可移动 USB 驱动器?与 /sys/block/*/removable 的关系?多余的?
什么是扩展开发?
抑制分区?
没有零件扫描?与抑制分区不同?
向上?
光盘?比如“这是一个 CD 驱动器”?为什么?还意味着别的什么吗?
原生能力?
从内核 6.3 开始,该capability文件已被弃用并始终指示 0。
在提出问题时,唯一记录的标志是 \xe2\x80\x99,不再使用!其他的含义如下:
\nGENHD_FL_REMOVABLE:块设备提供对可移动媒体的访问。\n 根据介质的可用性,块设备\xe2\x80\x99 不会出现或消失。例如,这适用于 CD-ROM 驱动器(块设备始终存在),但不适用于行为类似于 USB 存储的设备(其中块设备仅在驱动器连接时才存在)。GENHD_FL_CD:块设备是CD-ROM类型的设备。影响\n对CDROM_GET_CAPABILITY ioctl.GENHD_FL_UP:表示块设备为\xe2\x80\x9cup\xe2\x80\x9d,与网络接口含义相似。这主要用于与其他块设备子系统同步,以避免删除时的竞争。GENHD_FL_SUPPRESS_PARTITION_INFO/proc/partitions: 不要\xe2\x80\x99t 在\n 或\n 的输出中包含分区信息printk_all_partitions()(如内核日志中所示)。用于空块设备和某些 MMC 设备。GENHD_FL_EXT_DEVT:驱动程序支持扩展动态dev_t,\ni.e. 它需要扩展设备号(BLOCK_EXT_MAJOR,主块 259)。这\n会影响最大分区数。GENHD_FL_NATIVE_CAPACITY: 根据分区表中的信息,设备\xe2\x80\x99s 容量已扩展到其原始\n容量;即设备具有由其中一个分区使用的隐藏容量(这是一个使用的标志,以便本机容量仅被解锁一次)。例如,如果对驱动器进行了分区,然后创建了覆盖部分分区的主机保护区,则可能会发生这种情况。GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE:每当写入者持有独占锁时,事件轮询都会被阻止。GENHD_FL_NO_PART_SCAN:分区扫描已禁用。用于默认设置下的\n循环设备和某些 MMC 设备。GENHD_FL_HIDDEN:块设备被隐藏;它不会\xe2\x80\x99t 产生\n事件,\xe2\x80\x99t 不会出现在 sysfs 中,并且\xe2\x80\x99t 不会有关联的\n bdev。暗示GENHD_FL_SUPPRESS_PARTITION_INFO和\nGENHD_FL_NO_PART_SCAN。用于多路径设备。其中大部分已被移除或转移到更合适的位置;仅GENHD_FL_REMOVABLE,GENHD_FL_HIDDEN并GENHD_FL_NO_PART保留(GENHD_FL_NO_PART_SCAN已重命名为GENHD_FL_NO_PART并表示设备不支持分区)。