[[ $_dev != ${_dev#UUID=} ]] && _dev=/dev/disk/by-uuid/${_dev#UUID=}
[[ $_dev != ${_dev#LABEL=} ]] && _dev=/dev/disk/by-label/${_dev#LABEL=}
[[ -b $_dev ]] || return 1 # oops, not a block device.
- ls -nLl "$_dev" | {
- read _x _x _x _x _maj _min _x
- _maj=${_maj//,/}
- echo $_maj:$_min
- } && return 0
+ get_maj_min "$_dev" && return 0
fi
done < /etc/fstab
return 1
}
-get_numeric_dev() {
- local _x _maj _min
- ls -lH "$1" | { read _x _x _x _x _maj _min _x; printf "%d:%d" ${_maj%%,} $_min; }
-}
-
# ugly workaround for the lvm design
# There is no volume group device,
# so, there are no slave devices for volume groups.
check_vol_slaves() {
local _lv _vg _pv
for i in /dev/mapper/*; do
- _lv=$(get_numeric_dev $i)
+ _lv=$(get_maj_min $i)
if [[ $_lv = $2 ]]; then
_vg=$(lvm lvs --noheadings -o vg_name $i 2>/dev/null)
# strip space
if [[ $_vg ]]; then
for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null)
do
- check_block_and_slaves $1 $(get_numeric_dev $_pv) && return 0
+ check_block_and_slaves $1 $(get_maj_min $_pv) && return 0
done
fi
fi