2 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3 # ex: ts=8 sw=4 sts=4 et filetype=sh
7 # if we don't have dmraid installed on the host system, no point
8 # in trying to support it in the initramfs.
9 type -P dmraid
>/dev
/null ||
return 1
11 [[ $hostonly ]] ||
[[ $mount_needs ]] && {
12 for fs
in "${host_fs_types[@]}"; do
13 [[ $fs = *_raid_member
]] && return 0
30 local dev
=$1 fs
=$2 holder DEVPATH DM_NAME
31 [[ "$fs" != *_raid_member
]] && return 1
33 DEVPATH
=$
(udevadm info
--query=property
--name=$dev \
35 [[ ${line#DEVPATH} = $line ]] && continue
40 for holder
in /sys
/$DEVPATH/holders
/*; do
41 [[ -e $holder ]] ||
continue
42 DM_NAME
=$
(udevadm info
--query=property
--path=$holder \
44 [[ ${line#DM_NAME} = $line ]] && continue
51 [[ ${DM_NAME} ]] ||
return 1
52 if ! [[ $kernel_only ]]; then
53 echo " rd.dm.uuid=${DM_NAME} " >> "${initdir}/etc/cmdline.d/90dmraid.conf"
58 for_each_host_dev_fs check_dmraid
61 inst_multiple
-o kpartx
62 inst $
(command -v partx
) /sbin
/partx
64 inst
"$moddir/dmraid.sh" /sbin
/dmraid_scan
66 inst_rules
64-md-raid.rules
68 inst_libdir_file
"libdmraid-events*.so*"
70 inst_rules
"$moddir/61-dmraid-imsm.rules"
71 #inst "$moddir/dmraid-cleanup.sh" /sbin/dmraid-cleanup
72 inst_hook pre-trigger
30 "$moddir/parse-dm.sh"