lvm2 package 명령을 사용하지 않고 논리 볼륨과 연관된 장치 나열

lvm2 package 명령을 사용하지 않고 논리 볼륨과 연관된 장치 나열

논리 볼륨과 관련된 모든 물리 볼륨을 나열하고 싶습니다.

알아요 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

두 가지 가능성이 있습니다:

dmsetuplvm이 아닌 패키지 명령(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에게 감사드립니다.

관련 정보