Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > by-pkgid > 965e33040dd61030a94f0eb89877aee8 > files > 2965

howto-html-en-20080722-2mdv2010.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Build the LVM 1 kernel module</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="LVM HOWTO"
HREF="index.html"><LINK
REL="UP"
TITLE="Building the kernel modules"
HREF="buildkernelmods.html"><LINK
REL="PREVIOUS"
TITLE="Building the device-mapper module"
HREF="builddmmod.html"><LINK
REL="NEXT"
TITLE="LVM 1 Boot time scripts"
HREF="boot_scripts.html"></HEAD
><BODY
CLASS="sect1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>LVM HOWTO</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="builddmmod.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 6. Building the kernel modules</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="boot_scripts.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="sect1"
><H1
CLASS="sect1"
><A
NAME="buildlvmmod"
></A
>6.2. Build the LVM 1 kernel module</H1
><P
>&#13;        To use LVM 1 you will have to build the LVM 1 kernel module
        (recommended), or if you prefer rebuild the kernel with the
        LVM 1 code statically linked into it.
      </P
><P
>&#13;        Your Linux system is probably based on one of the popular
        distributions (eg., Red Hat, SuSE, Debian) in which case it
        is possible that you already have the LVM 1 module.  Check
        the version of the tools you have on your system.  You can do
        this by running any of the LVM command line tools with the
        '-h' flag.  Use <B
CLASS="command"
>pvscan -h</B
> if you don't
        know any of the commands.  If the version number listed at
        the top of the help listing is LVM 1.0.8, <STRONG
>use your current setup</STRONG
> and avoid the
        rest of this section.
      </P
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="buildlvmpatch"
></A
>6.2.1. Building a patch for your kernel</H2
><P
>&#13;          In order to patch the linux kernel to support LVM 1.0.8, you must
          do the following:

          <P
></P
><OL
TYPE="1"
><LI
><P
> Unpack LVM 1.0.8 </P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<B
CLASS="command"
> # tar zxf lvm_1.0.8.tar.gz </B
>
                  </PRE
></FONT
></TD
></TR
></TABLE
></LI
><LI
><P
> Enter the root directory of that version. </P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<B
CLASS="command"
> # cd LVM/1.0.8 </B
>
                  </PRE
></FONT
></TD
></TR
></TABLE
></LI
><LI
><P
>  Run configure</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<B
CLASS="command"
> # ./configure </B
>
                  </PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;                You will need to pass the option
                <TT
CLASS="option"
>--with-kernel_dir</TT
> to configure if your
                linux kernel source is not in 
                <TT
CLASS="filename"
>/usr/src/linux</TT
>.
                (Run <B
CLASS="command"
>./configure --help</B
> to see all the
                options available)
              </P
></LI
><LI
><P
>  Enter the PATCHES directory</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<B
CLASS="command"
> # cd PATCHES </B
>
                  </PRE
></FONT
></TD
></TR
></TABLE
></LI
><LI
><P
>  Run 'make'</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<B
CLASS="command"
># make </B
>
                  </PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;                You should now have a patch called
                <TT
CLASS="filename"
>lvm-1.0.8-$KERNELVERSION.patch</TT
> in the
                patches directory.  This is the LVM kernel patch referenced
                in later sections of the howto.
              </P
></LI
><LI
><P
>  Patch the kernel</P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<B
CLASS="command"
> # cd /usr/src/linux ; patch -pX &#60; /directory/lvm-1.0.8-$KERNELVERSION.patch </B
>
                  </PRE
></FONT
></TD
></TR
></TABLE
></LI
></OL
>
        </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="buildlvm1-2.2"
></A
>6.2.2. Building the LVM module for Linux 2.2.17+</H2
><P
>&#13;          The 2.2 series kernel needs to be patched before you can start
          building, look elsewhere for instructions on how to patch your
          kernel.
        </P
><P
>&#13;          Patches:
        </P
><P
></P
><OL
TYPE="1"
><LI
><P
>&#13;              <STRONG
>rawio patch</STRONG
>
            </P
><P
>&#13;              Stephen Tweedie's raw_io patch which can be found at
              <A
HREF="http://www.kernel.org/pub/linux/kernel/people/sct/raw-io"
TARGET="_top"
>http://www.kernel.org/pub/linux/kernel/people/sct/raw-io</A
>
            </P
></LI
><LI
><P
>&#13;              <STRONG
>lvm patch</STRONG
>
            </P
><P
>&#13;              The relevant LVM 1 patch which should be built out
              of the PATCHES sub-directory of the LVM
              distribution.  More information can be found in
              <A
HREF="buildlvmmod.html#buildlvmpatch"
>Section 6.2.1</A
>, Building a patch
              for your kernel.
            </P
></LI
></OL
><P
>&#13;          Once the patches have been correctly applied, you need to make sure
          that the module is actually built, LVM 1 lives under the block
          devices section of the kernel config, you should probably request
          that the LVM /proc information is compiled as well.
        </P
><P
>&#13;          Build the kernel modules as usual.
        </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="buildlvm1-2.4"
></A
>6.2.3. Building the LVM modules for Linux 2.4</H2
><P
>&#13;          The 2.4 kernel comes with LVM 1 already included although
          you should check at the Sistina web site for updates,
          (eg. v2.4.9 kernels and earlier must have the <A
HREF="buildlvmmod.html#buildlvmpatch"
>latest LVM 1 patch</A
> applied ).
          When configuring your kernel look for LVM 1 under <STRONG
>Multi-device support (RAID and
            LVM)</STRONG
>. LVM 1 can be compiled into the kernel or as
          a module. Build your kernel and modules and install then
          in the usual way. If you chose to build LVM as a module it
          will be called <TT
CLASS="filename"
>lvm-mod.o</TT
>
        </P
><P
>&#13;          If you want to use snapshots with ReiserFS, make sure you apply the
          <TT
CLASS="filename"
>linux-2.4.x-VFS-lock</TT
> patch (there are copies
          of this in the 
          <TT
CLASS="filename"
>LVM/1.0.8/PATCHES</TT
> directory.)
        </P
></DIV
><DIV
CLASS="sect2"
><H2
CLASS="sect2"
><A
NAME="checkproc"
></A
>6.2.4. Checking the proc file system</H2
><P
>&#13;          If your kernel was compiled with the /proc file system (most are)
          then you can verify that LVM is present by looking for a /proc/lvm
          directory. If this doesn't exist then you may have to load the
          module with the command 
        </P
><TABLE
BORDER="0"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="screen"
>&#13;<B
CLASS="command"
> # modprobe lvm-mod </B
>
         </PRE
></FONT
></TD
></TR
></TABLE
><P
>&#13;          If <TT
CLASS="filename"
> /proc/lvm </TT
> still does not exist then check
          your kernel configuration carefully.
        </P
><P
>&#13;          When LVM is active you will see entries in 
          <TT
CLASS="filename"
>/proc/lvm</TT
> for all your physical volumes,
          volume groups and logical volumes. In addition
          there is a <SPAN
CLASS="QUOTE"
>"file"</SPAN
> called 
          <TT
CLASS="filename"
>/proc/lvm/global</TT
> which gives a summary
          of the LVM status and also shows just which version of the LVM
          kernel you are using.
        </P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="builddmmod.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="boot_scripts.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Building the device-mapper module</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="buildkernelmods.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>LVM 1 Boot time scripts</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>