Browse Source
hardcoding the wwid of the drives in the initramfs causes problems when the drives are cloned to a system with the same hardware, but different disk wwid's https://bugzilla.redhat.com/show_bug.cgi?id=1457311master

2 changed files with 53 additions and 26 deletions
@ -0,0 +1,53 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
# called by dracut |
||||||
|
check() { |
||||||
|
return 255 |
||||||
|
} |
||||||
|
|
||||||
|
# called by dracut |
||||||
|
depends() { |
||||||
|
echo multipath |
||||||
|
return 0 |
||||||
|
} |
||||||
|
|
||||||
|
# called by dracut |
||||||
|
install() { |
||||||
|
local _f _allow |
||||||
|
|
||||||
|
is_mpath() { |
||||||
|
local _dev=$1 |
||||||
|
[ -e /sys/dev/block/$_dev/dm/uuid ] || return 1 |
||||||
|
[[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0 |
||||||
|
return 1 |
||||||
|
} |
||||||
|
|
||||||
|
majmin_to_mpath_dev() { |
||||||
|
local _dev |
||||||
|
for i in /dev/mapper/*; do |
||||||
|
[[ $i == /dev/mapper/control ]] && continue |
||||||
|
_dev=$(get_maj_min $i) |
||||||
|
if [ "$_dev" = "$1" ]; then |
||||||
|
echo $i |
||||||
|
return |
||||||
|
fi |
||||||
|
done |
||||||
|
} |
||||||
|
|
||||||
|
add_hostonly_mpath_conf() { |
||||||
|
is_mpath $1 && { |
||||||
|
local _dev |
||||||
|
|
||||||
|
_dev=$(majmin_to_mpath_dev $1) |
||||||
|
[ -z "$_dev" ] && return |
||||||
|
strstr "$_allow" "$_dev" && return |
||||||
|
_allow="$_allow --allow $_dev" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
[[ $hostonly ]] && { |
||||||
|
for_each_host_dev_and_slaves_all add_hostonly_mpath_conf |
||||||
|
[ -n "$_allow" ] && mpathconf $_allow --outfile ${initdir}/etc/multipath.conf |
||||||
|
} |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue