논리 볼륨과 관련된 모든 물리 볼륨을 나열하고 싶습니다.
알아요 lvdisplay
, 그 일을 할 pvscan
수 있어요 pvdisplay -m
. 하지만 저는 이 명령을 사용하고 싶지 않습니다. lvm2 package 명령을 사용하지 않고 이를 수행할 수 있는 다른 방법이 있습니까?
주요 장치와 보조 장치의 수를 비교하는 방법에 대한 아이디어가 있습니까?
답변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에게 감사드립니다.