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

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

基本コマンドを使用してすべてのマッパーをリストし、各識別子に関するすべての情報を1行で取得します。

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に感謝します。

関連情報