> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/zfs/an-zhuang-zhi-yin/ji-yu-rhel-de-yan-sheng-fa-xing-ban/index.md).

# 在 RHEL 及其衍生版中启用 ZFS 支持

针对基于 x86\_64 的 RHEL 和 CentOS 发行版，OpenZFS 仓库提供了 [DKMS](https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support) 和 [kABI 跟踪 kmod](https://elrepoproject.blogspot.com/2016/02/kabi-tracking-kmod-packages.html) 风格的软件包。这些软件包会随着新版本发布而更新。每个当前主版本中，只有对应的当前点版本仓库会更新新软件包。

为简化安装，提供了软件包 *zfs-release*，其中包含 zfs.repo 配置文件和公钥签名。所有官方 OpenZFS 软件包均使用该密钥签名，默认情况下，yum 或 dnf 会在实际安装软件包前验证其签名。强烈建议用户使用此处列出的指纹验证 OpenZFS 公钥的真实性。

**密钥位置：** `/etc/pki/rpm-gpg/RPM-GPG-KEY-openzfs`（之前为 -zfsonlinux）

**当前发行版软件包：** [EL7](https://zfsonlinux.org/epel/zfs-release-2-3.el7.noarch.rpm)、[EL8](https://zfsonlinux.org/epel/zfs-release-3-0.el8.noarch.rpm)、[EL9](https://zfsonlinux.org/epel/zfs-release-3-0.el9.noarch.rpm)、[EL10](https://zfsonlinux.org/epel/zfs-release-3-0.el10.noarch.rpm)

**存档发行版软件包：** [参见仓库页面](https://github.com/zfsonlinux/zfsonlinux.github.com/tree/master/epel)

**签名密钥 1（EL8 及更早版本，Fedora 36 及更早版本）** [pgp.mit.edu](https://pgp.mit.edu/pks/lookup?search=0xF14AB620\&op=index\&fingerprint=on) / [直接链接](https://raw.githubusercontent.com/zfsonlinux/zfsonlinux.github.com/master/zfs-release/RPM-GPG-KEY-openzfs-key1)

**指纹：** C93A FFFD 9F3F 7B03 C310 CEB6 A9D5 A1C0 F14A B620

**签名密钥 2（EL9+，Fedora 37+）** [pgp.mit.edu](https://pgp.mit.edu/pks/lookup?search=0xA599FD5E9DB84141\&op=index\&fingerprint=on) / [直接链接](https://raw.githubusercontent.com/zfsonlinux/zfsonlinux.github.com/master/zfs-release/RPM-GPG-KEY-openzfs-key2)

**指纹：** 7DC7 299D CF7C 7FD9 CD87 701B A599 FD5E 9DB8 4141

对于 EL 7，运行：

```sh
yum install https://zfsonlinux.org/epel/zfs-release-2-3$(rpm --eval "%{dist}").noarch.rpm
```

对于 EL 8-10，运行：

```sh
dnf install https://zfsonlinux.org/epel/zfs-release-3-0$(rpm --eval "%{dist}").noarch.rpm
```

安装 *zfs-release* 软件包并验证公钥后，用户可以选择安装 DKMS 或 kABI 跟踪 kmod 风格的软件包。对于运行非发行版内核或希望对 OpenZFS 应用本地自定义的用户，推荐使用 DKMS 软件包。对于大多数用户，为避免在每次内核更新时重新编译 OpenZFS，推荐使用 kABI 跟踪 kmod 软件包。

## DKMS

要安装 DKMS 风格的软件包，请执行以下命令。首先通过安装 *epel-release* 软件包添加提供 DKMS 的 [EPEL 仓库](https://fedoraproject.org/wiki/EPEL)，然后安装 *kernel-devel* 和 *zfs* 软件包。请注意，必须确保为正在运行的内核安装匹配的 *kernel-devel* 软件包，因为 DKMS 构建 OpenZFS 时需要它。

对于 EL7，分别运行：

```sh
yum install -y epel-release
yum install -y kernel-devel
yum install -y zfs
```

对于 EL8 及更新版本，分别运行：

```sh
dnf install -y epel-release
dnf install -y kernel-devel
dnf install -y zfs
```

> **注意**
>
> 从 DKMS 切换到 kABI 跟踪 kmod 时，请首先卸载现有的 DKMS 软件包。这将移除所有已安装内核的内核模块，然后可以按照下节所述安装 kABI 分支 kmod。

## kABI 分支 kmod

默认情况下，*zfs-release* 软件包配置为安装 DKMS 风格的软件包，以便兼容广泛的内核。要安装 kABI 跟踪 kmod，必须将默认仓库从 *zfs* 切换为 *zfs-kmod*。请注意，kABI 分支 kmod 仅经过验证可在发行版提供的非 Stream 内核上使用。

对于 EL7，运行：

```sh
yum-config-manager --disable zfs
yum-config-manager --enable zfs-kmod
yum install zfs
```

对于 EL8 及更新版本，运行：

```sh
dnf config-manager --disable zfs
dnf config-manager --enable zfs-kmod
dnf install zfs
```

在默认情况下，当检测到 ZFS 池时，会自动加载 OpenZFS 内核模块。如果希望在启动时始终加载这些模块，可以在 `/etc/modules-load.d` 中创建如下配置：

```sh
echo zfs >/etc/modules-load.d/zfs.conf
```

> **注意**
>
> 当更新到新的 EL 点版本时，由于内核中上游 kABI 的变化，现有 kmod 软件包可能无法工作。当前发行版软件包的配置可能已提供了更新的软件包，但如果版本号不更新，包管理器可能不会自动安装该软件包。升级时，用户应验证 *kmod-zfs* 软件包是否提供了适用的内核模块，如有必要重新安装 *kmod-zfs* 软件包。

## 以前的 EL 点版本

当前发行版软件包使用 `${releasever}`，而不是像以前的发行版软件包那样指定特定的点版本。通常会将 `${releasever}` 解析为主版本号（例如 `8`），生成的仓库 URL 会被别名为当前点版本（例如 8.7），但可以通过指定 `--releasever` 使用以前的仓库。

```sh
[vagrant@localhost ~]$ dnf list available --showduplicates kmod-zfs
Last metadata expiration check: 0:00:08 ago on tor 31 jan 2023 17:50:05 UTC.
Available Packages
kmod-zfs.x86_64                          2.1.6-1.el8                          zfs-kmod
kmod-zfs.x86_64                          2.1.7-1.el8                          zfs-kmod
kmod-zfs.x86_64                          2.1.8-1.el8                          zfs-kmod
kmod-zfs.x86_64                          2.1.9-1.el8                          zfs-kmod
[vagrant@localhost ~]$ dnf list available --showduplicates --releasever=8.6 kmod-zfs
Last metadata expiration check: 0:16:13 ago on tor 31 jan 2023 17:34:10 UTC.
Available Packages
kmod-zfs.x86_64                          2.1.4-1.el8                          zfs-kmod
kmod-zfs.x86_64                          2.1.5-1.el8                          zfs-kmod
kmod-zfs.x86_64                          2.1.5-2.el8                          zfs-kmod
kmod-zfs.x86_64                          2.1.6-1.el8                          zfs-kmod
[vagrant@localhost ~]$
```

在上例中，前面的软件包是为 EL8.7 构建的，后面的为 EL8.6 构建的。

## 最新仓库（EL8+）

*zfs-latest* 仓库包含最新发布的、正在积极开发的 OpenZFS 版本。它将包含最新功能，并被认为是稳定的，但实际使用测试较少，相比 *zfs-legacy*。*zfs-latest* 相当于 Fedora 上的默认 *zfs* 仓库。来自最新仓库的软件包可以按如下方式安装。

对于 EL8 及更新版本，运行：

```sh
sudo dnf config-manager --disable "zfs*"
sudo dnf config-manager --enable zfs-latest
sudo dnf install zfs
```

> **注意**
>
> DKMS 软件包使用 *zfs-latest*，kABI 跟踪 kmod 软件包使用 *zfs-latest-kmod*。

## 传统仓库（EL8+）

*zfs-legacy* 仓库包含以前发布的、仍在积极更新的 OpenZFS 版本。通常，该仓库提供与 RHEL 和 CentOS 基础发行版的主 *zfs* 仓库相同的软件包。来自传统仓库的软件包可以按如下方式安装。

对于 EL8 及更新版本，运行：

```sh
sudo dnf config-manager --disable "zfs*"
sudo dnf config-manager --enable zfs-legacy
sudo dnf install zfs
```

> **注意**
>
> DKMS 软件包使用 *zfs-legacy*，kABI 跟踪 kmod 软件包使用 *zfs-legacy-kmod*。

## 版本特定仓库（EL8+）

版本特定仓库为希望运行特定分支（例如 2.3.x）的 ZFS 的用户提供。来自版本特定仓库的软件包可以按如下方式安装。

对于 EL8 及更新版本，启用 ZFS 分支 x.y 的版本特定仓库，运行：

```sh
sudo dnf config-manager --disable "zfs*"
sudo dnf config-manager --enable zfs-x.y
sudo dnf install zfs
```

> **注意**
>
> DKMS 软件包使用 *zfs-x.y*，kABI 跟踪 kmod 软件包使用 *zfs-x.y-kmod*。

## 测试仓库（已弃用）

*zfs-testing* 和 *zfs-testing-kmod* 仓库已弃用，推荐使用 *zfs-latest*。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/zfs/an-zhuang-zhi-yin/ji-yu-rhel-de-yan-sheng-fa-xing-ban/index.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
