Linux
塊設備功能標誌是什麼意思?
sysfs 中的 Linux 塊設備有一個
capability
文件,部分記錄在此處。嗯,有一個記錄在案。正如
genhd.h
它所暗示的那樣,還有其他的。有沒有關於它們的文件,或者有人知道它們的意思嗎?為方便起見,在此列出:
- GENHD_FL_REMOVABLE
- GENHD_FL_CD
- GENHD_FL_UP
- GENHD_FL_SUPPRESS_PARTITION_INFO
- GENHD_FL_EXT_DEVT
- GENHD_FL_NATIVE_CAPACITY
- GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE
- GENHD_FL_NO_PART_SCAN
- GENHD_FL_HIDDEN
進一步來說,
可拆卸的?像可移動 USB 驅動器?與 /sys/block/*/removable 的關係?多餘的?
什麼是擴展開發?
抑制分區?
沒有部分掃描?與抑制分區不同?
向上?
光碟?就像“這是一個 CD 驅動器”?為什麼?意味著別的嗎?
本機容量?
具有諷刺意味的是,不再使用唯一記錄在案的標誌!其他的含義如下:
GENHD_FL_REMOVABLE
:塊設備提供對可移動媒體的訪問。塊設備不會出現或消失,具體取決於媒體的可用性。這適用於例如 CD-ROM 驅動器(塊設備始終存在),但不適用於行為類似於 USB 儲存的設備(其中塊設備僅在驅動器連接時才存在)。GENHD_FL_CD
: 塊設備是一種 CD-ROM 類型的設備。影響對CDROM_GET_CAPABILITY
ioctl
.GENHD_FL_UP
:表示塊設備“up”,與網路介面的含義類似。這主要用於與其他塊設備子系統同步,以避免移除競爭。GENHD_FL_SUPPRESS_PARTITION_INFO
:不要/proc/partitions
在輸出中或輸出中 包含分區資訊printk_all_partitions()
(如核心日誌中所示)。用於空塊設備和一些 MMC 設備。GENHD_FL_EXT_DEVT
:驅動支持擴展動態dev_t
,即它想要擴展設備號(BLOCK_EXT_MAJOR
,塊主要259)。這會影響最大分區數。GENHD_FL_NATIVE_CAPACITY
:根據分區表中的資訊,將設備的容量擴展至本機容量;即設備具有被其中一個分區使用的隱藏容量(這是一個使用的標誌,因此本機容量只能解鎖一次)。例如,如果對驅動器進行了分區,則可能會發生這種情況,然後創建了一個覆蓋部分分區的主機保護區域。GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE
:只要寫者持有排他鎖,事件輪詢就會被阻塞。GENHD_FL_NO_PART_SCAN
: 分區掃描被禁用。用於預設設置中的循環設備和一些 MMC 設備。GENHD_FL_HIDDEN
:塊設備被隱藏;它不會產生事件,不會出現在 sysfs 中,也沒有關聯的bdev
. 暗示GENHD_FL_SUPPRESS_PARTITION_INFO
和GENHD_FL_NO_PART_SCAN
。用於多路徑設備。