在Linux中,我正在使用blkid api来获取有关磁盘分区的大多数信息。我找不到能够让我找出分区名称与其驱动器之间的映射的API。
例如,磁盘/ dev / sda分为/ dev / sda1和/ dev / sda2。给定两个分区名称,我如何知道它是否来自同一驱动器?通过查找公用前缀(sda),可以查看它们是否属于同一驱动器。但是,这是傻瓜证明吗?在所有情况下都可以使用吗?如果这是卷的一部分怎么办?另外,驱动器名称/卷名称(“ sda”)是否可以包含数字?
我假设应该有一种简单的方法来确定此映射。
lsblk
命令获取sudo lsblk /dev/sda1 -o SIZE,KNAME,PKNAME,MOUNTPOINT,FSTYPE
您可以在选项列表中提供PKNAME,它将提供父设备的内核名称。
第二种方法有点棘手,您可以使用udevadmn
工具找到父磁盘/设备的MINOR:MAJOR对,并在连接的设备中搜索thos MAJOR:MINOR对。
sudo udevadm info --query=property --name=/dev/sda1 | grep ID_PART_ENTRY_DISK
此list是Linux设备列表,已分配的正式注册表Linux操作的设备编号和/ dev目录节点系统。