論理ボリュームに関連付けられているすべての物理ボリュームをリストしたい。
知っているlvdisplay
、pvscan
、pvdisplay -m
は仕事をすることができました。しかし、私はこれらのコマンドを使いたくありません。 lvm2パッケージコマンドを使用せずにそれを行う他の方法はありますか?
デバイスのメジャー数とマイナー数を比較することについての考えはありますか?
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
フォークス、あなたが確かにその中でダイビングする必要がある場合は、メジャーとマイナーの数を比較することについて考えることができます
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
すべてのマッパーを一覧表示し、ネイティブコマンドを使用して各識別子のすべての情報を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に感謝します。