.\" See file COPYING in distribution for details.
-.TH MDMON 8 "" v3.1.1
+.TH MDMON 8 "" v3.3.2
.SH NAME
mdmon \- monitor MD external metadata arrays
.SH SYNOPSIS
-.BI mdmon " [--all] [--takeover] CONTAINER"
+.BI mdmon " [--all] [--takeover] [--foreground] CONTAINER"
.SH OVERVIEW
The 2.6.27 kernel brings the ability to support external metadata arrays.
External metadata formats, like DDF, differ from the native MD metadata
formats in that they define a set of disks and a series of sub-arrays
within those disks. MD metadata in comparison defines a 1:1
-relationship between a set of block devices and a raid array. For
-example to create 2 arrays at different raid levels on a single
+relationship between a set of block devices and a RAID array. For
+example to create 2 arrays at different RAID levels on a single
set of disks, MD metadata requires the disks be partitioned and then
-each array can created be created with a subset of those partitions. The
+each array can be created with a subset of those partitions. The
supported external formats perform this disk carving internally.
.P
Container devices simply hold references to all member disks and allow
device to monitor. It can be a full path like /dev/md/container, or a
simple md device name like md127.
.TP
+.B \-\-foreground
+Normally,
+.I mdmon
+will fork and continue in the background. Adding this option will
+skip that step and run
+.I mdmon
+in the foreground.
+.TP
.B \-\-takeover
This instructs
.I mdmon
containers with names longer than 5 characters, this argument can be
arbitrarily extended, e.g. to
.BR \-\-all-active-arrays .
+.TP
.PP
Note that
is automatically started by
.I mdadm
when needed and so does not need to be considered when working with
-RAID arrays. The only times it is run other that by
+RAID arrays. The only times it is run other than by
.I mdadm
is when the boot scripts need to restart it after mounting the new
root filesystem.
.I mdmon
must be installed on the
.B initramfs
-and there must be a writable filesystem (typically tmpfs) which
+and there must be a writable filesystem (typically tmpfs) in which
.B mdmon
can create a
.B .pid
and
.B .sock
-file on. The particular filesystem to use is given to mdmon at compile
+file. The particular filesystem to use is given to mdmon at compile
time and defaults to
-.BR /lib/init/rw .
+.BR /run/mdadm .
-This filesystem must persist through to the end of the boot sequence.
+This filesystem must persist through to shutdown time.
After the final root filesystem has be instantiated (usually with
.BR pivot_root )
-and after
-.B /var
-is mounted writable,
.I mdmon
should be run with
.I "\-\-all \-\-takeover"
.I mdmon
running from the
.B initramfs
-can be replaced with one running in the main root.
+can be replaced with one running in the main root, and so the
+memory used by the initramfs can be released.
At shutdown time,
.I mdmon
should not be killed along with other processes. Also as it holds a
file (socket actually) open in
-.B /var
-it will not be possible to unmount
-.B /var
-if it is a separate filesystem. Rather the
-.B /var
-filesystem, like the root filesystem, should be remounted read-only.
-
-
+.B /dev
+(by default) it will not be possible to unmount
+.B /dev
+if it is a separate filesystem.
.SH EXAMPLES
Any
.I mdmon
which is currently running is killed and a new instance is started.
-This should be run late in the boot sequence and particularly after
-.B /var
-is mounted and writable.
+This should be run during in the boot sequence if an initramfs was
+used, so that any mdmon running from the initramfs will not hold
+the initramfs active.
.SH SEE ALSO
.IR mdadm (8),
.IR md (4).