LVM2:パスからlvおよびvg名(ボリュームグループ名と論理ボリューム名)を取得する

LVM2:パスからlvおよびvg名(ボリュームグループ名と論理ボリューム名)を取得する

lvパスがあるとします。

lvpath=/dev/mapper/vg2-Music

カットを使用して分割するよりもlvdisplay -c

vgname="$(lvdisplay -c "$lvpath" | cut -d ':' -f 2 )"
lvname="$(basename "$(lvdisplay -c "$lvpath" | cut -d ':' -f 1 )" )"

結果:

$ echo VG: $vgname LV: $lvname
VG: vg2 LV: Music

質問:

より便利な方法がありますか?

lvdisplay -c 常にフォームにパスを提供できますか/dev/VGname/LVname? (/dev/mapper/VGname-LVnamesedを使用してデフォルト名を交換する場合)

パスからLVnameをインポートするツールはLVM2パッケージにありますか?

ベストアンサー1

lvsオプションとともに使用して-o表示されるフィールドをカスタマイズします。

set $(lvs --noheadings -o lv_name,vg_name)
lv_name=$1 vg_name=$2

値の周りに余分なスペースが配置されるため、lv_name=$(lvs --noheadings -o lv_name)直接書き込むことはできません。lvsこのコードスニペットは、ボリューム名にシェル特殊文字を含めることができないため安全です。

おすすめ記事