3 ?? Allow -S /dev/md? - current complains subsequent not a/d/r - DONE
5 * new "Query" mode to subsume --detail and --examine.
6 --query or -Q, takes a device and tells if it is an MD device,
7 and also tells in a raid superblock is found.
10 * write mdstat.c to parse /proc/mdstat file
11 Build list of arrays: name, rebuild-percent
14 * parse /proc/partitions and map major/minor into /dev/* names,
15 and use that for default DEVICE list ????
17 * --detail --scan to read /proc/mdstat, and then iterate over these,
18 but assume --brief. --verbose can override
19 check each subdevice to see if it is in conf_get_devs.
21 DONE, but don't warn yet...
23 * Support multipath ... maybe...
28 * --follow to move spares around
30 * --follow to notice other events:
36 ------------------------------------
37 - --examine --scan scans all drives and build an mdadm.conf file DONE
39 - check superblock checksum in examine DONE
40 - report "chunk" or "rounding" depending on raid level DONE
41 - report "linear" instead of "-1" for raid level DONE
42 - decode ayout depending on raid level DONE
43 - --verbose and --force flags. DONE
45 - set md_minor, *_disks for Create - DONE
46 - for create raid5, how to choose between
47 all working, but not insync
48 one missing, one spare, insync DONE (--force)
49 - and for raid1 - some failed drives... (missing)
51 - when RUN_ARRAY, make sure *_disks counts are right
53 - get --detail to extract extra stuff from superblock,
55 - --detail --brief to give a config file line DONE
56 - parse config file. DONE
59 - when --assemble --scan, if an underlying device is an md device,
60 then try to assemble that device first.
63 - mdadm -S /dev/md0 /dev/md1 gives internal error FIXED
65 - mdadm --detail --scan print summary of what it can find?
69 Assemble doesn't add spares. - DONE
70 Create to allow "missing" name for devices.
71 Create to accept "--force" for do exactly what is requested
72 - get Assemble to upgrade devices if force flag.
73 ARRAY lines in config file to have super_minor=n
74 ARRAY lines in config file to have device=pattern, and only accept
76 If UUID given, insist on that
77 If not, but super_minor given, require all found with that minor
79 If only device given, all valid supers on those devices must have
81 allow /dev/mdX as first argument before any options
82 Possible --dry-run option for create and assemble--force
84 Assemble to check that all devices mentioned in superblock
87 New mode: --Monitor (or --Follow)
88 Periodically check status of all arrays (listed in config file).
89 Log every event and apparent cause - or differences
90 Email and alert - or run a program - for important events
91 Move spares around if necessary.
93 An Array line can have a spare-group= field that indicates that
94 the array shares spares with other arrays with the same
96 If an array has a failed and no spares, then check all other
97 arrays in the spare group. If one has no failures and a spare,
98 then consider that spare.
99 Choose the smallest considered spare that is large enough.
100 If there is one, then hot-remove it from it's home, and
101 hot-add it to the array in question.
104 --alert-handler program
106 Will also extract information from /proc/mdstat if present,
107 and consider 20% marks in rebuild as events.
110 drive fails - causes mail to be sent