6.2. 构建 LVM 1 内核模块

要使用 LVM 1,您需要构建 LVM 1 内核模块(推荐),或者如果您愿意,可以将内核与静态链接到其中的 LVM 1 代码一起重新构建。

您的 Linux 系统可能基于流行的发行版之一(例如,Red Hat、SuSE、Debian),在这种情况下,您可能已经安装了 LVM 1 模块。检查您系统上工具的版本。您可以通过运行任何带有 '-h' 标志的 LVM 命令行工具来完成此操作。如果您不知道任何命令,请使用 pvscan -h。如果帮助列表顶部列出的版本号是 LVM 1.0.8,请使用您当前的设置 并跳过本节的其余部分。

6.2.1. 为您的内核构建补丁

为了修补 Linux 内核以支持 LVM 1.0.8,您必须执行以下操作

  1. 解压 LVM 1.0.8

     # tar zxf lvm_1.0.8.tar.gz 
                      
  2. 进入该版本的根目录。

     # cd LVM/1.0.8 
                      
  3. 运行 configure

     # ./configure 
                      

    您需要传递选项--with-kernel_dir来配置,如果您的 Linux 内核源代码不在/usr/src/linux。(运行 ./configure --help 以查看所有可用选项)

  4. 进入 PATCHES 目录

     # cd PATCHES 
                      
  5. 运行 'make'

    # make 
                      

    现在您应该有一个名为lvm-1.0.8-$KERNELVERSION.patch的补丁在 patches 目录中。这是 HOWTO 后续章节中引用的 LVM 内核补丁。

  6. 修补内核

     # cd /usr/src/linux ; patch -pX < /directory/lvm-1.0.8-$KERNELVERSION.patch 
                      

6.2.2. 为 Linux 2.2.17+ 构建 LVM 模块

在开始构建之前,2.2 系列内核需要进行修补,请在其他地方查找有关如何修补内核的说明。

补丁

  1. rawio 补丁

    Stephen Tweedie 的 raw_io 补丁,可以在 https://linuxkernel.org.cn/pub/linux/kernel/people/sct/raw-io 找到

  2. lvm 补丁

    相关的 LVM 1 补丁应该从 LVM 发行版的 PATCHES 子目录中构建。更多信息可以在 第 6.2.1 节,为您的内核构建补丁 中找到。

一旦补丁被正确应用,您需要确保模块实际上已被构建,LVM 1 位于内核配置的块设备部分下,您可能还应该请求编译 LVM /proc 信息。

像往常一样构建内核模块。

6.2.3. 为 Linux 2.4 构建 LVM 模块

2.4 内核已经包含 LVM 1,尽管您应该在 Sistina 网站上查看更新,(例如,v2.4.9 及更早版本的内核必须应用 最新的 LVM 1 补丁)。配置内核时,请在 **多设备支持(RAID 和 LVM)** 下查找 LVM 1。LVM 1 可以编译到内核中或作为模块。像往常一样构建内核和模块并安装它们。如果您选择将 LVM 构建为模块,它将被称为lvm-mod.o

如果您想将快照与 ReiserFS 一起使用,请确保应用linux-2.4.x-VFS-lock补丁(在LVM/1.0.8/PATCHES目录。)

6.2.4. 检查 proc 文件系统

如果您的内核在编译时包含了 /proc 文件系统(大多数是这样),那么您可以通过查找 /proc/lvm 目录来验证 LVM 是否存在。如果此目录不存在,那么您可能需要使用以下命令加载模块

 # modprobe lvm-mod 
         

如果/proc/lvm仍然不存在,请仔细检查您的内核配置。

当 LVM 处于活动状态时,您将看到以下条目/proc/lvm用于您的所有物理卷、卷组和逻辑卷。此外,还有一个名为 “文件”/proc/lvm/global它提供了 LVM 状态的摘要,并显示您正在使用的 LVM 内核版本。