Linux

塊設備功能標誌是什麼意思?

  • September 9, 2021

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_INFOGENHD_FL_NO_PART_SCAN。用於多路徑設備。

(我送出了一個更新檔以將其添加到核心文件中。)

引用自:https://unix.stackexchange.com/questions/570362