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