相対パス名を指定すると、次のように取得できます。
相対的な$pathname
が与えられると、次のコマンドは次の変数を設定します。
$absolute $mount $dev $lv $vg $pvs
絶対パス名
absolute=$(readlink -f "$pathname")
read -r dev mount <<< $(df --portability "$pathname" | awk 'NR==2{print $1 " " $6}')
注:btrfsおよびzfsファイルシステムは複数のデバイスにまたがることがありますが、ここでは1つだけをリストします。
LVおよびVG名
read -r lv vg <<< $(Sudo lvs -o lv_name,vg_name --noheadings "$dev")
man lvm(8) のように、名前に含まれる可能性のあるホイットスペースについて心配する必要はありません。
VGおよびLV名の有効な文字は次のとおりです。
a-z A-Z 0-9 + _ . -
PVデバイス
pvs=$(Sudo vgs -o pv_name --noheadings "$vg")
VGをホストしているPVが複数ある場合があります。
デバイス名の特殊文字のエッジケースに対処するには、pvs --reportformat json
の解析を調べてください。
ボーナス:ループデバイスバッキングファイル
backing=$(losetup -lnO BACK-FILE "$dev")