Document new --auto behaviour

Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
This commit is contained in:
Neil Brown 2005-04-04 05:16:16 +00:00
parent 0df46c2ad8
commit 48f7b27ab4
2 changed files with 46 additions and 5 deletions

47
mdadm.8
View File

@ -378,10 +378,14 @@ will not try to be so clever.
.TP .TP
.BR -a ", " "--auto{=no,yes,md,mdp,part,p}{NN}" .BR -a ", " "--auto{=no,yes,md,mdp,part,p}{NN}"
Instruct mdadm to create the device file if needed, and to allocate Instruct mdadm to create the device file if needed, possibly allocating
an unused minor number. "yes" or "md" causes a non-partitionable array an unused minor number. "md" causes a non-partitionable array
to be used. "mdp", "part" or "p" causes a partitionable array (2.6 and to be used. "mdp", "part" or "p" causes a partitionable array (2.6 and
later) to be used. The argumentment can also come immediately after later) to be used. "yes" requires the named md device to have a
'standard' format, and the type and minor number will be determined
from this. See DEVICE NAMES below.
The argumentment can also come immediately after
"-a". e.g. "-ap". "-a". e.g. "-ap".
For partitionable arrays, For partitionable arrays,
@ -390,11 +394,19 @@ will create the device file for the whole array and for the first 4
partitions. A different number of partitions can be specified at the partitions. A different number of partitions can be specified at the
end of this option (e.g. end of this option (e.g.
.BR --auto=p7 ). .BR --auto=p7 ).
If the device name ends with a digit, the partition names add an If the device name ends with a digit, the partition names add a'p',
underscore, a 'p', and a number, e.g. "/dev/home1_p3". If there is no and a number, e.g. "/dev/home1p3". If there is no
trailing digit, then the partition names just have a number added, trailing digit, then the partition names just have a number added,
e.g. "/dev/scratch3". e.g. "/dev/scratch3".
If the md device name is in a 'standard' format as described in DEVICE
NAMES, then it will be created, if necessary, with the appropriate
number based on that name. If the device name is not in one of these
formats, then a unused minor number will be allocted. The minor
number will be considered unused if there is no active array for that
number, and there is no entry in /dev for that number and with a
non-standard name.
.SH For assemble: .SH For assemble:
.TP .TP
@ -1244,6 +1256,31 @@ they contain MD super block, and gives identifying information
.BR mdadm.conf (5) .BR mdadm.conf (5)
for more details. for more details.
.SH DEVICE NAMES
While entries in the /dev directory can have any format you like,
.I mdadm
has an understanding of 'standard' formats which it uses to guide its
behaviour when creating device files via the
.I --auto
option.
The standard names for non-partitioned arrays (the only sort of md
array available in 2.4 and earlier) either of
.IP
/dev/mdNN
.br
/dev/md/NN
.PP
where NN is a number.
The standard names for partitionable arrays (as available from 2.6
onwards) is one of
.IP
/dev/md/dNN
.br
/dev/md_dNN
.PP
Partition numbers should be indicated by added "pMM" to these, thus "/dev/md/d1p2".
.SH NOTE .SH NOTE
.B mdadm .B mdadm

View File

@ -92,6 +92,10 @@ int open_mddev(char *dev, int autof)
/* autof is set, so we need to check that the name is ok, /* autof is set, so we need to check that the name is ok,
* and possibly create one if not * and possibly create one if not
*/ */
if (autof == -2 && !is_standard(dev, NULL)) {
fprintf(stderr, Name ": --auto=yes requires a 'standard' md device name, not %s\n", dev);
return -1;
}
stb.st_mode = 0; stb.st_mode = 0;
if (lstat(dev, &stb)==0 && ! S_ISBLK(stb.st_mode)) { if (lstat(dev, &stb)==0 && ! S_ISBLK(stb.st_mode)) {
fprintf(stderr, Name ": %s is not a block device.\n", fprintf(stderr, Name ": %s is not a block device.\n",