分区的ioctl问题

分区的ioctl问题

有一个文件的路径,我通过 ioctl - 发出写入磁盘缓存请求ioctl(fd, SG_IO, &ioHdr)

printk:发送 ioctl 2285 到分区!?如何找出分区属于哪个块设备?我想用磁盘路径替换分区路径。

答案1

一般来说,谁说分区属于单个块设备?通常,它是使用某种设备管理器(例如 mdraid、lvm)跨多个磁盘进行扩展的东西。

无论如何,如果它在单个块设备上:

你读/sys/block/nvme0n1/dev;这会给你一种major:minor信息。那么您的“母设备”就是major:0;因此,您可以阅读/sys/dev/block/${major}:0/device以获取设备的“规范名称”。

如果(这是一个很强的 if!) /dev 中有一个条目,它的主要、次要为${major},0

相关内容