summaryrefslogtreecommitdiffstats
path: root/giga
diff options
context:
space:
mode:
authorKamil Kaminski <kylek389@gmail.com>2016-04-06 15:58:07 -0500
committerKamil Kaminski <kylek389@gmail.com>2016-04-06 15:58:21 -0500
commit008167ae46f2f707dfd803dd941c1d3531484aa0 (patch)
tree3391ed67973c71f59af2a9b43a1cbe9f9f2b4821 /giga
parent4e2ad5091cdd7ff4fef531229c383f30dadea13e (diff)
downloadconfigs-008167ae46f2f707dfd803dd941c1d3531484aa0.tar.gz
configs-008167ae46f2f707dfd803dd941c1d3531484aa0.tar.bz2
configs-008167ae46f2f707dfd803dd941c1d3531484aa0.zip
giga workaround for intel fakeraid
Diffstat (limited to 'giga')
-rw-r--r--giga/64-md-raid-assembly.rules35
-rw-r--r--giga/md-raid.txt4
2 files changed, 39 insertions, 0 deletions
diff --git a/giga/64-md-raid-assembly.rules b/giga/64-md-raid-assembly.rules
new file mode 100644
index 0000000..41097d6
--- /dev/null
+++ b/giga/64-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}="/usr/bin/env IMSM_NO_PLATFORM=1 /usr/bin/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+="/usr/bin/env IMSM_NO_PLATFORM=1 /usr/bin/mdadm -If $name --path $env{ID_PATH}"
+ACTION=="remove", ENV{ID_PATH}!="?*", RUN+="/usr/bin/env IMSM_NO_PLATFORM=1 /usr/bin/mdadm -If $name"
+
+LABEL="md_inc_end"
diff --git a/giga/md-raid.txt b/giga/md-raid.txt
new file mode 100644
index 0000000..779538f
--- /dev/null
+++ b/giga/md-raid.txt
@@ -0,0 +1,4 @@
+- had to prepend the following before /usr/bin/madm
+ /usr/bin/env IMSM_NO_PLATFORM=1
+
+stupid fucking mdadm devs breaking intel fakeraid