我想列出与逻辑卷关联的所有物理卷。
我知道lvdisplay
,,pvscan
可以pvdisplay -m
胜任这项工作。但我不想使用这些命令。有没有其他方法可以不使用lvm2包命令来做到这一点?
关于比较主要设备和次要设备的数量有什么想法吗?
答案1
各位,如果您确实需要深入了解它,那么您可以考虑比较主要号码和次要号码
ubuntu@ubuntu-OptiPlex-3010:~$ sudo dmsetup ls
vgpool-lvstuff (253, 0)
我使用磁盘 sda1 创建了这个逻辑卷
ubuntu@ubuntu-OptiPlex-3010:~$ sudo dmsetup deps vgpool-lvstuff
1 dependencies : (8, 1)
(8, 1) 给出了 lvm 所依赖的磁盘的(主要、次要)数量,我将使用以下命令进行比较。
ubuntu@ubuntu-OptiPlex-3010:~$ sudo cat /proc/partitions
major minor #blocks name
8 0 488386584 sda
8 1 305368 sda1
8 2 3150112 sda2
答案2
有两种可能:
如果您接受dmsetup
非 lvm 软件包命令(在 openSUSE 中是一个单独的软件包device-mapper
),那么您可以执行以下操作:
dmsetup table "${vg_name}-${lv_name}"
或者你这样做:
start cmd: # ls -l /dev/mapper/linux-rootfs
lrwxrwxrwx 1 root root 7 27. Jun 21:34 /dev/mapper/linux-rootfs -> ../dm-0
start cmd: # ls /sys/block/dm-0/slaves/
sda9
答案3
使用本机命令列出所有映射器并在一行中获取每个标识符的所有信息:
for file in $(ls -la /dev/mapper/* | grep "\->" | grep -oP "\-> .+" | grep -oP " .+"); do echo "MAPPER:"$(F=$(echo $file | grep -oP "[a-z0-9-]+");echo $F":"$(ls "/sys/block/${F}/slaves/");)":"$(df -h "/dev/mapper/${file}" | sed 1d); done;
结果如下:
MAPPER:dm-0:sdd1:/dev/mapper/luks-00000000-0000-0000-0000-000000000000 916G 487G 384G 56% /media/whk/Secure1
MAPPER:dm-1:sde1:/dev/mapper/luks-00000000-0000-0000-0000-000000000000 916G 487G 384G 56% /media/whk/Secure2
las out 是一个df -h
命令。
感谢@hauke-laging 对结构的理解。