web-dev-qa-db-ja.com

lvm2パッケージコマンドを使用せずに論理ボリュームに関連付けられたデバイスを一覧表示する

論理ボリュームに関連付けられているすべての物理ボリュームをリストしたい。

知っているlvdisplaypvscanpvdisplay -mは仕事をすることができました。しかし、私はこれらのコマンドを使いたくありません。 lvm2パッケージコマンドを使用せずにそれを行う他の方法はありますか?

デバイスのメジャー数とマイナー数を比較することについての考えはありますか?

5
Dipak Ingole

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
7
Hauke Laging

フォークス、あなたが確かにその中でダイビングする必要がある場合は、メジャーとマイナーの数を比較することについて考えることができます

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
8
Dipak Ingole

すべてのマッパーを一覧表示し、ネイティブコマンドを使用して各識別子のすべての情報を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

ラスアウトはdf -hコマンド。

構造の理解について@ hauke-lagingに感謝します。

2
e-info128