假设我有一个分区 /dev/sdc1,如何获取该分区所属的父块设备(在本例中为 /dev/sdc)?
最好使用 bash 或 C。
lsblk 输出的一些内容:
~:lsblk /dev/sdc
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc 8:32 1 7.4G 0 disk
└─sdc1 8:33 1 7.4G 0 part
但反过来说,当我发出类似这样的命令时,我需要它返回完全相同的完整块设备树:
lsblk /dev/sdc1
注意块设备名称中的分区 1。当我使用该命令时,我得到的只是分区列表:
~:lsblk /dev/sdc1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdc1 8:33 1 7.4G 0 part
这不是我需要的。
答案1
获取父块设备的方法如下:
basename `readlink -f "/sys/class/block/sdc1/.."`
答案2
你可以使用一些答案这里,包括 lsblk 或 sysfs 检查。