Linux

ioctl 分區問題

  • August 29, 2022

該文件有一個路徑,我通過 ioctl - 發出寫入磁碟記憶體請求ioctl(fd, SG_IO, &ioHdr)

printk:將 ioctl 2285 發送到分區!?如何找出一個分區屬於哪個塊設備?我想用磁碟路徑替換分區路徑。

一般來說,誰說分區屬於單個塊設備?通常,它使用某種設備管理器(例如 mdraid、lvm)跨越多個磁碟。

無論如何,如果它在單個塊設備上:

你讀/sys/block/nvme0n1/dev;這會給你major:minor一種資訊。你的“母設備”就是major:0;因此,您可以閱讀/sys/dev/block/${major}:0/device以獲取設備的“規範名稱”。

如果(這是一個強大的 if!)/dev 中有一個條目,它的主要,次要為${major},0.

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