45 lines
1.4 KiB
Plaintext
45 lines
1.4 KiB
Plaintext
# This file causes block devices with Linux RAID (mdadm) signatures to
|
|
# automatically cause mdadm to be run.
|
|
# See udev(8) for syntax
|
|
|
|
ACTION!="add|change", GOTO="md_end"
|
|
SUBSYSTEM!="block", GOTO="md_end"
|
|
ENV{rd_NO_MD}=="?*", GOTO="md_end"
|
|
KERNEL=="md*", ENV{ID_FS_TYPE}!="linux_raid_member", GOTO="md_end"
|
|
KERNEL=="md*", ACTION!="change", GOTO="md_end"
|
|
|
|
# Also don't process disks that are slated to be a multipath device
|
|
ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="md_end"
|
|
|
|
ENV{ID_FS_TYPE}=="ddf_raid_member|isw_raid_member|linux_raid_member", GOTO="md_try"
|
|
GOTO="md_end"
|
|
|
|
LABEL="md_try"
|
|
ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_end"
|
|
ENV{ID_FS_TYPE}=="ddf_raid_member", ENV{rd_NO_MDDDF}=="?*", GOTO="md_end"
|
|
|
|
# already done ?
|
|
PROGRAM="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9_]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
|
|
GOTO="md_end"
|
|
|
|
# for native arrays - array's uuid has to be specified
|
|
# for containers - container's uuid has to be specified
|
|
# TODO : how to get embedded array's uuid having container's component ?
|
|
#
|
|
# UUID CHECK
|
|
|
|
ENV{DEVTYPE}!="partition", \
|
|
RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
|
|
|
|
RUN+="/sbin/initqueue --timeout --name 50-mdraid_start --onetime --unique /sbin/mdraid_start"
|
|
|
|
#
|
|
# Incrementally build the md array; this will automatically assemble
|
|
# any eventual containers as well (imsm, ddf)
|
|
#
|
|
LABEL="md_incremental"
|
|
|
|
RUN+="/sbin/mdadm $env{rd_MD_OFFROOT} -I $env{DEVNAME}"
|
|
|
|
LABEL="md_end"
|