<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
   "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;

  <!ENTITY mdadm-download-http "&kernel;linux/utils/raid/mdadm/mdadm-&mdadm-version;.tar.xz">
  <!ENTITY mdadm-download-ftp " ">
  <!ENTITY mdadm-md5sum        "44698d351501cac6a89072dc877eb220">
  <!ENTITY mdadm-size          "402 KB">
  <!ENTITY mdadm-buildsize     "8.3 MB">
  <!ENTITY mdadm-time          "less than 0.1 SBU">
]>

<sect1 id="mdadm" xreflabel="mdadm-&mdadm-version;">
  <?dbhtml filename="mdadm.html"?>

  <sect1info>
    <othername>$LastChangedBy: bdubbs $</othername>
    <date>$Date: 2015-02-20 15:02:49 -0500 (Fri, 20 Feb 2015) $</date>
  </sect1info>

  <title>mdadm-&mdadm-version;</title>

  <indexterm zone="mdadm">
    <primary sortas="a-mdadm">mdadm</primary>
  </indexterm>

  <sect2 role="package">
    <title>Introduction to mdadm</title>

    <para>The <application>mdadm</application> package contains administration
    tools for software RAID.</para>

    &lfs77_checked;

    <bridgehead renderas="sect3">Package Information</bridgehead>
    <itemizedlist spacing="compact">
      <listitem>
        <para>Download (HTTP): <ulink url="&mdadm-download-http;"/></para>
      </listitem>
      <listitem>
        <para>Download (FTP): <ulink url="&mdadm-download-ftp;"/></para>
      </listitem>
      <listitem>
        <para>Download MD5 sum: &mdadm-md5sum;</para>
      </listitem>
      <listitem>
        <para>Download size: &mdadm-size;</para>
      </listitem>
      <listitem>
        <para>Estimated disk space required: &mdadm-buildsize;</para>
      </listitem>
      <listitem>
        <para>Estimated build time: &mdadm-time;</para>
      </listitem>
    </itemizedlist>

    <para condition="html" role="usernotes">User Notes:
    <ulink url="&blfs-wiki;/mdadm"/></para>

  </sect2>

  <sect2 role="kernel" id='mdadm-kernel'>
    <title>Kernel Configuration</title>

    <para>Enable the following options in the kernel configuration
    and recompile the kernel, if necessary.  Only the RAID types desired
    are required.</para>

<screen><literal>Device Drivers ---&gt;
  [*] Multiple devices driver support (RAID and LVM) ---&gt; [CONFIG_MD]
    &lt;*&gt; RAID support                                      [CONFIG_BLK_DEV_MD]
    [*]   Autodetect RAID arrays during kernel boot       [CONFIG_MD_AUTODETECT]
    &lt;*/M&gt;  Linear (append) mode                           [CONFIG_MD_LINEAR]
    &lt;*/M&gt;  RAID-0 (striping) mode                         [CONFIG_MD_RAID0]
    &lt;*/M&gt;  RAID-1 (mirroring) mode                        [CONFIG_MD_RAID1]
    &lt;*/M&gt;  RAID-10 (mirrored striping) mode               [CONFIG_MD_RAID10]
    &lt;*/M&gt;  RAID-4/RAID-5/RAID-6 mode                      [CONFIG_MD_RAID456]</literal></screen>

    <indexterm zone="mdadm mdadm-kernel">
      <primary sortas="d-mdadm">mdadm</primary>
    </indexterm>

  </sect2>

  <sect2 role="installation">
    <title>Installation of mdadm</title>

    <para>
      First, fix a problem inroduced by <application>&gcc-490;</application>:
    </para>

<screen><userinput>sed -i 's/Wall -Werror/Wall/' Makefile</userinput></screen>

    <para>Install <application>mdadm</application> by running the following
    commands:</para>

<screen><userinput>make</userinput></screen>

    <para>If you wish to run the tests, ensure that your kernel supports
    RAID and that a version of mdadm is not already running, and issue:
    <command>make test</command> and then, as the
    <systemitem class="username">root</systemitem> user: ./test</para>

    <para>Now, as the <systemitem class="username">root</systemitem> user:</para>

<screen role="root"><userinput>make install</userinput></screen>

  </sect2>

  <sect2 role="commands">
    <title>Command Explanations</title>

    <para><option>make everything</option>: This target creates extra programs,
    particularly a statically-linked version of <command>mdadm</command> and
    also versions of <command>mdassemble</command>. These all need to be manually
    installed.
    </para>

  </sect2>


  <sect2 role="content">
    <title>Contents</title>

    <segmentedlist>
      <segtitle>Installed Programs</segtitle>
      <segtitle>Installed Libraries</segtitle>
      <segtitle>Installed Directory</segtitle>

      <seglistitem>
        <seg>mdadm, mdmon and optionally mdassemble</seg>
        <seg>None</seg>
        <seg>None</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="mdadm-prog">
        <term><command>mdadm</command></term>
        <listitem>
          <para>manages MD devices aka Linux Software RAID.</para>
          <indexterm zone="mdadm mdadm-prog">
            <primary sortas="b-mdadm-prog">mdadm</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="mdmon">
        <term><command>mdmon</command></term>
        <listitem>
          <para>monitors MD external metadata arrays.</para>
          <indexterm zone="mdadm mdmon">
            <primary sortas="b-mdmon">mdmon</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="mdassemble">
        <term><command>mdassemble</command></term>
        <listitem>
          <para>is a tiny program that can be used to assemble MD devices
          inside an initial ramdisk (initrd) or initramfs.</para>
          <indexterm zone="mdadm mdassemble">
            <primary sortas="b-mdassemble">mdassemble</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
