Если устройство является разделом другого устройства, то / sys / class / block / $ dev
будет содержать файл с именем partition
(содержимое которого является номером раздела).
В этом случае вы можете получить имя родительского устройства с помощью:
basename "$(readlink -f "/sys/class/block/$dev/..")"
Или с помощью zsh
:
echo /sys/class/block/$dev(:A:h:t)
Пример:
$ dev=sda1
$ basename "$(readlink -f "/sys/class/block/$dev/..")"
sda
$ dev=nbd0p1
$ basename "$(readlink -f "/sys/class/block/$dev/..")"
nbd0
Тома LVM совершенно разные, они не разделы , за исключением особого случая, когда они представляют собой одно непрерывное линейное
отображение физического PV.
В таком случае вы можете получить имя этого PV с помощью:
ls "/sys/class/block/$dev/slaves"
Где $ dev
- это что-то вроде dm-2
(которое вы можете получить из "$ (basename" $ (readlink -f / dev / VG / LV) ")"
).