Kernel Configuration
Enable the following options in the kernel configuration and
recompile the kernel:
Note
There are several other Device Mapper options in the kernel
beyond those listed below. In order to get reasonable results if
running the regression tests, all must be enabled either
internally or as a module. The tests will all time out if Magic
SysRq key is not enabled.
Device Drivers --->
[*] Multiple devices driver support (RAID and LVM) ---> [CONFIG_MD]
<*/M> Device mapper support [CONFIG_BLK_DEV_DM]
<*/M> Crypt target support [CONFIG_DM_CRYPT]
<*/M> Snapshot target [CONFIG_DM_SNAPSHOT]
<*/M> Thin provisioning target [CONFIG_DM_THIN_PROVISIONING]
<*/M> Cache target (EXPERIMENTAL) [CONFIG_DM_CACHE]
<*/M> Mirror target [CONFIG_DM_MIRROR]
<*/M> Zero target [CONFIG_DM_ZERO]
<*/M> I/O delaying target [CONFIG_DM_DELAY]
[*] Block devices --->
<*/M> RAM block device support [CONFIG_BLK_DEV_RAM]
Kernel hacking --->
Generic Kernel Debugging Instruments --->
[*] Magic SysRq key [CONFIG_MAGIC_SYSRQ]
Installation of LVM2
Install LVM2 by running the
following commands:
PATH+=:/usr/sbin \
./configure --prefix=/usr \
--enable-cmdlib \
--enable-pkgconfig \
--enable-udev_sync &&
make
The tests use udev for logical
volume synchronization, so the LVM udev rules and some utilities
need to be installed before running the tests. If you are
installing LVM2 for the first
time, and do not want to install the full package before running
the tests, the minimal set of utilities can be installed by running
the following instructions as the root
user:
make -C tools install_tools_dynamic &&
make -C udev install &&
make -C libdm install
To test the results, issue, as the root
user:
LC_ALL=en_US.UTF-8 make S=lvconvert-repair-replace check_local
The S=... option
allows to skip tests. The lvconvert-repair-replace test has
been reported to hang. Other targets are available and can be
listed with make -C test
help. The test timings are very dependent on the
speed of the disk(s), and on the number of enabled kernel options.
The tests do not implement the “expected
fail” possibility, and a small number of test
failures is expected by upstream. More failures may happen because
some kernel options are missing. For example, the lack of the
dm-delay device mapper
target explains some failures. Some tests may fail if there is
insufficient free space available in the partition with the /tmp
directory. At least one test fails if 16 TB is not available. Some
tests are flagged “warned” if thin-provisioning-tools
are not installed. A workaround is to add the following flags to
configure:
--with-thin-check= \
--with-thin-dump= \
--with-thin-repair= \
--with-thin-restore= \
--with-cache-check= \
--with-cache-dump= \
--with-cache-repair= \
--with-cache-restore= \
Some tests may hang. They can be removed if necessary, for example:
rm
test/shell/lvconvert-raid-reshape.sh. The tests
generate a lot of kernel messages, which may clutter your terminal.
You can disable them by issuing dmesg
-D before running the tests (do not forget to issue
dmesg -E when tests
are done).
Note
The checks create device nodes in the /tmp directory. The tests
will fail if /tmp is mounted with the nodev option.
Now, as the root
user:
make install
rm /usr/lib/udev/rules.d/69-dm-lvm.rules
Command Explanations
PATH+=:/usr/sbin: The
path must contain /usr/sbin
for
proper system tool detection by the configure script. This
instruction ensures that PATH is properly set even if you build as
an unprivileged user.
--enable-cmdlib
: This
switch enables building of the shared command library. It is
required when building the event daemon.
--enable-pkgconfig
: This
switch enables installation of pkg-config support files.
--enable-udev_sync
: This
switch enables synchronisation with Udev processing.
--enable-dmeventd
: This switch enables
building of the Device Mapper
event daemon.
rm
.../69-dm-lvm.rules: Under certain circumstances,
this udev rule calls systemd-run, which is not
available on sysv. It performs actions that are done by another
boot script anyway, so it is not needed.