如何获取属于给定分区的父块设备?

如何获取属于给定分区的父块设备?

假设我有一个分区 /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 检查。

相关内容