|
|
|
@ -7,27 +7,11 @@ check() {
@@ -7,27 +7,11 @@ check() {
|
|
|
|
|
# No mdadm? No mdraid support. |
|
|
|
|
type -P mdadm >/dev/null || return 1 |
|
|
|
|
|
|
|
|
|
check_mdraid() { |
|
|
|
|
local dev=$1 fs=$2 holder DEVPATH MD_UUID |
|
|
|
|
[[ "$fs" = "${fs%%_raid_member}" ]] && return 1 |
|
|
|
|
|
|
|
|
|
MD_UUID=$(/sbin/mdadm --examine --export $dev \ |
|
|
|
|
| while read line; do |
|
|
|
|
[[ ${line#MD_UUID} = $line ]] && continue |
|
|
|
|
eval "$line" |
|
|
|
|
echo $MD_UUID |
|
|
|
|
break |
|
|
|
|
done) |
|
|
|
|
|
|
|
|
|
[[ ${MD_UUID} ]] || return 1 |
|
|
|
|
if ! [[ $kernel_only ]]; then |
|
|
|
|
echo " rd.md.uuid=${MD_UUID} " >> "${initdir}/etc/cmdline.d/90mdraid.conf" |
|
|
|
|
fi |
|
|
|
|
return 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[[ $hostonly ]] || [[ $mount_needs ]] && { |
|
|
|
|
for_each_host_dev_and_slaves_all check_mdraid || return 1 |
|
|
|
|
for fs in "${host_fs_types[@]}"; do |
|
|
|
|
[[ "$fs" == *_raid_member ]] && return 0 |
|
|
|
|
done |
|
|
|
|
return 255 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0 |
|
|
|
@ -48,6 +32,27 @@ install() {
@@ -48,6 +32,27 @@ install() {
|
|
|
|
|
inst $(command -v partx) /sbin/partx |
|
|
|
|
inst $(command -v mdadm) /sbin/mdadm |
|
|
|
|
|
|
|
|
|
check_mdraid() { |
|
|
|
|
local dev=$1 fs=$2 holder DEVPATH MD_UUID |
|
|
|
|
[[ "$fs" != *_raid_member ]] && return 1 |
|
|
|
|
|
|
|
|
|
MD_UUID=$(/sbin/mdadm --examine --export $dev \ |
|
|
|
|
| while read line; do |
|
|
|
|
[[ ${line#MD_UUID} = $line ]] && continue |
|
|
|
|
eval "$line" |
|
|
|
|
echo $MD_UUID |
|
|
|
|
break |
|
|
|
|
done) |
|
|
|
|
|
|
|
|
|
[[ ${MD_UUID} ]] || return 1 |
|
|
|
|
if ! [[ $kernel_only ]]; then |
|
|
|
|
echo " rd.md.uuid=${MD_UUID} " >> "${initdir}/etc/cmdline.d/90mdraid.conf" |
|
|
|
|
fi |
|
|
|
|
return 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for_each_host_dev_fs check_mdraid |
|
|
|
|
|
|
|
|
|
inst_rules 64-md-raid.rules |
|
|
|
|
# remove incremental assembly from stock rules, so they don't shadow |
|
|
|
|
# 65-md-inc*.rules and its fine-grained controls, or cause other problems |
|
|
|
|