在 macOS 上从 dev_t 获取设备文件系统路径

Get device filesystem path from dev_t on macOS

如果我在 macOS (Darwin) 上有一个 32 位整数 BSD 设备编号 dev_t(例如 0x1000004),我如何才能获得该设备对应的文件系统路径(例如“/dev/disk1s4 ")?

您必须枚举已安装的文件系统并查找设备 ID 匹配的文件系统。您可以使用 getfsstat() 进行枚举。填充 struct statfs 结构。将每个结构的字段 f_fsid.val[0] 与您要查找的 dev_t 进行比较。如果它们匹配,那么 struct statfs 就是您正在寻找的设备的那个,您可以检查它的其他字段以获取您正在寻找的信息。特别是,f_mntfromname 是设备路径。

find /dev -type b -ls

,并检查 major/minor == {0x1000,4}

的输出

或者:find / -type b -ls如果需要搜索整个文件系统。

顺便说一句:可能会有更多条目,指的是相同的 {major,minor} 组合。