Имея UUID логического тома, узнайте, смонтирован ли он и где.
sudo lvs -o vg_name,name,uuid
Это позволит получить список всех известных логических томов с их UUID, именами и именами содержащих их групп томов. Запомните 'vgname' и 'lvname', соответствующие данному UUID.
findmnt -l | grep ' /dev/\S\+'
Простой сценарий:
UUID='B3629a-B11c-4aec-bE1f-rUdk-a6d2-dd0a6bc'
LVName="$(
sudo lvs -o vg_name,name,uuid |
grep "$UUID" |
sed -e 's/^\s*\(\S\+\)\s\+\(\S\+\).*/\1-\2/'
)"
if [ -z "$LVName" ] ; then
echo "Cannot find logical volume with UUID=$UUID"
else
MountPoint="$(
findmnt -l |
grep " /dev/mapper/$LVName" |
awk '{ print $1 }'
)"
if [ -z "$MountPoint" ] ; then
echo "Logical volume /dev/mapper/$LVName with UUID $UUID is not mounted"
else
echo "Logical volume /dev/mapper/$LVName with UUID $UUID is mounted on $MountPoint"
fi
fi
Имена by -id состоят из модели привода вместе с серийным номером, который lsblk
может быть указан для перечисления:
lsblk -o name,model,serial
Вывод этой команды будет выглядеть примерно так:
NAME MODEL SERIAL
sda SAMSUNG HD203WI S1UYJ1VZ500792
├─sda1
└─sda9
sdb ST500DM002-1BD14 W2APGFP8
├─sdb1
└─sdb9
sdc ST500DM002-1BD14 W2APGFS0
├─sdc1
└─sdc9
Для потомков вот более длинная команда с некоторыми часто используемыми столбцами:
sudo lsblk -o name,size,fstype,label,model,serial,mountpoint
Результатом которого может быть:
NAME SIZE FSTYPE LABEL MODEL SERIAL MOUNTPOINT
sda 1,8T zfs_member SAMSUNG HD203WI S1UYJ1VZ500792
├─sda1 1,8T zfs_member storage /home
└─sda9 8M zfs_member
sdb 465,8G btrfs ST500DM002-1BD14 W2APGFP8
├─sdb1 465,8G btrfs
└─sdb9 8M btrfs
sdc 465,8G btrfs ST500DM002-1BD14 W2APGFS0
├─sdc1 465,8G btrfs rpool /
└─sdc9 8M btrfs
Как указано здесь , идентификаторы устройств можно увидеть по ls -l /dev/disk/by-id
.
Итак, ваша задача может быть выполнена, например. чем-то вроде:
lsblk |awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;gsub("[^[:alnum:]]","",dev);printf $0"\t\t";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'
или
lsblk -r|awk 'NR==1{print $0" DEVICE-ID(S)"}NR>1{dev=$1;printf $0" ";system("find /dev/disk/by-id -lname \"*"dev"\" -printf \" %p\"");print "";}'