summaryrefslogtreecommitdiff
path: root/udev-md-raid-assembly.rules
diff options
context:
space:
mode:
authorDimitri John Ledkov <xnox@ubuntu.com>2016-07-02 19:16:01 +0100
committerDimitri John Ledkov <xnox@ubuntu.com>2016-07-02 19:16:01 +0100
commitb83f8fcaffa542498c5698a3a161b9967ac1d3d6 (patch)
tree3cb83259723d112fd7b08b5bd299df2f5ee94009 /udev-md-raid-assembly.rules
mdadm (3.4-2) unstable; urgency=low
* Reneable incremental assembly * Rely on udev to assemble incremental arrays * In environments with systemd rely on mdadm-last-resort@.timer|.service units to activate degrated raids * In environments initramfs-tools initrd (no systemd) add local-block script to do the same after 2/3rds of root delay iteration * Drop local-top initramfs script * Drop dependency on initscripts package * Drop INITRDSTART support * Drop mdadm-raid init script * Drop ancient preinst * In mdadm.init remove dependency on mdadm-raid * In mdadm.init check, and bail out running in a container * In mdadm.config drop mdadm/autostart logic * Drop CREATE stanzas from mkconf and don't include them in the initramfs. The generated defaults, are the compiled-in defaults. And the current one generates warnings when running mdadm in the initramfs, as there is no passwd|group files to resolve root/disk uid/gid. Closes: 717609 * Adapt changes and formatting of initramfs hook from Ubuntu * Bump standards version to 3.9.7, no changes required * Fix copyright-refers-to-symlink-license * Closes: #781172, #796624, #769201, #813335, #632401, #804973, #714155, #770002, #737132, #675452, #726390, #813637, #814036. # imported from the archive
Diffstat (limited to 'udev-md-raid-assembly.rules')
-rw-r--r--udev-md-raid-assembly.rules35
1 files changed, 35 insertions, 0 deletions
diff --git a/udev-md-raid-assembly.rules b/udev-md-raid-assembly.rules
new file mode 100644
index 00000000..d0d440a6
--- /dev/null
+++ b/udev-md-raid-assembly.rules
@@ -0,0 +1,35 @@
+# do not edit this file, it will be overwritten on update
+
+# Don't process any events if anaconda is running as anaconda brings up
+# raid devices manually
+ENV{ANACONDA}=="?*", GOTO="md_inc_end"
+# assemble md arrays
+
+SUBSYSTEM!="block", GOTO="md_inc_end"
+
+# handle potential components of arrays (the ones supported by md)
+ENV{ID_FS_TYPE}=="linux_raid_member", GOTO="md_inc"
+
+# "noiswmd" on kernel command line stops mdadm from handling
+# "isw" (aka IMSM - Intel RAID).
+# "nodmraid" on kernel command line stops mdadm from handling
+# "isw" or "ddf".
+IMPORT{cmdline}="noiswmd"
+IMPORT{cmdline}="nodmraid"
+
+ENV{nodmraid}=="?*", GOTO="md_inc_end"
+ENV{ID_FS_TYPE}=="ddf_raid_member", GOTO="md_inc"
+ENV{noiswmd}=="?*", GOTO="md_inc_end"
+ENV{ID_FS_TYPE}=="isw_raid_member", GOTO="md_inc"
+GOTO="md_inc_end"
+
+LABEL="md_inc"
+
+# remember you can limit what gets auto/incrementally assembled by
+# mdadm.conf(5)'s 'AUTO' and selectively whitelist using 'ARRAY'
+ACTION=="add|change", IMPORT{program}="BINDIR/mdadm --incremental --export $devnode --offroot ${DEVLINKS}"
+ACTION=="add|change", ENV{MD_STARTED}=="*unsafe*", ENV{MD_FOREIGN}=="no", ENV{SYSTEMD_WANTS}+="mdadm-last-resort@$env{MD_DEVICE}.timer"
+ACTION=="remove", ENV{ID_PATH}=="?*", RUN+="BINDIR/mdadm -If $name --path $env{ID_PATH}"
+ACTION=="remove", ENV{ID_PATH}!="?*", RUN+="BINDIR/mdadm -If $name"
+
+LABEL="md_inc_end"