给定一个相对路径名,我如何获取它:
- 挂载点
- 设备
- LVM LV名称
- LVM VG 名称
- LVM PV 名称
答案1
概括
给定一个relative $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 文件系统可能跨越多个设备,但此处仅列出一种。
LV 和 VG 名称
read -r lv vg <<< $(sudo lvs -o lv_name,vg_name --noheadings "$dev")
无需担心名称中可能存在空格,因为男人lvm(8)说:
VG 和 LV 名称的有效字符为:
a-z A-Z 0-9 + _ . -
光伏器件
pvs=$(sudo vgs -o pv_name --noheadings "$vg")
可能有多个 PV 托管您的 VG。
要处理设备名称中特殊字符的边缘情况,请查看解析pvs --reportformat json
。
奖励:循环设备支持文件
backing=$(losetup -lnO BACK-FILE "$dev")