9.7 发行注记


Red Hat Enterprise Linux 9.7

Release Notes for Red Hat Enterprise Linux 9.7

Red Hat Customer Content Services

摘要

本发行注记提供了在 Red Hat Enterprise Linux 9.7 中已实现的改进和附加组件的高级信息,并记录了此版本中的已知问题,以及重要的 bug 修复、技术预览、已弃用的功能和其他详情。
有关安装 Red Hat Enterprise Linux 的详情,请参考 第 3.1 节 “安装”

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

通过 Jira 提交反馈(需要帐户)

  1. 登录到 Jira 网站。
  2. 单击顶部导航栏中的 Create
  3. Summary 字段中输入描述性标题。
  4. Description 字段中输入您对改进的建议。包括文档相关部分的链接。
  5. 点对话框底部的 Create

第 1 章 概述

1.1. RHEL 9.7 的主要变化

安装程序和镜像创建

RHEL 镜像构建器的主要亮点:

  • 您可以使用 RHEL 镜像构建器创建带有高级分区的磁盘镜像。
  • 您可以自定义蓝图,以便在构建 ISO 镜像时启用注入 Kickstart 文件。
  • 使用 RHEL 镜像构建器(如 AWS 或 KVM 格式)创建的系统镜像没有单独的 /boot 分区。
  • RHEL Image Builder 现在支持 WSL2 镜像。

如需更多信息,请参阅 新功能 - 安装程序和镜像创建

安全性

系统范围的加密策略 引入了 PQ 子策略,以启用 post-quantum 加密(PQC)算法,并包含对应用程序中支持 PQC 的很多改进。

OpenSSL 3.5 引入了对 ML-KEM、ML-DSA 和 SLH-DSA post-quantum 算法的支持,并将混合 ML-KEM 算法添加到默认的 TLS 组列表中。

如需更多信息,请参阅 新功能 - 安全性

内核

RHEL 9.7 增加内核比较改进,提高了性能分析和能源遥测。更新包括 rng-tools 中的优化 jitter 熵源、perf 和 BPF 的上游校准到 v6.14 和 v6.15,扩展 uncorecore 事件计数器、Intel RAPL 能源事件、Intel Trace Hub (NPK)设备 ID,以及刷新的崩溃分析和 python-drgn 工具。NVMe-TCP kdump 到 NVMe 命名空间可能会在某些环境中失败。在与此限制相关的情况下请小心操作。

动态编程语言、网页和数据库服务器

以下应用程序流的后续版本现在可用:

  • Node.js 24

如需更多信息,请参阅 新功能 - 动态编程语言、Web 和数据库服务器 以及 技术预览 - 动态编程语言、Web 和数据库服务器

编译器和开发工具
更新了系统工具链

以下系统工具链组件已更新:

  • Glibc 2.34
  • annobin 12.98
更新了性能工具和调试器

RHEL 9.7 中更新了以下性能工具和调试器:

  • GDB 16.3
  • Valgrind 3.25.1
  • SystemTap 5.3
  • Dyninst 13.0.0
  • elfutils 0.193
  • libabigail 2.8
更新了性能监控工具

RHEL 9.7 中更新了以下性能监控工具:

  • PCP 6.3.7
  • Grafana 10.2.6
.NET 10.0 现在包括在 RHEL 中

Red Hat Enterprise Linux (RHEL)支持 .NET,它是一个通用的开发平台,具有自动内存管理和现代编程语言,可让您有效地构建高质量的应用程序。在这个版本中,增加了对最新版本 .NET 10.0 (Long-Term Support)的支持,扩展 RHEL 中提供的版本。其他支持的版本包括 .NET 9.0 (Standard-Term Support)和之前的长期支持版本 .NET 8.0。

如需更多信息,请参阅 .NET 10.0 RPM 软件包和 .NET 10.0 容器的发行注记

更新了编译器工具集

RHEL 9.7 中更新了以下编译器工具集:

  • GCC Toolset 15

    • GCC 15.1
    • binutils 2.44

      请注意,从版本 15 开始,GCC Toolset 中不提供 Annobindwz

  • LLVM Toolset 20.1.8
  • Rust Toolset 1.88.0
  • Go Toolset 1.24

有关详细更改,请参阅 新功能 - 编译器和开发工具

Web 控制台

cockpit 软件包已升级至版本 344,它提供了很多改进,最重要的是对 Patternfly 6 系统设计的升级。

如需更多信息,请参阅 新功能 - Web 控制台

1.2. 原位升级

从 RHEL 8 原位升级到 RHEL 9

目前支持的原位升级路径包括:

  • 在以下构架中,从 RHEL 8.10 到 RHEL 9.4、9.6 和 9.7:

    • 64 位 Intel、AMD 和 ARM
    • IBM POWER 9 (little endian)及更新版本
    • IBM Z 架构,不包括 z13
  • 在使用 SAP HANA 的系统上,从 RHEL 8.10 到 RHEL 9.4 和 9.6

如需更多信息,请参阅支持的 Red Hat Enterprise Linux 原位升级路径

有关执行原位升级的步骤,请参阅从 RHEL 8 升级到 RHEL 9

有关在具有 SAP 环境的系统上执行原位升级的说明,请参阅 如何将 SAP 环境从 RHEL 8 原位升级到 RHEL 9

主要改进和程序错误修复包括:

  • 修复了在使用 fapolicyd 软件框架的系统上进行原位升级的问题。
  • 在执行升级时禁用 localpkg_gpgcheck DNF 选项,允许安装捆绑的 leapp-deps-el10leapp-repository-deps-el10 metapackages。
  • 作为技术预览介绍 LiveMode 功能。LiveMode 允许您使用标准引导过程进行升级。您还可以使用 LiveMode 进行故障排除和测试。如需更多信息,请参阅使用 LiveMode 配置升级
  • 在使用已弃用的 network-legacy dracut 模块的系统上禁止升级以防止内核 panic。
  • 在原位升级过程中迁移 SSSD 配置。
  • 在 Amazon Web Services (AWS)、Azure 和 Google Cloud 上使用 Red Hat Upgrade Infrastructure (RHUI)的 PAYG RHEL 系统上启用升级。
从 RHEL 7 原位升级到 RHEL 9

无法执行从 RHEL 7 直接升级到 RHEL 9 的原位升级。但是,您可以执行从 RHEL 7 原位升级到 RHEL 8,然后再执行到 RHEL 9 的第二个原位升级。如需更多信息,请参阅 使用 Leapp 对多个 RHEL 主版本进行原位升级

1.3. 红帽客户门户网站 Labs

红帽客户门户网站 Labs 是客户门户网站的一个部分中的一组工具,地址为 https://access.redhat.com/labs/。红帽客户门户网站 Labs 中的应用程序可帮助您提高性能、快速解决问题、发现安全问题以及快速部署和配置复杂应用程序。一些最常用的应用程序有:

1.4. 其他资源

与其他版本系统相比, Red Hat Enterprise Linux 9 的能力和限制可在知识库文章Red Hat Enterprise Linux 技术能力和限制中获得。

有关 Red Hat Enterprise Linux 生命周期 的详情请查看 Red Hat Enterprise Linux 生命周期文档

软件包清单文档为 RHEL 9 提供软件包列表,包括许可证和应用程序兼容性等级。

Red Hat Enterprise Linux 9: Application Compatibility Guide 文档中的解释应用程序兼容性等级

RHEL 8 和 RHEL 9 的主要区别 (包括删除的功能)包括在使用 RHEL 9 时的注意事项

有关如何执行从 RHEL 8 到 RHEL 9 的原位升级的说明,请参考从 RHEL 8 升级到 RHEL 9 的文档。

Red Hat Insights 现在 是红帽 Lightspeed。这是仅在名称里更改,您依赖 Red Hat Insights 名称下的所有相同产品功能、功能和功能都会保留在 Red Hat Lightspeed 名称下。红帽 Lightspeed 包括在所有 RHEL 订阅中,您可以主动识别、检查和解决已知的技术问题。有关如何安装客户端并将您的系统注册到该服务的说明,请参阅 Red Hat Lightspeed 文档页面。

注意

公共发行注记包括访问原始跟踪票据的链接,但私有发行注记无法查看,因此不包括链接。[1]



[1] 公共发行注记包括访问原始跟踪票据的链接,但私有发行注记无法查看,因此不包括链接。

第 2 章 构架

Red Hat Enterprise Linux 9.7 与内核版本 5.14.0-611.5.1 一起分发,它支持以下构架(在最低版本(在括号中声明):

  • AMD 和 Intel 64 位体系架构 (x86-64-v2)
  • 64 位 ARM 架构(ARMv8.0-A)
  • IBM Power Systems, Little Endian(POWER9)
  • 64 位 IBM Z (z14)

请确定为每个构架购买正确的订阅。如需更多信息,请参阅 Red Hat Enterprise Linux 入门 - 附加构架

第 3 章 RHEL 9 发布的内容

3.1. 安装

Red Hat Enterprise Linux 9 使用 ISO 镜像安装。AMD64、Intel 64 位、64 位 ARM、IBM Power Systems 和 IBM Z 架构有两种类型的 ISO 镜像:

  • 安装 ISO:包含 BaseOS 和 AppStream 软件仓库的完整安装镜像,并允许您在没有附加软件仓库的情况下完成安装。在产品下载页面中,安装 ISO 被称为 Binary DVD

    注意

    安装 ISO 镜像的大小为几个 GB,因此可能不适用于光盘介质格式。当使用安装 ISO 镜像时,建议使用 USB 盘或 USB 硬盘驱动器创建可引导安装介质。您还可以使用 Image Builder 工具创建自定义的 RHEL 镜像。有关镜像构建器的更多信息,请参阅编写自定义的 RHEL 系统镜像文档。

  • 引导 ISO:用来引导到安装程序的最小引导 ISO 镜像。这个选项需要访问 BaseOS 和 AppStream 软件仓库来安装软件包。软件仓库是安装 ISO 镜像的一部分。您还可以在安装过程中注册红帽 CDN 或 Satellite,以使用来自红帽 CDN 或 Satellite 的最新 BaseOS 和 AppStream 内容。

有关下载 ISO 镜像、创建安装介质和完成 RHEL 安装的说明,请参阅 从安装介质交互式安装 RHEL 文档。有关自动的 Kickstart 安装和其他高级主题,请参阅 自动安装 RHEL 文档。

3.2. 软件仓库

Red Hat Enterprise Linux 9 由两个主要软件仓库发布:

  • BaseOS
  • AppStream

两个软件仓库都需要一个基本的 RHEL 安装,所有 RHEL 订阅都包括它们。

BaseOS 存储库中的内容旨在提供底层操作系统功能的核心集合,其为所有安装提供基础。这部分内容采用 RPM 格式,它的支持条款与之前的 RHEL 版本相似。如需更多信息,请参阅覆盖范围详情文档。

AppStream 仓库的内容包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作负载和使用案例。

另外,所有 RHEL 订阅都可以使用 CodeReady Linux Builder 软件仓库。它为开发人员提供了额外的软件包。不支持包括在 CodeReady Linux Builder 存储库中的软件包。

有关 RHEL 9 软件仓库及其提供的软件包的更多信息,请参阅软件包清单

3.3. 应用程序流

用户空间组件的多个版本会以 Application Streams(应用程序流)的形式提供,其更新频率会比核心操作系统软件包的更新频率更快。这为自定义 RHEL 提供了更大的灵活性,而不影响平台或特定部署的基本稳定性。

应用程序流以 RPM 格式提供,可以是一个模块(RPM 格式的一个扩展),软件集合(Software Collections,),或 Flatpaks。

每个 Application Stream 组件都有其特定的生命周期,可能和 RHEL 9 的生命周期相同或更短。有关 RHEL 生命周期信息,请查看 Red Hat Enterprise Linux 生命周期

RHEL 9 改进了应用程序流的使用体验,它提供了初始的应用程序流版本,可以使用传统的 dnf install 命令作为 RPM 软件包进行安装。

注意

某些 RPM 格式的初始应用程序流的生命周期比 Red Hat Enterprise Linux 9 要短。

一些额外的 Application Stream 版本将作为模块发布,并在以后的 RHEL 9 次要发行本中带有较短的生命周期。模块是代表逻辑单元的软件包集合: 应用程序、语言堆栈、数据库或一组工具。这些软件包被一同构建、测试并发布。

始终决定要安装哪个版本的应用程序流,并确保首先查看 Red Hat Enterprise Linux 应用程序流生命周期

需要快速更新的内容(例如备用编译器和容器工具)会在滚动流中提供,且不会并行提供替代版本。滚动流可以打包为 RPM 或模块。

有关 RHEL 9 中可用的 Application Streams 及其应用程序兼容性级别的详情,请查看软件包清单Red Hat Enterprise Linux 9: Application Compatibility Guide 文档中的解释应用程序兼容性等级。

3.4. 使用 YUM/DNF 的软件包管理

在 Red Hat Enterprise Linux 9 中,使用 DNF 确保软件安装 。红帽继续支持使用 yum 术语,以便与以前的 RHEL 主版本保持一致。如果您键入 dnf 而不是 yum,则命令按预期运行,因为它们都是兼容性的别名。

虽然 RHEL 8 和 RHEL 9 基于 DNF,但它们与 RHEL 7 中使用的 YUM 兼容。

如需更多信息,请参阅使用 DNF 工具管理软件

第 4 章 新功能

这部分论述了 Red Hat Enterprise Linux 9.7 中引入的新功能和主要改进。

4.1. 安装程序和镜像创建

fips=1 的新引导菜单条目添加到 ISO 安装中

在这个版本中,DVD 和 Boot ISO 镜像安装提供了一个新的引导菜单条目来设置 fips=1 内核引导选项。这简化了这个过程,如在 RHEL 安装过程中启用 FIPS 模式,可确保系统使用 FIPS 批准的算法生成所有密钥,并持续监控测试。通过使用这个引导选项,您可以使用 fips=1 内核参数开始安装,并可以联邦信息处理标准(FIPS) 140 要求为目标。

Jira:RHEL-91930

蓝图文件自定义现在支持从外部源引用文件的 URI 字段

在这个版本中,为蓝图文件自定义结构添加了 URI 字段支持。因此,您可以从外部位置引用和源文件,而不只是直接包含在蓝图中的源文件,从而为构建系统提供更灵活的自定义,以及更适应的构建体验。

Jira:RHELDOCS-21016[1]

RHEL 镜像构建器支持一个新的镜像类型 vagrant-libvirt for vagrant

在这个版本中,RHEL 镜像构建器支持 libvirt hypervisor,您可以使用 Vagrant 轻松运行 RHEL 虚拟机。此功能增强提供预配置的镜像,以确保一致且简化的设置。它还为 Vagrant 框中的 vagrant 用户授予 sudo 特权,从而更轻松地管理和执行管理任务。在 Vagrant 环境中使用 RHEL 虚拟机时,这些增强功能提供了更加高效且无缝的体验。

Jira:RHELDOCS-21025[1]

RHEL Image Builder GUI 支持模块化内容发现

从 RHEL 9.7 开始,RHEL Image Builder 图形用户界面(GUI)支持模块化的内容发现。这个功能引进了以下改进:

  • 在创建 RHEL OS 镜像时,您可以使用 RHEL Image Builder GUI 从各种存储库发现并包含模块化的内容,包括 RHEL AppStream 和第三方存储库,例如 Extra Packages for Enterprise Linux (EPEL)。
  • 增强的 RHEL 中的模块化支持。Application Streams 利用 DNF 模块和 modulemd 元数据来提供灵活的软件包管理。您可以在支持默认流和配置集的模块中指定版本流和用例配置集。
  • DNF 模块化实施更新。指定 RPM 组的 @ 字符语法可启用和安装模块流,从而为 kickstart 文件提供兼容性。

Jira:RHELDOCS-21026[1]

RHEL Image Builder 现在支持 WSL2 镜像

现在,您可以使用 RHEL 镜像构建器为 Linux (WSL2)创建 Windows 子系统。镜像类型以 wsl 格式提供,并使用镜像,通过双击生成的文件来部署镜像。

Jira:RHELDOCS-20633[1]

RHEL 中正式发布新的 rhel9/bootc-image-builder 容器镜像

RHEL 的镜像模式的 rhel9/bootc-image-builder 容器镜像包括一个最小版本的镜像构建器,其将可引导容器镜像(如 rhel-bootc)转换为不同的磁盘镜像格式(如 QCOW2、AMI、VMDK、ISO 等)。

Jira:RHELDOCS-17733[1]

bootc-image-builder 工具在 RHEL 中正式发布

bootc-image-builder 工具现在在 RHEL 中正式发布,可作为容器来轻松从 bootc 容器输入创建和部署兼容磁盘镜像。使用 bootc-image-builder 运行容器镜像后,您可以为所需的架构生成镜像。然后,您可以在虚拟机、云或服务器上部署生成的镜像。您可以使用 bootc 轻松更新镜像,而不必在每次需要新更新时使用 bootc-image-builder 重新生成内容。

Jira:RHELDOCS-17468[1]

composefs 只读文件系统支持 bootc/ostree 和 podman 项目

composefs 只读文件系统通常仅用于当前时间 bootc/ostree 和 podman 项目使用。使用 composefs,您可以使用这些项目来创建和使用只读镜像,在镜像间共享文件数据,并在运行时验证镜像。因此,您挂载了一个完全验证的文件系统树,并可以机会性地细粒度共享相同的文件。

Jira:RHEL-18157[1]

4.2. 安全性

NSS rebase 到 3.112

NSS 加密工具包软件包已更新到上游版本 3.112,它提供很多改进和修复。最值得注意的是,以下内容:

  • 添加了对基于 Module-Lattice 的数字签名算法(ML-DSA)的支持,它是一个 post-quantum 加密(PQC)标准。
  • 添加了对 MLKEM1024 键封装机制的 SSL 的混合支持。

这个版本出现以下已知问题:

  • 更新 NSS 数据库密码会破坏 ML-DSA seed。如需更多信息,请参阅 RHEL-114443

Jira:RHEL-103366

RHEL 9.7 crypto-policies 支持 post-quantum 加密

在这个版本中,您可以通过新的 PQ 子策略启用对 post-quantum 加密(PQC)的支持。RHEL 9.7 crypto-policies 中最显著的变化包括:

  • 应用 PQ 子策略后,例如,使用 update-crypto-policies --set DEFAULT:PQ 命令、混合模块-Lattice Based Key-Encapsulation Mechanism (ML-KEM)和 pure Module-Lattice-Based Digital Signature Standard (ML-DSA) post-quantum 加密算法,在 LEGACY、DEFAULT、FUTURE 和 FIPS 加密策略中启用。
  • PQC 算法在所有带有 PQ 子策略的策略中为 Sequoia PGP 工具启用。
  • 如果启用了 PQ 子策略,新的 OpenSSL 组选择语法会优先选择量子组,而不是类子组。您只能通过禁用所有 PQ 组来恢复此行为。
  • ML-DSA-44、ML-DSA-65 和 ML-DSA-87 PQC 算法为所有使用 PQ 子策略的 NSS TLS 连接启用了 ML-DSA-44、ML-DSA-65 和 ML-DSA-87 PQC 算法。
  • PQ 子策略还启用 mlkem768x25519secp256r1mlkem768,并为 NSS TLS 协商启用 secp384r1mlkem1024 混合 ML-KEM 组。

Jira:RHEL-91839,JIRA:RHEL-106866, JIRA:RHEL-97764, JIRA:RHEL-103963,JIRA:RHEL-103786

openssl rebase 到 3.5

OpenSSL 被 rebase 到上游版本 3.5。此版本提供重要的修复和增强,最重要的是:

  • 添加了对 ML-KEM、ML-DSA 和 SLH-DSA 后量算法的支持。
  • 将混合 ML-KEM 算法添加到默认的 TLS 组列表中。
  • 增强的 TLS 配置选项。
  • 根据 IETF RFC 9000 草案添加了对 QUIC 传输协议的支持。
  • 添加了对 EVP_SKEY 数据结构形式不透明对称密钥对象的支持。
  • 禁用 SHA-224 摘要。
  • SHAKE-128 和 SHAKE-256 实现不再具有默认的摘要长度。因此,这些算法不能与 EVP_DigestFinal/_ex () 函数一起使用,除非设置了 xoflen 参数。
  • 添加了客户端在 TLS 1.3 连接中发送多个密钥共享的功能。

Jira:RHEL-80854[1]

openssl 支持 sslkeylogfile

OpenSSL 支持 TLS 的 sslkeylogfile 格式。因此,您可以通过设置 SSLKEYLOGFILE 环境变量来记录 SSL 连接生成的所有 secret。

重要

启用 SSLKEYLOGFILE 变量会带来明确的安全风险。在 SSL 会话中记录交换密钥可让任何人对文件具有读取访问权限,以解密通过该会话发送的应用程序流量。仅在测试和调试环境中使用此功能。

Jira:RHEL-90854

混合 ML-KEM 加密在 FIPS 模式下工作

在这个版本中,在 RHEL 的 FIPS 模式中支持混合模块的基于密钥封装机制(ML-KEM) post-quantum 加密算法。当系统以 FIPS 模式运行时,OpenSSL 可以从 FIPS 供应商获取新混合 post-quantum 组一部分的 Elliptic Curve Diffie-Hellman (ECDH)部分。因此,OpenSSL 库对混合子密钥交换的 ECDH 部分使用 FIPS 兼容加密。当您将系统设置为 FIPS:PQ 加密策略时,混合子组会被默认启用,并由 OpenSSL 服务器和客户端使用。

Jira:RHEL-95239

crypto-policies 在 NSS 中支持 Ed25519

在这个版本中,对系统范围的加密策略的支持,对 Edwards-curve Digital Signature Algorithm (EdDSA)的 SHA-512 变体的支持,对于网络安全服务(NSS)可用。因此,crypto-policies 在 DEFAULT、LEGACY 和 FUTURE 策略中默认启用 Ed25519。

Jira:RHEL-104607

新软件包: Rust -rpm-sequoia

RHEL 9.7 引入了 Rust-rpm-sequoia 软件包,通过 multisig DNF 插件支持 RPM 软件包中的子量签名。这个添加可让您在使用 post-quantum 加密(PQC)算法签名的 RPM 软件包中验证 OpenPGP v6 签名。

Jira:RHEL-126412[1]

SCAP 安全指南 rebase 到 0.1.78

如需更多信息,请参阅 SCAP 安全指南发行注记

Jira:RHEL-111009

SELinux 策略为 qgs 守护进程添加规则和类型

qgs 守护进程添加到带有 linux-sgx 软件包的 RHEL 中,它支持 TDX 机密虚拟化。当客户机操作系统请求虚拟机(VM)时,qgs 守护进程通过 UNIX 域套接字与 QEMU 通信。为了实现此目的,SELinux 策略会添加新的 qgs_t 类型、访问规则和权限。

Jira:RHEL-87744

三个 RHEL 服务从 SELinux permissive 模式中删除

RHEL 服务的以下 SELinux 域已从 SELinux permissive 模式中删除:

  • powerprofiles_t
  • samba_bgqd_t
  • switcheroo_control_t

在以前的版本中,最近添加到 RHEL 10 的软件包中的这些服务被临时设置为 SELinux permissive 模式,允许在系统的其余部分处于 SELinux enforcing 模式时收集有关附加拒绝的信息。现在,这个临时设置已被删除,因此这些服务现在在 SELinux enforcing 模式下运行。

Jira:RHEL-82674[1]

SELinux 策略中 tuned-ppd restricted

RHEL 9.7 在 SELinux 策略中添加了额外的规则,用于限制 tuned-ppd 服务。在此次更新之前,服务使用 unconfined_service_t SELinux 标签运行,该标签违反了 CIS Server Level 2 基准 "Ensure No Daemons are Unconfined by SELinux" 规则。在这个版本中,该服务不再不受限制,并在 SELinux enforcing 模式下运行。

Jira:RHEL-69526

Keylime rebase 到版本 7.12.1

Keylime 软件包已 rebase 到上游版本 7.12.1。最重要的修复和增强包括:

  • 当更新到 7.12.0 时,为 CVE-2025-1057 解决了注册商组件的漏洞的安全修复。
  • 添加了对指定测量的引导策略的支持,从而使策略机构变得更加容易。
  • 修复了 Webhook 操作中的资源处理。
  • 修复了证书生成,以根据 RFC 5280 遵循 X.509 v3 证书和 X.509 v2 证书撤销列表(CRL)标准。

Jira:RHEL-78418

SELinux 为 /dev/diag分配特定类型的

在这个版本中,diagnostics _device_t 类型被分配给 SELinux 策略中的 /dev/diag 设备。因此,SELinux 可以正确控制对该设备的访问。

Jira:RHEL-95342[1]

OpenSSL PKCS modprobe 供应商添加了对 Ex=RSA 加密的支持

这个 OpenSSL PKCS modprobe 供应商的更新启用了使用带有 OpenSSL 的 PKCSGRESS 令牌,而无需依赖已弃用的功能。这个替代方案解决了不受支持的 RSA padding 模式问题,确保在 RHEL 9 上无缝地使用带有硬件安全模块(HSM)的 Ex=RSA 密码。这会导致消除 TLS 握手失败,并在使用 OpenSSL 和 PKCS modprobe 令牌建立 TLS 1.2 连接时提供安全通信。

Jira:RHEL-105625

新软件包: fips-provider-next

fips-provider-next 软件包提供下一版本 FIPS 提供程序,该提供程序提交至国家标准与技术研究院(NIST)进行验证。默认情况下不安装软件包,因为 openssl-fips-provider 软件包是经过验证的 OpenSSL FIPS 供应商。从 swigopenssl-fips-provider 切换到fips-provider-next:

# dnf swap openssl-fips-provider fips-provider-next

Jira:RHEL-105009

rsyslog imuxsock 提供了新的 ratelimit.discarded 计数器

在这个版本中,imuxsock Rsyslog 模块包括一个新的计数器 ratelimit.discarded,它跟踪因为 Unix 套接字速率限制而丢弃的消息数量。此增强为管理员提供对消息丢失的可见性,因为速率限制,使它们能够微调速率限制设置,并防止关键日志被丢弃。

Jira:RHEL-66274

rsyslog imfile 提供新的 deleteStateOnFileMove 选项

在这个版本中,新的 deleteStateOnFileMove 参数已被添加到 imfile 模块中,作为模块级别和 per-action 选项提供。当监控日志文件被轮转或移动时,这个增强解决了在 spool/ 目录中累积的孤立状态文件的问题。通过启用此参数,您可以在移动日志文件时自动清理这些过时的文件,防止磁盘空间被浪费并简化管理。

Jira:RHEL-92262[1]

4.3. 订阅管理

注册到启用了 SCA 的组织的系统简化状态

在此次更新之前,当注册到启用了简单内容访问(SCA)的机构时,subscription-manager status 命令会报告 Overall Status: DisabledSystem Purpose Status: Disabled。由于此状态可能会造成混淆,因此通常误解为错误,所以状态报告已被简化。现在,Overall Status 报告 RegisteredNot registeredSystem Purpose 状态已被取消。

有关 SCA 的更多信息,请参阅 简单内容访问

Jira:RHEL-84890[1]

4.4. 软件管理

dnf4 可以用来运行 DNF 命令

在这个版本中,您可以输入 dnfdnf4 来运行 DNF 命令。

Jira:RHEL-82310

DNF 可以在 RPM 软件包中验证 RPMv6 签名

量级加密保证了软件的完整性和来源。但是,在量子计算中,标准非对称加密算法(如 RSA)不再相关。在这个版本中,除了标准 RPMv4 签名外,您还可以使用新的 multisig DNF 插件在 RPM 软件包上验证 RPMv6 签名。RPMv6 签名可以基于 quantum-safe 算法,如 ML-DSA。

要验证 RPMv6 签名,您可以通过 python3-dnf-plugin- multisig RPM 软件包安装 multisig 插件。

注意

成功验证是从将 gpgcheck 选项设置为 True 的仓库中安装、重新安装、升级或降级软件包的先决条件。

Jira:RHEL-100157

createrepo_c 支持 zstd

此功能增强添加了对 createrepo_c 命令的 Zstandard (zstd)压缩算法的支持。因此,createrepo_c 可以读取和生成使用 zstd 压缩的元数据。

Jira:RHEL-67689

dnf 标记 DNF 历史记录中的临时事务

dnf history info 命令显示事务是持久的还是临时的。因此,可以更轻松地跟踪软件包更改,特别是对于有很多临时软件包的系统。

Jira:RHEL-84512

RPM 在安装过程中记录原始软件包的校验和

在这个版本中,RPM 会在安装过程中记录整个 .rpm 软件包的 SHA256 和 SHA512 摘要。然后,您可以从 RPM 数据库检索这些摘要,以验证安装的软件包是否与特定的 .rpm 文件对应。因此,您可以通过重新验证安装的软件包集是否与位位(位位,一组已知 .rpm 软件包的集合)来改进 RHEL 系统的完整性,如 DNF 存储库中可用的软件包。

要输出安装的软件包摘要,请使用以下命令:

$ rpm -q --qf "[%{packagedigestalgos:hashalgo} %{packagedigests}\n]" <package_name>

您还可以通过配置新的 %_pkgverify_digests 宏来自定义数据库中记录哪些摘要类型,例如:

%_pkgverify_digests 8:10

Jira:RHEL-35619

RPM 支持 spec-local 文件属性和依赖项生成器

文件属性及其依赖项生成器通常在构建使用这些属性的软件包之前必须安装的独立软件包中提供。但是,您可能需要 file 属性在构建附带此属性的软件包期间生效。您可能还需要只用于构建软件包的 file 属性,而无需提供属性。

在这个版本中,您可以通过执行以下操作注册 spec-local 文件属性和生成器:

  1. 定义 %_local_file_attrs 宏。%_local_file_attrs 接受以冒号分隔的新属性名称列表,以直接在 spec 文件中注册。
  2. 为每个属性定义一个或多个依赖项生成器宏,如 %__NAME_provides%__NAME_path,其中 NAME 是本地文件属性的名称。

RPM 随后在构建 spec 文件时将文件属性用于依赖项生成。因此,您可以创建不一定要安装的构建时文件属性。

例如,以下 spec 文件片段使用与您的软件包源捆绑的 foobar.sh 脚本为每个打包文件生成提供:

Source1: foobar.sh
[...]
%define _local_file_attrs foobar
%define __foobar_provides %{SOURCE1}
%define __foobar_path .*

Jira:RHEL-52772

新的 $releasever_major$releasever_minor 变量

提供了新的 $releasever_major$releasever_minor 变量,以更好地支持 Extra Packages for Enterprise Linux (EPEL)存储库和其他按 RHEL 主版本发布内容的软件仓库,而不是每个次版本。这些变量会自动来自 $releasever 变量或 system-release (releasever_major)system-release (releasever_minor) 虚拟提供。因此,您可以使用 $releasever_major$releasever_minor 来创建在多个 RHEL 主版本或次版本间工作的存储库配置文件。

Jira:RHEL-65817

4.5. Shell 和命令行工具

3.25.0 提供的 openCryptoki

openCryptoki 软件包在 3.25.0 版本中提供。添加了对以下情况的支持:

  • 在 EP11 中:

    • PKCSGRESS v3.0 SHA3 和 SHA3-HMAC 机制
    • PKCSGRESS v3.0 SHA3 机制和 RSA-OAEP 的 MGFs
    • RSA-PKCS 和 ECDSA 机制的 PKCSGRESS v3.0 SHA3 变体
    • 通过 C_CreateObject 不透明安全密钥 blob 导入
  • 在 ICA/Soft 中:

    • PKCSGRESS v3.0 SHAKE 密钥生成
    • CKM_AES_KEY_WRAP[rhacm] 机制
    • CKM_ECDH_AES_KEY_WRAP 机制
    • 使用 AES-GCM 的密钥嵌套
  • 在 CCA 中:

    • CCA AES CIPHER 安全密钥类型
    • CKM_ECDH1_DERIVE 机制
    • 在 s390x 和 non-s390x 平台上的较新的 CCA 版本
    • CKM_AES_GCM 仅用于单部分操作
  • CCA/Soft/ICA:CKM_RSA_AES_KEY_WRAP 机制.
  • P11KMIP :添加一个用于导入和导出 PKCSxdg 密钥到 KMIP 服务器的工具。
  • ICA:根据 libica 是否处于 FIPS 模式报告机制。

Jira:RHEL-73344[1]

GIMP rebase 到 3.0.4

GNU 镜像操作程序(GIMP)已 rebase 到 RHEL 9.7 中的稳定的上游版本 3.0.4。

Jira:RHEL-40106[1]

4.6. 基础架构服务

RHEL 现在装有 dyninst 版本 13.0.0

dyninst 框架被 rebase 到上游版本 13.0.0 此版本提供以下改进列表:

  • 改进了对 AMD GPU 二进制文件的支持。
  • 改进了 x86 指令和 C++ DWARF 构造的解析。

如需更多信息,请参阅上游文档

Jira:RHEL-87002

RHEL 现在装有 SystemTap 版本 5.3

SystemTap 被 rebase 到版本 5.3,其多线程解析功能现在通过缩短几秒的初始化时间来提高启动性能。

Jira:RHEL-87000

elfutils 现在被 rebase 到版本 0.193

elfutils 0.193 现在包括在 RHEL 9.7 中。这个版本中的显著变化包括:

  • debuginfod 现在支持 web API 中的 CORS (Web API 访问),并提供 a- cors 选项。new -listen-address 选项启用将 HTTP 侦听套接字绑定到特定的 IPv4 或 IPv6 地址。debuginfod 客户端现在缓存 x-debuginfod netobserv HTTP 标头以及下载的文件。
  • libdw 库添加 dwarf_languagedwarf_language_lower_bound 函数,改进了对 DWARF6 语言元数据的支持和 Nim、Dylan、A Algol68、V 和 Mojo 的新语言常量。dwarf_srclang 函数与 DWARF6 语言常量兼容。
  • libdwfl_stacktrace 实验性接口可以取消回卷堆栈样本来调用链,并为多个进程缓存 ELF 数据。这个接口最初支持 perf_events 堆栈示例数据,并作为技术预览提供。
  • libelf 库为具有超过 64K 部分的 ELF 文件具有更强大的 elf_scnshndx 实施。
  • readelf 工具改进了对 ELF 数据的处理。the --section-headers 选项的输出现在包含一个用于解释部分标记的键。

Jira:RHEL-86971

Valgrind 已升级至上游版本 3.25.1

从 3.24.0 版本(RHEL 9.6)升级到上游版本 3.25.1 (RHEL 9.7)提供以下显著改进:

  • 添加了对 zstd-compressed debug 部分的支持。
  • 对 Linux syscalls: landlock*, io_pgetevents, open_tree, move_mount, fsopen, fsconfig, fsmount, fspick, userfaultfd.
  • 增强的 file-descriptor tracking :--track- fds=yes and--track-fds=all 应用相同的行为,将文件描述符继承到标准输入、标准输出和标准错误。
  • 新的 option --modify-fds=high (使用 with -track-fds=yes)首先分配高数字描述符,以帮助检测描述符重复使用问题。
  • Helgrind 配置: pthread_cond_signalpthread_cond_broadcast 带有解锁的 mutex 警告现在由 --check-cond-signal-mutex=yes|no (default: no )控制。

特定于架构的增强:

  • 新的 IBM Z (s390x) NNPA 硬件支持。

Jira:RHEL-86998

Valgrind 软件包被分成子软件包以灵活安装

在此次更新之前,swigvalgrind 软件包包含在单个软件包中的所有组件。因此,您必须安装您不需要的功能。

在这个版本中,swigvalgrind 软件包已被分成多个子软件包。因此,您只能安装所需的组件,如核心valgrind 功能、后处理脚本、GDB 集成或文档。

Jira:RHEL-75468[1]

Valkey 8 现已正式发布

Valkey 8、高级键值存储,现在包括在 RHEL 中。它充当数据结构服务器,允许密钥存储各种数据类型,例如:

  • 字符串
  • hash
  • 列表
  • Set
  • 排序的集合

Valkey 与客户端完全兼容,作为 Redis 的替代选择。

Jira:RHEL-89978[1]

fs.protected_regularfs.protected_fifos sysctls 参数被默认启用

在以前的版本中,在 RHEL 9 内核中,添加了 fs.protected_regularfs.protected_fifos sysctls 参数,以便使一些数据欺骗攻击变得更加困难。现在,这些参数会被默认启用,这可以提高安装的安全性。要禁用这些 sysctl 参数,请在 /etc/sysctl.d/60-protected.conf 文件中添加以下行:

  • fs.protected_regular = 0
  • fs.protected_fifos = 0

Jira:RHEL-50534[1]

BrowseOptionsUpdate 指令现在包括在 RHEL 中

BrowseOptionsUpdate 指令决定了默认打印选项的源和更新频率。它指定系统是否从本地系统或远程打印服务器检索选项,如果它在服务启动时、以特定间隔更新它们。

现在,您可以将 BrowseOptionsInterval 指令及其值添加到 /etc/cups/cups-browsed.conf 文件中,以实现所需的行为。指令提供这些值:

  • none (默认):从之前会话创建的本地文件,加载默认选项。
  • 静态: cups-browsed 服务在启动时从远程服务器检索默认选项。
  • 动态 :系统根据 BrowseInterval 值更新默认选项,它也在 /etc/cups/cups-browsed.conf 文件中定义。

注: 在更改 BrowseOptionsInterval 指令值后,您需要重启该服务。

Jira:RHEL-6519[1]

RHEL 10 在 3.26.1 中提供 gpsd

在 RHEL 10 中,gpsd 工具 软件包在版本 3.26.1 中提供。此版本提供对 u-blox 接收器的改进支持。

Jira:RHEL-90132[1]

4.7. 网络

nmstate 可以根据 PCI 地址为网络接口分配设置

在这个版本中,您可以使用 Nmstate 根据其 PCI 地址而不是设备名称设置网络接口。使用此功能来确保集群中跨节点的一致性配置。详情请查看 使用带有设备路径的 nmstatectl 配置带有动态 IP 地址 的以太网连接,以及使用设备路径的 nmstatectl 配置以太网连接

Jira:RHEL-88993

Nmstate 中的绑定配置支持优化设置

在这个版本中,Nmstate API 支持以下绑定选项:

  • lacp_active :定义 Linux 内核是否定期发送链路聚合控制协议数据单元(LACPDU)帧。您只能在 802.3ad 绑定模式中使用此设置。
  • ns_ip6_target :当您将 arp_interval 参数设置为大于 0 的值时,会列出用作 IPv6 监控对等点的 IPv6 地址。

因此,管理员可以使用这些设置来优化网络绑定,以确保稳定的连接、高效带宽和 IPv6 兼容性。

Jira:RHEL-85784

nmtui 现在支持配置 loopback 接口

NetworkManager 已支持使用 nmcli 工具配置 loopback 接口。此功能增强为 nmtui 应用程序添加了相同的功能。因此,您可以在回环接口上配置 IP 地址和路由。

Jira:RHEL-85770

NetworkManager-libreswan 插件支持使用 Libreswan 默认值

在这个版本中,您可以将 Libreswan VPN 连接配置集中的 no-nm-default 属性设置为 true 来使用 Libreswan 而不是 NetworkManager 的默认值。这样可确保与为原生 Libreswan 定义的配置兼容。现在,您可以配置 subnet-to-subnet 隧道。

Jira:RHEL-85768

NetworkManager 现在在使用 IPv6 前缀长度时支持下游接口的固定子网 ID

在这个版本中,在使用 IPv6 前缀长度时,您可以在 NetworkManager 中为下游接口指定固定子网 ID。在以前的版本中,当重启系统时,这些接口的子网 ID 可能会改变。使用固定子网 ID 时,在重启 RHEL 主机时,分配给下游网络中设备的 IPv6 地址不会改变。

Jira:RHEL-85765

NBFT 解析器添加到 nm-initrd-generator

NVMe Boot Firmware Table (NBFT)是使用 ACPI 表将网络引导和存储配置到操作系统的标准方法。nm-initrd-generator 程序现在使用这个解析器来自动检测并应用此配置,并在没有手动设置的情况下创建必要的连接。这个实现替换了 dracut 中的 95nvmf 模块,它依赖于 systemd 自动化来实现更精简且可靠的引导序列。

Jira:RHEL-83061

nmstate 现在支持为网络接口配置 FEC 设置

在这个版本中,您可以使用 Nmstate 应用 Forward Error Correction (FEC)模式,如 RS-FECBase-RDisabled 到接口。这些设置对于在不重新传输的情况下检测和更正错误来提高数据传输可靠性至关重要。现在,您可以使用 Nmstate 应用 FEC 设置,而不是手动配置它们或使用特定于平台的工具。

Jira:RHEL-80725[1]

nmstate 现在支持 mtuquickack 路由选项

在这个版本中,您可以使用 Nmstate 设置 mtuquickack 路由选项。如果最大传输单元与默认值和调整 TCP 确认行为不同,这些设置对于优化网络性能非常重要。现在,您可以更加精确地控制网络流量行为。

Jira:RHEL-80418

mlx5 驱动程序现在支持对称 OR-XOR RSS 哈希

在这个版本中,Receive Side Scaling (RSS)的默认转换(xfrm)现在是 symmetric-or-xor

由于这个新默认设置,使用 ethtool 工具修改 rx-flow-hash 设置现在需要以下操作之一:

  • rx-flow-hash 设置为与对称散列兼容的值:sdfn、sdfn
  • 在设置不同的 rx-flow-hash 值前,将 xfrm 设置为 none,例如:

    # ethtool -X enp0s1 xfrm none
    # ethtool -N enp0s1 rx-flow-hash udp4 n

Jira:RHEL-73517[1]

ModemManager rebase 到版本 1.22

ModemManager 软件包已升级至上游版本 1.22。这个版本包括对附加设备的程序错误修正和支持。

有关更改的完整列表,请参阅 上游发行注记

Jira:RHEL-68732

nmstate 现在支持 VLAN 接口的出口和入口优先级映射

NetworkManager 已经支持为 VLAN 接口配置流量优先级映射。在这个版本中,Nmstate 库也可以处理出口和入口优先级服务质量(QoS)映射规则。因此,您可以使用 Nmstate 创建 VLAN 并定义双向优先级映射,以帮助更精确地管理流量。

Jira:RHEL-67631

nmstate 现在支持使用 MAC 地址而不是接口名称配置路由

使用 Nmstate 时,您可以通过为其分配接口的 MAC 地址来创建网络连接。在这个版本中,您可以在路由配置中的 next-hop-interface 参数中使用配置集名称而不是接口名称。使用此功能,您可以在不了解接口名称的情况下创建静态路由。

Jira:RHEL-32495

新的网络数据包丢弃原因和 MIB 计数器

现在,内核的网络堆栈在丢弃网络数据包时提供了更详细的原因。此功能增强还添加了两个新的管理信息基础(MIB)计数器: LINUX_MIB_PAWS_TW_REJECTEDLINUX_MIB_PAWS_OLD_ACK。因此,调试和诊断网络问题现在更为容易。

Jira:RHEL-88890[1]

fwctl 子系统已添加到内核中

如果启用了内核锁定功能,则内核不允许访问 /sys/ 目录和 PCI 配置空间中的 resource0 文件。fwctl 内核子系统管理与软件定义设备中固件的通信,如 mlx5 网络接口控制器。这个子系统建立了一个标准化且安全的远程过程调用(RPC)接口,它允许用户空间应用程序与设备固件交互以进行诊断、配置和更新。除了新的子系统外,mstflint 工具现在也使用 fwctl 子系统,在这些安全环境中完全使用实用程序功能。

Jira:RHEL-86016[1]

ice 驱动程序现在支持减少 PF 的 MSI-X 向量使用情况,以释放相关 VF 的向量

有了这个增强,您可以减少分配给物理功能(PF)的 Message Signaled Interrupts eXtended (MSI-X)向量,以确保有足够数量的向量可用于关联的虚拟功能(VF)。详情请查看 物理功能 的 MSI-X 向量使用情况来释放相关虚拟功能的向量

Jira:RHEL-63642[1]

iproute rebase 到版本 6.14.0

iproute 软件包已更新至版本 6.14.0。

主要改进:

  • ip nexthop 命令支持 16 位下一跃点权重。
  • ip link rmnet 命令支持标志处理。
  • ip lwtunnel 命令支持设置并获取 'tunsrc' 属性。
  • ip monitor 命令添加了对监控多播地址的支持(ip monitor maddress)。
  • ip rule 命令支持 'dscp' 选择器。
  • ip rule 命令支持流标签。
  • ip route 命令支持 IPv6 流标签。
  • ip addressip link show 命令支持 'down' 过滤器。
  • tc flower 过滤器支持隧道元数据上的匹配。
  • tc fq 排队规则支持 TCA_FQ_OFFLOAD_HORIZON 属性。
  • tc 工具支持 Time-Sensitive Networking (TSN)中的 Hold/Release 机制,如 IEEE 802.1Q-2018 标准中指定的。
  • rdma monitor 命令添加了对监控远程直接内存访问(RDMA)事件的支持。
  • vdpa 工具支持设置 MAC 地址。
  • 改进了几个 man page。

重要的程序错误修复:

Jira:RHEL-90492

4.8. 内核

RHEL 9.7 中的内核版本

Red Hat Enterprise Linux 9.7 带有内核版本 5.14.0-611.5.1。

添加了对 virtio 设备的支持

在此次更新之前,KVM 客户端中的 virtio 设备都列为 generic-ccw。有了这个增强,您可以使用 lszdev 命令轻松地识别在哪个设备号连接了哪些设备类型:

# lszdev
TYPE ID ON PERS NAMES

virtio-balloon 0.0.0007 yes no
virtio-blk 0.0.0000 yes no vda
virtio-console 0.0.0004 yes no
virtio-gpu 0.0.0002 yes no
virtio-input 0.0.0005 yes no
virtio-input 0.0.0006 yes no
virtio-net 0.0.0001 yes no enc1
virtio-scsi 0.0.0003 yes no
virtio-vsock 0.0.0008 yes no

此增强还为 Red Hat Enterprise Linux 9.4 和 9.6 增加了额外的 chpstat 修复,改进了报告中的 DPU 使用率扩展(s390utilss390-tools)。

Jira:RHEL-73342[1]

kpatch-dnf 插件通过改进的内核管理来更新

在此次更新之前,kpatchkpatch-dnf 插件无法与 kpatch 支持使内核升级保持一致。因此,管理员可能会安装或升级到 kpatch 不支持的内核,从而增加运行不支持的内核的风险,并降低系统稳定性。

在这个版本中,kpatchkpatch-dnf 插件使管理员能够将内核更新集中到 kpatch 支持的内核更新上。因此,系统升级更为可靠,整体稳定性有所改进。

Jira:RHEL-85579[1]

ARM SPE 支持扩展至 内核中Neoverse-V2 和 Cortex CPU

内核中的 Arm SPE 功能支持已扩展为包括 Neoverse-V2 和 Cortex CPU。现在,用户可以在 Neoverse-V2 和 Cortex CPU 上运行工作负载时,访问 Arm SPE 功能来提高可观察性和分析。

Jira:RHEL-60216[1]

内核中Intel Arrow Lake U RAPL 能源事件支持

在此次更新之前,Intel Arrow Lake U 微架构不支持 RAPL (Running Average Power Limit)能源性能计数器。因此,用户无法使用标准 perf 工具监控或测量 Arrow Lake U 系统的能源消耗。

在这个版本中,为内核软件包中的 Arrow Lake U 添加了对 RAPL 能源事件的支持。perf 工具标识 Arrow Lake U 平台的功耗事件。现在,您可以监控 CPU 内核、GPU、软件包和系统域的能源使用情况。

Jira:RHEL-53585[1]

添加了对 HEKETI 内核中的内核能源计数器的支持

内核支持 AMD CPU 上的每个内核能源测量。Power Management Unit (PMU)会公开 HEKETIpower_core PMU 和energy-core 事件,以便您可以监控每个 CPU 内核的能源消耗。此增强与 AMD 每个内核能源计数器功能一致。

Jira:RHEL-52654[1]

对 Intel Clearwater Forest 内核计数器的 perf 支持

在此次更新之前,您无法使用 perf core 计数器监控 Intel Clearwater 上的硬件事件。在这个版本中,perf 软件包可识别 Clearwater forest Performance Monitoring Unit (PMU)。它提供命名的核心事件,包括顶级 1 指标,如前端绑定、后端绑定、停用和插槽。perf 还在此微架构上使用基于事件的架构抽样(PEBS)来提供所选事件的低数据抽样。因此,您可以收集核心计数器数据,并对 Clearwater Forest 系统执行顶级分析。

Jira:RHEL-47454[1]

自适应 PEBS 支持在 Intel Panther Lake 上的 perf 中启用计数器快照支持

在此次更新之前,Linux 内核的 perf 工具依赖于基于软件的示例读取来收集性能事件数据,这会在事件溢出后引入小计时和额外的开销。在这个版本中,adaptive PEBS 计数器快照在 Intel Panther Lake CPU 上提供。此硬件功能使内核能够直接捕获可编程计数器、固定功能计数器和性能指标,使用 PEBS 格式版本 6 在 PEBS 记录中直接捕获。

因此,计数器快照为软件样本读取提供了更准确且更低的替代方案,从而提高了性能监控和分析功能。

Jira:RHEL-47444[1]

Intel Trace Hub 支持 Intel Panther Lake

在这个版本中,为 Panther Lake 平台(P、H 和 U)添加了 Intel Trace Hub 设备 ID。基于 Panther Lake 的系统可以使用 Intel Trace Hub 功能调试和追踪。

Jira:RHEL-47424[1]

Intel Clearwater Forest 的 perf uncore 事件支持

在此次更新之前,Intel Clearwater forest Microarchitecture 不提供非核心事件监控。在这个版本中,perf 软件包支持 Clearwater Forest 系统上的非内核事件监控。因此,您可以在支持的硬件上执行高级性能分析和调试。

Jira:RHEL-45095[1]

Intel Arrow Lake H 微架构支持添加到 swig⁠intel_th⁠

在此次更新之前,Intel Trace Hub 无法识别 Arrow Lake H NPK 设备 ID,这会对使用此硬件的系统进行追踪和调试功能。有了这个更新,Intel Trace Hub 中的 Intel Arrow Lake H 微架构支持 Intel Arrow Lake H microarchitecture。因此,您已在 Arrow Lake H 平台上增强了追踪和调试功能。

Jira:RHEL-20110[1]

在内核中为 Intel Arrow Lake H 启用 perfmon 支持

在这个版本中,内核软件包 在 Intel Arrow Lake H microarchitecture 上为 Core、Uncore、Cstate 和 MSR 功能提供 PerfMon 支持。因此,您可以使用 perf 工具监控和分析特定于 Arrow Lake H 系统的性能指标。

Jira:RHEL-20094[1]

增强了虚拟和云环境中的 pstore 功能

永久保存崩溃和 panic 信息的 pstore 内核功能现在可以在虚拟环境和云平台中使用。在这个版本中,您可以在系统运行时,在没有 efi_ pstore.pstore_disable=0 内核参数的情况下为 pstore 启用 EFI 变量:

$ echo "N" > /sys/module/efi_pstore/parameters/pstore_disable

此功能增强简化了 pstore 的激活和后崩溃数据检索,改进了 ACPI ERST 方法不可用的环境中故障排除和系统可靠性。

Jira:RHEL-2564[1]

rteval 的默认测量模块现在是 rtla timerlat,用于更好地追踪问题延迟

有了这个增强,您应能够轻松识别问题延迟的来源。可以使用 rteval.config 文件选择所需的 cyclictest measurement 模块。

Jira:RHEL-97540[1]

KVM 模块集成到 realtime 内核软件包中

在这个版本中,删除了 RHEL 中 realtime Kernel 的 KVM 模块软件包的生成,与决定为基础 RHEL 使实时内核部署选项保持一致。这个更改简化了部署过程,将 KVM 模块直接集成到 realtime Kernel 软件包中,并消除了单独的 kernel-rt-kvm 软件包。因此,在 RHEL 上部署 realtime 内核时,用户将遇到更加无缝且高效的设置,从而提高了整体用户体验。

Jira:RHEL-76757[1]

内核 支持 Shadow Stack (SHSTK) Ring 3 内核

在此次更新之前,内核软件包 不支持 Ring 3 for x86_64 架构中的 Shadow Stack (SHSTK)。因此,用户空间应用程序可能会容易受到控制劫持攻击的影响。

在这个版本中,内核软件包 引入了对 Ring 3 的 Control-flow Enforcement Technology (CET) Shadow Stack 支持。此功能增强提供了一个硬件强制的辅助堆栈,不能被应用程序直接修改。因此,在支持的 Intel Sapphire Rapids 处理器上运行的应用程序现在可以改进了对用户空间中的控制流攻击的保护。

Jira:RHEL-15599[1]

python-drgn rebase 到版本 0.0.31

python-drgn 已 rebase 到版本 0.0.31。这个版本引进了几个改进和新功能:

  • 添加了对 debuginfod 的支持,它允许从 debuginfod 服务器自动检索调试信息。
  • 新的模块 API,其提供改进的可扩展性和集成功能。
  • 没有调试符号的内核堆栈取消卷,允许生成堆栈 trace,即使调试符号不可用。

有关更改的完整列表,请参阅上游更改日志:

Jira:RHEL-86264

crash rebase 到 9.0.0

crash 软件包(为实时系统和各种转储文件提供内核分析工具)已 rebase 到上游版本 9.0.0。此版本提供很多修复和增强,最重要的是:

  • 内部 gdb 数据库已更新至版本 16.2。
  • crash 工具现在支持跨编译。

Jira:RHEL-76270

支持 AMD CPU 的每内核能源跟踪(RAPL perf 事件)

在这个版本中,添加了核心 RAPL 计数器支持。因此,AMD 系统除软件包级别电源信息外还测量核心级别的电源信息。

Jira:RHEL-23496[1]

默认配置现在在 rng-tools中禁用 jitter 熵源

现在,在 rng-tools 中默认禁用 jitter 熵源。现代 CPU 通常提供硬件熵源,大多数虚拟机都将 /dev/hwrng 设备作为虚拟主机中的熵源提供。在这些环境中,jitter 熵源会消耗不必要的 CPU 周期。对于没有硬件熵源的旧硬件,您可以在 /etc/sysconfig/rngd 中明确启用 jitter 熵源。

因此,rngd 守护进程不再在具有硬件熵源的系统上不必要的消耗 CPU 周期。

Jira:RHEL-91119

IBM Power 上现在支持 NVMf-FC kdump

NVMf-FC kdump 现在支持 IBM Power 系统,以运行 kexec-tools。这允许使用 NVMe 存储设备,通过光纤通道网络捕获系统内存转储,以便高速和低延迟访问崩溃转储数据的存储。

Jira:RHEL-11471[1]

4.9. 引导加载程序

通过 Microsoft-signed shimaarch64 上启用安全引导

用于 64 位 ARM 架构的 5-4shim 软件包由 Microsoft 签名,以便在信任 Microsoft UEFI CA 的平台上默认启用安全引导。这会使 ARM 引导路径与 x86 一致,并不再需要添加自定义 wagonPK, HEKETIKEK, 或 HEKETIdb 条目。

在此次更新之前,64 位 ARM 架构上的 RHEL 9 无法在依赖 Microsoft 的 UEFI 信任链的云和厂商平台上使用安全引导。这会阻止标准兼容部署,包括 Google Compute Engine。

从 RHEL 9.7 开始,在 RHEL 9 中,对于 64 位 ARM 架构,安全引导默认可以正常工作。直接和回退引导路径成功,相关的 EFI 二进制文件会被正确签名。

Jira:RHEL-18969[1]

4.10. 文件系统和存储

multipathd 支持基于文件的套接字

在这个版本中,multipathd 守护进程除 abstract 命名空间套接字外,还会侦听基于文件的套接字 /run/multipathd.socket 上的命令。您可以使用新套接字文件的绑定挂载,从容器中与主机的 multipathd 守护进程通信。

Jira:RHEL-78758[1]

默认启用自动 RAID 检查

在这个版本中,raid-check 服务被默认启用。这样可确保 raid-check.service 在系统引导后以调度的间隔自动运行,执行定期 RAID 一致性检查而无需手动干预。

Jira:RHEL-86164

LVM RAID 在多个同时设备失败后修复卷

有了这个增强,您可以使用 lvconvert --repair /dev/VG-name/LV-name 命令重新集成缺少的 RAID 设备回条带 RAID (raid4、raid5 和 raid6)。即使临时缺少的设备数量超过 RAID 级别的容错性,在设备重新应用后,这个修复过程也可以正常工作。请注意,在修复卷之前,您必须卸载并停用卷以及顶部的文件系统。

Jira:RHEL-67039

4.11. 高可用性和集群

在 Podman 容器中管理 etcd 的新资源代理可用

在此次更新之前,Red Hat High Availability 不提供用于管理 Podman 容器中运行的 etcd 的资源代理。

在这个版本中,添加了新的 podman-etcd 资源代理。

因此,您可以为 Podman 容器中运行的 etcd 创建和管理资源。这个代理是带有隔离(TNF)解决方案的两个节点 OpenShift 所需的组件。

Jira:RHEL-88429

Filesystem 资源代理支持 aznfs 文件系统类型

在此次更新之前,要管理集群中的 Azure Network File System 文件共享,您必须使用 fstype=nfs 配置 Filesystem 资源代理。这个方法不支持特定于 Azure 的功能,如 Transit 中的加密。

在这个版本中,Filesystem 资源代理支持 aznfs 作为文件系统类型。

因此,您可以在创建 Filesystem 资源时设置 fstype=aznfs 来管理 Azure Network File System 文件共享。这可启用对 Azure 特定功能的支持。请注意,这个功能需要在所有集群节点上安装 Microsoft 存储库中的 aznfs 客户端软件包。

Jira:RHEL-88035

Oracle Database 23ai 作为集群资源被支持

在此次更新之前,Oracle 数据库资源代理没有经过测试以用于 Oracle Database 23ai 版本。因此,在 Pacemaker 集群中,这个版本不被支持作为高可用性资源。

在这个版本中,现有 Oracle 资源代理已使用 Oracle 数据库 23ai 成功测试并验证。

因此,Pacemaker 支持管理 Oracle 数据库 23ai 实例,为这个版本启用全面测试的高可用性配置。

Jira:RHEL-85220[1]

fence_sbd 代理可以自动检测 SBD 设备

在此次更新之前,在配置 fence_sbd 资源时,您需要使用 devices 参数明确指定 SBD 设备路径。

在这个版本中,fence_sbd 代理现在可以从系统检索设备配置。

因此,如果您在创建 fence_sbd 资源时没有设置 devices 参数,代理会自动使用 /etc/sysconfig/sbd 文件中的 SBD_DEVICE 变量中指定的设备。

Jira:RHEL-79798

watchdog 设备列表提供更详细的信息

在此次更新之前,当列出可用的 watchdog 设备时,输出仅显示设备路径,如 /dev/watchdog0。这使得管理员难以区分同一系统上的多个设备。

在这个版本中,输出包括每个 watchdog 的设备路径、身份和驱动程序。这允许轻松识别并选择正确的设备。

Jira:RHEL-76177

pcs 在删除最后一个隔离设备前警告用户

在此次更新之前,pcs allowed users to disable or remove the last fence device from a cluster, without a warning.这可能会意外地使集群处于不受支持的状态,而无需配置任何 STONITH 或 SBD 隔离。

有了这个增强,pcs 现在包含一个安全检查,以防止意外删除所有隔离机制。

因此,如果您试图使集群没有隔离,pcs 会显示一个错误并默认阻止更改。例如,当您尝试在禁用 SBD 时删除最后一个 STONITH 资源时会出现这种情况。如果需要,您可以覆盖此安全检查来强制更改。

Jira:RHEL-76170

pcs node 属性和 pcs node utilization 命令现在支持多种输出格式

在以前的版本中,pcs node 属性和 pcs node utilization 命令仅以人类可读的纯文本格式显示其输出。这个格式不适用于机器解析或轻松复制配置。

有了这个增强,在 pcs node 属性和 pcs node utilization 命令中添加了一个 new -output-format 选项。

现在,您可以以三种格式之一显示配置的节点属性和利用率:

  • 文本 :以纯文本形式显示输出。这是默认格式。
  • JSON :以机器可读的 JSON 格式显示输出,这对于脚本处理和自动化很有用。
  • cmd :显示输出作为一系列 pcs 命令,您可以使用它们在不同系统上重新创建相同的配置。

Jira:RHEL-76154

pcs alert config 命令现在支持多种输出格式

在以前的版本中,pcs alert config 命令只以人类可读的纯文本格式显示其输出。这个格式不适用于机器解析或轻松复制配置。

在这个版本中,在 pcs alert config 命令中添加了一个 new -output-format 选项。

现在,您可以使用三种格式之一显示配置的警报:

  • 文本 :以纯文本形式显示输出。这是默认格式。
  • JSON :以机器可读的 JSON 格式显示输出,这对于脚本处理和自动化很有用。
  • cmd :显示输出作为一系列 pcs 命令,您可以使用它们在不同系统上重新创建相同的警报配置。

Jira:RHEL-76153

pcs 会自动验证 CIB 以了解潜在的问题

在以前的版本中,pcs 工具不会自动在 Cluster Information Base (CIB)上运行高级验证检查。因此,某些集群错误配置可能会在常规操作过程中保持不变。

有了这个增强,pcs 已被更新,将 Pacemaker 的 CIB 验证工具集成到其工作流中。

因此,pcs 现在会自动执行验证检查,并在运行 pcs status,pcs cluster edit, 或 pcs cluster cib-push 命令时显示结果。

Jira:RHEL-76060

pcs 为失败的 CIB 更新提供更详细的错误消息

在以前的版本中,当使用 pcs cluster editpcs cluster cib-push 命令时 CIB 更新失败时,Pacemaker 提供的错误消息是通用的。它没有解释故障的具体原因,这会导致对无效配置进行故障排除。

在这个版本中,pcs 已被更新,以便在 CIB push 失败时从 Pacemaker 请求详细的验证检查。

因此,当 CIB 更新被拒绝时,pcs 现在会显示一个特定的错误消息,解释配置出错的内容。

Jira:RHEL-76059

新的 pcs 命令可用于重命名集群

在以前的版本中,无法使用 pcs 命令更改现有集群的名称。管理员必须执行一系列手动步骤,这些步骤比较复杂,并可能导致错误。

有了这个增强,引进了 pcs cluster rename 命令。

现在,您可以轻松地更改现有集群的名称。要重命名集群,请运行以下命令:

pcs cluster rename <new-name>

Jira:RHEL-76055

Nutanix AHV 虚拟化的新隔离代理现在可用

在以前的版本中,红帽高可用性附加组件没有为 Nutanix Acropolis Hypervisor (AHV)环境提供专用的隔离代理。

在这个版本中,添加了 fence_nutanix 代理。

现在,您可以为在 Nutanix AHV 平台中运行的集群节点配置 STONITH,启用完全支持的高可用性部署。

Jira:RHEL-68321[1]

改进了 pcs resource meta 命令,以支持捆绑包,并防止客户机节点错误配置

在以前的版本中,pcs resource meta 命令不支持管理捆绑包资源的 meta 属性。另外,命令不会阻止用户错误地修改客户机节点的连接参数,这可能会导致错误的资源。

有了这个增强,pcs resource meta 命令已被重写。

现在,您可以使用 pcs resource meta 更新捆绑包资源的 meta 属性。此外,在客户机节点上使用 命令时,现在它可以防止意外更改连接参数,从而避免潜在的错误配置。

Jira:RHEL-35420

IPaddr2 资源代理现在检测到网络链接失败

在此次更新之前,IPaddr2 资源代理不会监控网络接口的链接状态。因此,IPaddr2 资源继续报告节点上的成功,即使底层接口处于 DOWNLOWERLAYERDOWN 状态,从而导致集群在另一个节点上恢复资源。

在这个版本中,IPaddr2 代理已被改进,以检查接口的链接状态。

因此,如果其网络接口停机,IPaddr2 资源无法正确失败,从而可以正确故障转移。您可以通过在资源配置中设置 check_link_status=false 参数来禁用这个新的默认行为。

Jira:RHEL-7688[1]

fence_aws 代理支持立即关闭电源

在以前的版本中,当 fence_aws 代理执行 offreboot 操作时,它会触发实例的安全关闭。这会在隔离过程中引入一个延迟,因为该节点没有立即关闭。

在这个版本中,在 fence_aws 代理中添加了一个新的 skip_os_shutdown 参数。在 Y-stream 版本中默认启用此参数,并在 Z-stream 版本中默认禁用。

因此,当 skip_os_shutdown 设置为 true 时,fence_aws 代理会绕过安全关闭,并对实例执行立即硬电源。

Jira:RHEL-7601

HAProxy rebase 到 2.8

HAProxy 软件包已 rebase 到上游 Long-Term Support (LTS)版本 2.8。这个版本中的显著变化包括:

  • 在之前的 2.4 LTS 版本结束(EOL)日期为 Q2 2026 后,RHEL 9 的安全更新和关键修复。
  • 2.4 和 2.8 版本间累积的上游稳定性、性能和功能改进。

有关更改的完整列表,请参阅 HAProxy 网页

Jira:RHEL-74039[1]

4.12. 动态编程语言、网页和数据库服务器

PostgreSQL 16 提供了 PostGIS 扩展

此功能增强为 PostgreSQL 16 添加了 PostGIS 扩展。借助此扩展,PostgreSQL 支持地理对象,启用对 Geographic Information System (GIS)应用程序的 patial 查询和分析,如关系数据库中的映射、地理位置和距离计算。

Jira:RHEL-81603[1]

4.13. 编译器和开发工具

glibc 现在支持用于高级调度程序选项的sched_setattr 和 schedsched_getattr

在以前的版本中,autotuneglibc 通过 HEKETI <sched.h > 中定义的功能只提供对一组有限的 Linux 调度程序选项的访问。这限制了使用直接系统调用或 Linux 内核标头访问高级调度功能所需的应用程序。

有了这个增强,来自 schedsched_setattr 和 libpmemsched_getattr 中的可扩展调度程序配置机制现在可通过 HEKETIglibc autotune <sched.h& gt; 标头文件获得。此更改包括对其他调度策略的支持,如 HEKETISCHED_DEADLINE

因此,应用程序可以在不依赖于直接系统调用或特定于内核的标头的情况下从更广泛的调度选项中选择,从而提高了开发人员的可移植性和灵活性。

Jira:RHEL-56627[1]

glibc pthread_gettid_np 函数添加到 libc_nonshared.a

在以前的版本中,没有从 glibc autotunepthread_t handle 获取 Linux 任务或线程 ID (TID)的直接方法。新增的 HEKETIpthread_gettid_np 函数(在定义 HEKETI &lt;pthread.h &gt; 中声明)现在允许需要 TID 的应用程序(如使用 autotunesched_setattr 的应用程序直接从 vmcorepthread_t handle)检索 TID 值。

现在,应用程序可以使用预期 TID 的功能,这些函数从 swigpthread_t 处理获取后,从而提高了兼容性并简化线程管理。

Jira:RHEL-83017

为 inet_ntop 和 inet_pton 添加了对 inet_ntopinet_pton的 glibc

在以前的版本中,swigglibc API rhacminet_ntop 和 wagoninet_pton 没有包括 Source Fortification 支持,因此编译器无法在运行程序前捕获一些缓冲区错误。

在这个版本中,属性访问注解已添加到 rhacminet_ntop 和 rhacminet_pton 中,使编译器能够警告潜在的缓冲区滥用。现在,Source Fortification 包括了 API,提高了其安全性和可靠性。

Jira:RHEL-44920[1]

GDB 现在支持 IBM 的 z17 CPU 架构

改进了 HEKETIgdb 软件包,以支持使用 IBM 的 z17 CPU 架构引入的新硬件指令的二进制文件。在这个版本中,开发人员和系统管理员能够调试在 RHEL 9.7 上为最新的 IBM Z 硬件编译的应用程序。

Jira:RHEL-50069[1]

GCC Toolset 15 现已正式发布

在这个版本中,RHEL 9.7 提供了 swiggcc-toolset-15。工具集包括 GCC 和相关实用程序的最新支持版本,使开发人员能够利用最新的编译器技术构建、测试和部署应用程序。

Jira:RHEL-81741[1]

ELFv2 ABI 支持 ppc64le 上的 wagon-fpatchable-function-entry

在以前的版本中,在 swiggcc 中的 rhacm-fpatchable-function-entry 选项不支持 ppc64le 架构的 ELFv2 ABI,这会导致在该 ABI 不正确的位置生成 NOP 指令。这个问题导致在以 ELFv2 为目标时正确使用选项。

在这个版本中,在 ppc64le 上可以使用 HEKETI-fpatchable-function-entry 选项为 ELFv2 ABI 创建程序,确保 NOPs 被正确放置并改进在这个平台上构建的用户的兼容性。

Jira:RHEL-75806[1]

llvm-toolset rebase 到 LLVM 20

criullvm-toolset 更新至 LLVM 20,在 C、C++ 和 Rust 工作流之间提供改进的代码生成、性能优化以及扩展语言前端和库支持。此 rebase 协调 RHEL 中的依赖组件,包括为 requires res to annobin, annobin bcc, HEKETIbpftrace, wagonqt5-qttools, 和 rhacmmesa。该构建通过 swigllvm-20.1.8-3.el9 验证。

主要变化有:

  • 后端改进,包括 ppc64le 的修复。
  • Clang 和 LLVM 通过优化和诊断增强,以获得一般性能和可靠性。
  • 工具链生态系统通过协调的软件包重建刷新,以便与 LLVM 20 的兼容性。
  • 继续弃用旧目标与此流中的 ARM 和 MIPS 的上游方向一致。

Jira:RHEL-81006

改进了对使用多个动态链接器命名空间调试应用程序的 _r_debug 扩展支持

HEKETIglibc 软件包现在包含向后移植 _r_debug 扩展,以支持多个命名空间。在以前的版本中,当附加到运行进程或分析内核转储时,如果应用程序使用了带有 busyboxdlmopen 或 audit 模块的多个命名空间,则 GDB 等调试程序将无法显示所有载入的共享对象。

在这个版本中,最新的 GDB 版本可以在所有动态链接程序命名空间中显示共享对象,提供全面的调试和分析功能。

Jira:RHEL-101986[1]

改进了 hmacglibc中的 Exception 处理性能

在此次更新之前,大型应用程序中的异常处理速度很慢,会影响性能,特别是在用户大量或频繁异常的环境中。这是因为 __dl_iterate_phdr 函数中花费的时间,从 _Unwind_Find_FDE 调用。

在这个版本中,glibc 中的异常处理算法已被改进,以增强异常处理速度。此更新向 ABI 引进了新符号,作为 GLIBC_2.35 的一部分,包括 HEKETI_epoll_pwait2_time64, swig__memcmpeq, HEKETI_dl_find_object, HEKETIepoll_pwait2, HEKETIposix_spawn_file_actions_addtcsetpgrp_np,wagon posix_spawnattr_tcgetpgrp_n p , 和wagon posix_spawnattr_tcsetpgrp_n p .

Jira:RHEL-93320

在内存分配失败时强化 glibc qsort 行为

当内存分配失败时,glibc 软件包的 qsort 和 swig qsort_r 函数使用堆分类回退。这个更改改进了对无效比较功能的处理,并在内存分配失败时提高性能的可预测性。

因为回退不是稳定的排序,因此等元素可能会以不同的顺序出现。C 标准不需要稳定性。

Jira:RHEL-24168

GDB 被 rebase 到版本 16.3

RHEL 9.7 中的 gdb 更新至版本 16.3 提供了以下显著改进:

  • 删除了对 Intel MPX 的支持。
  • 添加了对标记的数据指针的支持,包括 Intel 的 Linear Address Masking (LAM)和 aarch64 的 Memory Tagging Extension (MTE)。
  • 启用后台 DWARF 读取以提高性能。
  • 增强的 Intel Process Trace (记录 btrace):

    • 通过设置 记录 btrace pt event-tracing 启用异步事件打印。
    • Ptwrite 有效负载现在可以在 Python 中作为 RecordAux 辅助 对象访问。
  • 改进了 Python 集成:

    • 停止事件现在包含一个 details 属性,mirror MI "*stopped" 事件。
    • gdb.Progspace () 不再直接创建对象;对象必须使用其他 API 获取。
    • 用户定义的属性可以添加到 gdb.Inferiorgdb.InferiorThread 对象中。
    • 引入了新的事件源: gdb.tui_enabled
    • 添加了 gdb.record.clear,它会清除当前记录的 trace 数据。
    • 添加了用于处理缺失的 objfiles 和调试信息的模块。
    • 新的类 gdb.missing_debug.MissingDebugInfo 可以子类来处理缺少的调试信息。
    • 新属性 gdb.Symbol.is_artificial
    • 用于跨多个域的符号查找的新常数。
    • 新的功能 gdb.notify_mi (NAME, DATA) 会发出自定义 async 通知。
    • 用于读取和写入值内容的新属性 gdb.Value.bytes
    • 添加了 gdb.interrupt 以模拟 CTRL-C 中断。
    • 新的属性 gdb.InferiorThread.ptid_string 提供目标 ID。
  • 调试适配器协议(DAP)更改:

    • 更新了"scopes"请求,以包含全局变量和最后一个返回值。
    • "launch"和"attach"请求可以随时使用,在"configurationDone"后有效。
    • "Variable"请求不再返回人工符号。
    • 添加了对 "cancel" 请求的"process"事件和支持。
    • "attach"请求现在支持指定程序。
  • 引入了用于样式、语言帧不匹配警告、缺少 objfile 处理程序和函数调用超时的新命令。
  • 增强并重命名了几个命令,包括用于免除和重命名 set unwindonsignal 设置的改进错误处理,从而 设置 unwind-on-signal
  • 扩展的远程数据包支持,包括用于文件状态和内存获取的新数据包,以及 克隆 等新的停止原因。
  • 引入了每个线程 事件报告选项和地址标记检查。

Jira:RHEL-91381

现在为全局 GPU 数据收集启用了 AMD GPU pmda

在此次更新之前,RHEL 不提供 AMD GPU PMDA (一个 Performance Co-Pilot 指标代理),因为内核缺少全面支持所需的某些功能。

在这个版本中,用户可以使用 pcp-pmda-amdgpu 软件包在 RHEL 中的 AMD GPU 上收集全局 GPU 数据。

Jira:RHEL-83154

对 IBM Z z17 的初始支持添加到 wagonglibc

HEKETIglibc 中的动态加载程序被改进,以支持检测 IBM z17 CPU 或其特定功能。因此,在 wagon/usr/lib64/glibc-hwcap/z17/ 目录中安装的任何 IBM z17 优化库都会在 z17 系统上自动加载。这个版本提高了 IBM Z z17 平台的硬件兼容性和性能。

Jira:RHEL-50086[1]

Rust Toolset rebase 到版本 1.88.0

RHEL 9.7 与版本 1.88.0 中的 Rust Toolset 一起发布。这个版本包括以下显著的改进:

  • Rust 2024 Edition 现在稳定。这是一个主要的选择版本,可进行大量语言更改,是最新发布的最大版本。
  • 利用带有允许链的 2024 版,允许 fluent &&-chaining 在 ifwhile 条件内 允许 语句减少嵌套并改进可读性。
  • 对于高性能计算,当启用目标功能时,您可以在安全 Rust 中直接调用多个 std::arch intrinsics,这可让您直接访问特定的 CPU 功能。
  • 现在,支持 async closures,为异步编程提供了第一类解决方案。这些冲突允许捕获并正确表达使用 AsyncFn traits 的高法函数签名。
  • 遍历广播允许协调对特征对象的引用,以引用其超级条目,简化常见模式,特别是使用任何特征。
  • 现在,cargo 会自动清理其缓存,删除在 1-3 个月内无法访问的旧文件,这有助于管理磁盘空间。

Rust Toolset 是一个滚动应用程序流,红帽只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-81601

tzdata 包括 NEWS 文件

在这个版本中,tzdata 软件包包括其 NEWS 文件以及每个发行版本,以提供时区数据更改的精确描述。因此,您可以详细查看更改。用户可以检查附带的 NEWS 文件,以了解更新中更改的内容。

Jira:RHEL-105043[1]

metrics 角色现在支持 Apache Spark 指标集合和导出

在以前的版本中,用户无法使用 metrics 角色直接收集或导出 Apache Spark 指标。在这个版本中,swigrhel-system-roles 软件包添加了对从 Apache Spark 收集和更新指标的支持。引入了两个新布尔值参数:

  • metrics_into_spark: false 启用将指标值导出到 Spark。
  • metrics_from_spark: false 启用从 Spark 收集指标。

现在,您可以从 Spark 检索指标,并将指标信息发送到 Spark,改进了 Spark 工作负载的集成和监控功能。

Jira:RHEL-78306

4.14. 身份管理

ipa-healthcheck 现在会发出与过期证书相关的警告

在这个版本中,ipa-healthcheck 工具评估用户提供的 HTTP、DS 和 PKINIT 证书以进行过期,并在过期日期前提供 28 天警告。这是为了防止证书过期,这可能会导致停机。

Jira:RHELDOCS-20303[1]

ansible-freeipa rebase 到 1.15.1

ansible-freeipa 软件包(提供管理 Red Hat Identity Management (IdM)环境的模块和角色)已从 1.13.2 升级到 1.15.1。更新包括以下功能增强:

  • ansible-freeipa 的 ansible-freeipa-collection 子软件包现在与 Red Hat Ansible Automation Hub (RH AAH)提供的 redhat.rhel_idm 集合的命名空间和名称兼容。如果您已安装了 RPM 集合子软件包,您现在可以运行引用 AAH 角色和模块的 playbook。请注意,内部会使用 RPM 集合子软件包中的命名空间和名称。

Jira:RHELDOCS-21029[1]

IdM 现在支持最多 Linux 最大 UID 限制的 UID 用于旧的系统兼容性

在这个版本中,您可以使用用户和组 ID 最多 4294、967、293 或 2^32-1。这会使 IdM 的最大值与 Linux UID 限制一致,在标准 IdM 范围最多为 2,147,483,647 的个别情况下非常有用。具体来说,它启用了 IdM 部署以及需要完整 32 位 POSIX ID 空间的传统系统。

警告

在标准部署中,IdM 为 subIDS 保留 2,147,483,648 - 4,294,836,223 范围。使用 2^31 到 2^32-1 UID 范围需要禁用 subID 功能,因此与现代 Linux 功能冲突。

启用 UID 最多 2^32-1:

  1. 禁用从属 ID 功能:

    $ ipa config-mod --addattr ipaconfigstring=SubID:Disable
  2. 删除任何现有从属 ID 范围:

    $ ipa idrange-del <id_range>
  3. 在 IdM 服务器上,确保正确删除内部 DNA 插件配置:

    # ipa-server-upgrade
  4. 添加一个覆盖 2^31 的新本地 ID 范围,到 2^32-1 空间。确保为此新范围定义了 RID 基础,以便 IdM 可以为用户和组正确生成 SID。
注意

只有尚未分配子 ID 时,才能禁用从属 ID 功能。

Jira:RHEL-84277[1]

如果启用了 krbLastSuccessfulAuth,则 Healthcheck 会警告

如果同时验证大量用户,在 ipaConfigString 属性中启用 krbLastSuccessfulAuth 设置可能会导致性能问题。因此,它会被默认禁用。在这个版本中,如果启用了 krbLastSuccessfulAuthHealthcheck 会显示一条消息,警告可能的性能问题。

Jira:RHEL-4957

IdM-to-IdM 迁移现在可用

IdM-to-IdM 迁移以前作为技术预览提供,现在完全支持。您可以使用 ipa-migrate 命令将所有特定于 IdM 的数据(如 SUDO 规则、HBAC、DNA 范围、主机、服务等)迁移到另一个 IdM 服务器。例如,当将 IdM 从开发或暂存环境移到生产环境中时,这很有用。

Jira:RHELDOCS-19500[1]

samba rebase 到版本 4.22.4

samba 软件包已更新至版本 4.22.4。此版本提供了 bug 修复和增强,最重要的是:

  • Samba 支持服务器消息块版本 3 (SMB3)目录租期。在这个版本中,客户端可以缓存目录列表,这可减少网络流量并提高性能。
  • Samba 支持使用基于 TCP 的 LDAP 或 LDAPS 查询域控制器(DC)信息,作为端口 389 上的传统 UDP 方法的替代选择。此功能增强提高了与防火墙限制的环境的兼容性。您可以使用 客户端 netlogon ping protocol 参数(默认值: CLADP)配置协议。
  • 以下配置参数已被删除:

    • nmbd_proxy_logon: 此设置用于将 NetLogon 身份验证请求转发到 Windows NT4 主域控制器(PDC),然后 Samba 通过 TCP/IP (NBT)服务器引入了自己的 NetBIOS。
    • CLDAP 端口 :无轻量级目录访问协议(CLDAP)始终使用 UDP 端口 389。另外,Samba 代码没有一致地使用这个参数,因此行为不一致。
    • fruit:posix_rename: 这个选项的 vfs_fruit 模块已被删除,因为它可能会导致 Windows 客户端出现问题。为了防止在网络挂载上创建 .DS_Store 文件,请在 MacOS 上使用 默认值 write com.apple.desktopservices DSDontWriteNetworkStores true 命令。

请注意,从 Samba 4.11 开始,服务器消息块块版本 1 (SMB1)协议已被弃用,并将在以后的发行版本中删除。

在启动 Samba 前,备份数据库文件。当 smbdnmbdwinbind 服务启动时,Samba 会自动更新其 tdb 数据库文件。红帽不支持降级 tdb 数据库文件。

更新 Samba 后,使用 testparm 工具来验证 /etc/samba/smb.conf 文件。

Jira:RHEL-89873

389-ds-base rebase 到版本 2.7.0

389-ds-base 软件包已更新至版本 2.7.0。

Jira:RHEL-80163

dsctl healthcheck 现在会警告在 membership 属性上创建子字符串索引

包含 membership 属性的条目通常是一个具有多个成员的组。当更改值集合时,子字符串索引成本很高,即使对于像删除单个成员这样的小更改。现在,当添加子字符串索引类型时,dsctl healthcheck 会警告有关 membership 属性上子字符串索引成本过高,并显示以下出错消息:

DSMOLE0002.如果为 membership 属性配置了子字符串索引,则从大型组中删除一个成员可能会很慢。

Jira:RHEL-81141[1]

属性唯一插件中的自定义匹配规则用于搜索唯一属性

在这个版本中,在属性唯一配置中,您可以为您要强制唯一性的属性指定匹配的规则。例如,当您想从 大小写准确 或问题单中覆盖属性的语法时,会忽略

在插件配置中指定属性及其匹配规则,如下所示:

uniqueness-attribute-name: <attribute>:<Matching rule OID>:

在此次更新之前,如果您使用带有 大小写准确 语法的属性 cn,则 Attribute Uniqueness 插件无法找到匹配的值,如果两者之间的两个值不同,则属性 Uniqueness 插件无法找到匹配的值。现在,您可以设置匹配的规则,并使其成为 case ignore,插件会看到值匹配:

uniqueness-attribute-name: cn:caseIgnoreMatch:

Jira:RHEL-109034[1]

cockpit-session-recording rebase 到 20-1.el9

cockpit-session-recording 软件包(记录通过 Cockpit Web 界面执行的用户会话)被 rebase 到上游版本 20-1.el9。软件包已迁移到 PatternFly 6 用户界面系统设计。

Jira:RHEL-96905

ACME 服务器添加了对 ES256 签名算法的支持

在以前的版本中,自动证书管理环境(ACME)服务器不支持 JSON Web 密钥(JWK)验证的 ES256 签名算法。缺少支持会阻止某些客户端(如 Caddy web 服务器)成功获取证书。

在这个版本中,ACAC 服务器已被改进,以支持 JWK 验证的 ES256 签名算法。

因此,服务器可以与使用 ES256 的客户端(如 Caddy Web 服务器)交互,使它们能够成功获取证书并建立安全 HTTPS 通信。

Jira:RHEL-98719

HSM 现在在 IdM 中被完全支持

硬件安全模块(HSM)现在在身份管理(IdM)中被完全支持。您可以在 HSM 上为 IdM 证书颁发机构(CA)和密钥恢复授权(KRA)存储密钥对和证书。这为私钥材料增加了物理安全。

IdM 依赖于 HSM 的网络功能,来在机器之间共享密钥来创建副本。HSM 提供了额外的安全性,而不会明显影响大多数 IdM 操作。当使用低级别工具时,证书和密钥会以不同的方式处理,但对大多数用户来说这是无缝的。

注意

不支持将现有 CA 或 KRA 迁移到基于 HSM 的设置中。您需要在 HSM 上使用密钥重新安装 CA 或 KRA。

您需要以下内容:

  • 支持的 HSM
  • HSM Public-Key Cryptography Standard (PKCS) #11 库。
  • 一个可用的插槽、令牌和令牌密码。

要使用存储在 HSM 上的密钥安装 CA 或 KRA,您必须指定令牌名称和 PKCS #11 库的路径。例如:

ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra

Jira:RHELDOCS-21376[1]

4.15. 桌面

在基于 UBI 的 Toolbox 容器中默认支持 OpenGL 和 Vulkan

OpenGL 和 Vulkan 现在默认在从基于 UBI 的更新的 toolbox 镜像创建的 Toolbox 容器中工作,这与 RHEL Workstation 主机上的行为匹配。这包括 Mesa 提供的免费软件驱动程序,而不包括 NVIDIA 等专有软件驱动程序。

toolbx 容器旨在复制 RHEL Workstation 环境。在以前的版本中,用户必须手动安装与 Mesa 相关的软件包才能启用 OpenGL 和 Vulkan 支持,这并没有直观或记录。

因此,OpenGL 和 Vulkan 应用程序可以在 Toolbox 容器中运行,而无需额外的配置,从而提高了主机系统的可用性和一致性。

Jira:RHEL-84787

低磁盘空间 通知在 web 控制台中包括挂载点

当多个 卷的名称相同时,低磁盘空间 通知包括挂载点。这个增强减少了特定文件系统需要更多空间的不确定性。

Jira:RHEL-11910[1]

4.16. Web 控制台

cockpit rebase 到版本 344

cockpit 软件包已更新至版本 344,与 RHEL 9.6 中的版本 334 相比,它提供了很多改进和修复:

  • 根据 PatternFly 6 设计系统改进了 UI 到新风格。
  • 添加了对存储组件中 SMART (Self-Monitoring、分析和报告技术)标准和 Stratis 3.8+ 池格式的支持。
  • 改进了虚拟机组件中的图形 VNC、控制 VNC 和串行控制台。
  • 添加了对网络组件中 WireGuard VPN 的 IPv6 地址的支持。
  • 所有 Web 控制台页面均可通过 branding.css 风格表文件进行品牌。

Jira:RHEL-87397

新子软件包: cockpit-ws-selinux

cockpit_ws 进程的 SELinux 策略在单独的子软件包 cockpit-ws-selinux 中提供。这可防止 RHEL web 控制台在没有安装 SELinux 的系统中运行时失败,因为软件包管理器会将 selinux_policy 软件包作为依赖项安装。如需更多信息,请参阅系统中的 cockpit_ws_selinux (8) 手册页。

Jira:RHEL-92062

4.17. Red Hat Enterprise Linux 系统角色

ad_integration RHEL 系统角色可以控制 SSSD 域部分命名并整合重复

在这个版本中,用户可以控制 SSSD 配置文件用于域或域特定设置中使用的部分名称,如 ad_dyndns_updatead_integration_sssd_custom_settings 参数管理。默认情况下,ad_integration 角色使用 ad_integration_realm 变量的小写。但是,如果用户想要使用 ad_integration_realm 的实际情况,用户可以使用一个新的选项 ad_integration_sssd_realm_preserve_case = true 来保留域的情况。这可能会使 SSSD 配置文件保留为 realm 的多个部分。使用新的 ad_integration_sssd_remove_duplicate_sections 设置,将来自多个部分的所有设置整合到所选部分中。因此,ad_integration 系统角色可以正确地管理 SSSD 配置文件中的 domain 和 realm 部分。

Jira:RHEL-99089[1]

journald RHEL 系统角色可以监控磁盘空间

在这个版本中,您可以配置 journald.conf 日志服务中的 SystemKeepFree 选项,来为系统日志设置最大大小。这提高了整体系统稳定性和性能。因此,您可以使用 journald_system_keep_free 变量来配置大小限制。该值以 MB 为单位指定。没有默认值 - 默认情况下,它将使用 journald 默认值。

Jira:RHEL-95874[1]

metrics 角色支持启用额外的 PCP 域

有了这个更新,rhel-system-roles 软件包在 metrics RHEL 系统角色中引入了 metrics_optional_domains 变量。除了由 metrics 角色自动管理之外,用户可以指定要激活的额外 PCP 域列表。因此,用户可以启用他们针对特定用例所需的域,从而提高了数据收集和监控的灵活性。

Jira:RHEL-104659[1]

引入了一个变量 MaxRetention,为 journald 配置最大保留参数

在这个版本中,用户可以为 journald 配置最大保留参数,从而启用基于时间的日志文件删除。此功能增强提供了根据特定数据保留策略管理日志数据的灵活性,允许同时删除基于时间的日志和基于大小的删除。它有助于遵守数据保留要求,并通过防止过量日志存储来提高整体系统性能。

Jira:RHEL-102637[1]

podman 角色生成所有 TOML 兼容配置文件

在此次更新之前,当前的基于 Jinja 的格式器不支持许多 TOML 功能,包括表和内联表,这是配置 podman 的所有方面所必需的。在这个版本中,使用 true TOML 格式而不是简单的 Jinja 模板支持 TOML 的所有功能。因此,podman 角色可以生成任何 podman 可以使用的 TOML 兼容配置文件。

podman 角色需要保留旧格式器的某些功能。因此,默认禁用 TOML 格式ter。有关您需要使用旧格式器的特定用例,以及有关如何转换清单数据的信息,以便使用新的改进的格式器,请参阅 README 文件。

要在所有情况下使用新的 TOML 格式器,请将 podman_use_new_toml_formatter 设置为 true

podman_use_new_toml_formatter: true

Jira:RHEL-84930

firewall RHEL 系统角色现在支持包括其他服务

在这个版本中,在使用 firewall RHEL 系统角色创建 firewalld 服务定义时,您可以包括其他服务。例如,您可以创建一个包含 httphttps 服务的服务 webserver。如果您启用 webserver 服务,firewalld 会打开 httphttps 服务中定义的端口。详情请参阅 使用 firewall RHEL 系统角色创建自定义 firewalld 服务

Jira:RHEL-84951

rhel-system-roles中配置默认内核的功能

在以前的版本中,用户无法指定在系统引导过程中应将哪个内核设置为默认值。这个限制会阻止管理员在自动化过程中轻松管理默认内核选择。

有了这个更新,rhel-system-roles 软件包允许使用新的 默认选项 配置默认引导装载程序内核。现在,用户可以通过在内核设置中设置默认布尔值参数,将单个内核指定为 默认值。系统会验证只有一个内核可以被标记为默认值,并根据需要使用 grubby --set-default 应用选择。

此功能增强提高了在 RHEL 中管理内核版本时的灵活性,并简化了自动化的过程。

Jira:RHEL-87579

metrics 角色现在支持 Apache Spark 指标集合和导出

在以前的版本中,用户无法使用 metrics 角色直接收集或导出 Apache Spark 指标。在这个版本中,swigrhel-system-roles 软件包添加了对从 Apache Spark 收集和导出指标的支持。引入了两个新布尔值参数:

  • metrics_into_spark: false 启用将指标值导出到 Spark。
  • metrics_from_spark: false 启用从 Spark 收集指标。

现在,您可以从 Spark 检索指标,并将指标信息发送到 Spark,改进了 Spark 工作负载的集成和监控功能。

Jira:RHEL-17564

在使用 rhel-system-roles.timesync 角色时,为 chronyd 服务启用 IPv4 操作

在这个版本中,当节点上禁用 IPv6 时,用户可以自定义 chronyd 配置。增强提供了两个选项:为 timesync 角色添加一个设置来禁用 IPv6,或者传递参数来为 chronyd 设置 OPTIONS 值。这些选项在使用 rhel-system-roles.timesync 角色时,为 chronyd 服务启用 IPv4 操作。这提高了禁用 IPv6 的环境的时间同步准确性和稳定性。

Jira:RHEL-85079

4.18. 虚拟化

virtio-mem 在 IBM Z 上提供

有了这个更新,virtio-mem 是半虚拟化内存设备,可用于 IBM Z 硬件。通过使用 virtio-mem,您可以在虚拟机中动态添加或删除主机内存。

Jira:RHEL-72976[1]

用于 IBM Z 主机的新命令: virsh hypervisor-cpu-models

这个版本引进了 virsh hypervisor-cpu-models 命令。您可以在 IBM Z 构架中使用这个命令来显示您的 hypervisor 识别的 CPU 型号。

Jira:RHEL-11435[1]

IBM Z 客户机的性能增强 PCI 转换

在这个版本中,IBM Z 主机上的虚拟机可以使用身份映射直接内存访问(DMA)进行 PCI 设备。这个功能显著提高 PCI 设备透传的性能。请注意,要使用这个功能,您的系统必须配置如下:

  • iommu.passthrough=1 参数必须在虚拟机的内核命令行上设置。
  • 虚拟机必须具有完全 NUMA 固定的内存。
  • RHEL 主机系统不能使用逻辑分区(LPAR)。

Jira:RHEL-11431[1]

64 位 ARM 主机上虚拟机的新功能

现在,在使用 64 位 ARM 架构(aarch64)的 RHEL 主机上支持以下功能:

  • 实时快照
  • 使用以下选项预复制迁移:

    • TLS 加密和 XBZRLE 压缩
    • 脏率监控
    • auto-converge
  • 使用以下选项进行多 FD 迁移:

    • TLS 加密和 XBZRLE 压缩
    • auto-converge
    • 零复制
  • 使用以下选项进行复制后迁移:

    • TLS 加密和 XBZRLE 压缩
    • 恢复
    • 抢占
  • 使用 virtiofs进行实时迁移
  • 从 RHEL 10.1 反向迁移到 RHEL 9.7

Jira:RHELDOCS-20781[1]

新的 QEMU 配置参数: migrate_tls_priority

在这个版本中,您可以在 /etc/libvirt/qemu.conf 文件中配置 migrate_tls_priority 参数。您可以使用此参数在实时迁移虚拟机时解决 TLS 的 QEMU 问题。要获得推荐的值,如果默认值不适用于您的部署,请联系红帽客户支持。

Jira:RHEL-73319[1]

4.19. 云环境中的 RHEL

RHEL 上的 OTel 收集器支持 TPM 设备

RHEL 上的 OpenTelemetry (OTel) Collector 支持 Trusted Platform 模块(TPM)设备。使用此功能,OTel Collector 可以从 TPM 设备读取传输层安全(TLS)证书。

Jira:RHELDOCS-20446[1]

增强了对有资格的 RHEL 镜像的自动注册

在这个版本中,基于符合条件的市场镜像的 RHEL 实例会自动接收来自红帽内容交付网络(CDN)的内容和更新,而不是 Red Hat Update Infrastructure (RHUI)。RHUI 软件仓库默认关闭。

这样可确保自动访问订阅的 RHEL 实例用户的最新更新。

如需了解更多详细信息,请参阅 理解自动注册

Jira:RHELDOCS-21241[1]

新软件包: azure-vm-utils

这个更新添加了 azure-vm-utils 软件包,它提供了一个实用程序和 udev 规则集合,以优化使用 RHEL 9 作为 Microsoft Azure 上的客户机操作系统的体验。

Jira:RHEL-88789[1]

RHEL 在 Azure 机密虚拟机上提供

您可以使用 RHEL CVM 镜像在 Microsoft Azure 上创建并运行 RHEL 机密虚拟机(CVM)。镜像通过 Azure 中的机密操作系统磁盘加密功能支持完全磁盘加密。

Jira:RHELPLAN-139800[1]

4.20. 支持性

sos 现在收集 Satellite 指标文件以改进支持诊断

sosforeman-installer 插件现在收集位于 /var/lib/foreman-maintain/ 目录中的 satellite_metrics.yml 文件。它可让您了解 Satellite 正在使用哪些功能以及大规模。

Jira:RHEL-71825

4.21. 容器

RHEL 中正式发布新的 rhel9/valkey-8 容器镜像

新可用的 rhel9/valkey-8 容器镜像允许原子操作,并支持各种数据类型,如字符串、哈希、列表、集合和排序的集合。该镜像提供高性能,因为它的内存中数据集可以保留到磁盘,也可以通过将命令附加到日志中。

Jira:RHELDOCS-20639[1]

改进了对可重复生成的容器构建的支持

可重复生成的构建可确保给定输入集合一致生成相同的输出。此功能增强解决了之前在容器镜像构建中复杂可重复生成的几个因素。虽然 use -source-date-epoch and -rewrite-timestamp 提高了构建的可重复性,并与设置等常见实践一致,如设置和查找 $SOURCE_DATE_EPOCH,但它不能保证完全的可重复性。

Jira:RHEL-88521

Podman RESTFUL API 的新工件端点

Podman RESTFUL API 包括新的工件端点,支持编程管理 OCI 工件。此功能增强简化了将 OCI 工件操作整合到现有系统和脚本中。

Jira:RHEL-88472

Container Tools 软件包已更新

提供了更新的 Container Tools RPM meta-package,其中包括 Podman、Buildah、Skopeo、crunrunc 工具。Buildah 软件包已更新至版本 v1.41.0,Skopeo 已更新至版本 1.20.0。

Podman 版本 v5.6 包含以下显著的程序错误修复和增强:

  • 用于管理 Quadlets 的新命令已添加为 podman quadlet 安装(为当前用户安装新的 Quadletletletlet )、podman quadlet 列表(list installed Quadlets)、podman quadlet print (打印 Quadlet 文件的内容)和 podman quadlet rm (删除一个 Quadletlet)。
  • podman kube play 命令可以使用 io.podman.annotations.cpuset/$ctrnameio.podman.annotations.memory-nodes/$ctrname 注解将容器执行限制到特定的 CPU 内核和特定内存节点。
  • podman kube play 命令支持 Pod YAML 中的 lifecycle.stopSignal 字段,允许使用用于停止指定容器的信号。
  • 远程 Podman 客户端中提供了 podman volume importpodman volume export 命令。
  • podman volume create 命令接受两个新选项,即 ---uid 和- gid 来设置将创建卷的 UID 和 GID。
  • podman secret create 命令有一个新选项,-- ignore 导致命令成功,即使具有指定名称的 secret 已存在。
  • podman pull 命令具有一个新的选项,,用于配置拉取策略。
  • podman update 命令有一个新的选项,用于更新最新的容器,而不是指定特定容器。
  • 添加了用于与工件交互的完整 API 端点,包括检查工件(GET /libpod/artifacts/{name}/json)、列出所有工件(GET /libpod/artifacts/json), 在请求正文中拉取工件(POST /libpod/artifacts/pull), 删除工件(DELETE /libpod/artifacts/{name})、添加工件(或附加到请求正文中的 tar 文件))将工件推送到 registry (/libpod/artifacts/{name}/push),并检索工件的内容(GET /libpod/artifacts/{name}/extract)。
  • 添加了一个新命令,podman artifact提取,将部分或所有 OCI 工件的内容复制到磁盘上的一个位置。
  • podman createpodman runpodman pod create 的-- mount 选项支持一个新的挂载类型,-- mount type=artifact 以将 OCI 工件挂载到容器中。
  • podman artifact add 命令具有两个新选项,即将 新文件添加到现有工件中,并使用 --file-type 指定添加到工件中的文件的 MIME 类型。
  • podman artifact rm 命令具有一个 新的选项,用于删除本地存储中的所有工件。
  • podman kube generatepodman kube play 命令支持一个新的注解 io.podman.annotation.pids-limit/$containername,保留 kube generatekube play 中容器的 PID 限制。
  • Quadlet .container 单元支持三个新键,Memory= (为创建的容器设置最大内存)、ReloadCmd (通过 systemd ExecReload执行命令)和 ReloadSignal (通过 systemd ExecReload,使用给定信号提高容器)。
  • Quadlet .container.image.build 单元支持两个新密钥: Retry (失败时重试拉取镜像的次数)和 RetryDelay (重试尝试之间的延迟)。
  • Quadlet .pod 单元支持一个新的键 HostName= 来设置 pod 的主机名。
  • Quadlet 文件支持 安装 部分中的新选项 UpheldBy,对应于 systemd Upholds 选项。
  • 指定为 systemd 依赖项的 Quadlet 单元的名称会自动转换,如 Wants=my.container 是有效的。

有关值得注意的变化的更多信息,请参阅 上游发行注记

Jira:RHEL-88464

ADDCOPY 指令现在支持- -link 选项

Buildah 和 Podman 现在支持 Containerfiles 中的 ADD 和 COPY 指令的-- link 标志,这会导致在构建镜像中添加新内容作为自己的层。

Jira:RHEL-88307

新的容器镜像可用

新容器镜像在红帽生态系统目录中列出:

  • UBI -stig :具有 STIG 强化的通用基础镜像作为容器化应用程序、中间件和工具的安全基础。
  • valkey-8 :作为容器可用的高级键值存储,使用内存数据集来实现其性能。它通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集合和排序的集合。
  • gcc-toolset-15-toolchain :一个基础镜像,其中包含用于构建 C 和 C++ 应用程序的基本库和工具。
  • nodejs-24 :提供构建和运行各种 Node.js 24 应用程序和框架的基本平台。它基于 Chrome 的 JavaScript 运行时构建,它通过事件驱动的、非阻塞 I/O 模型促进快速、可扩展的网络应用程序,非常适合数据密集型实时分布式应用程序。
  • nodejs-24-minimal :提供运行各种 Node.js 24 应用程序和框架的基本平台。它基于 Chrome 的 JavaScript 运行时构建,它通过事件驱动的、非阻塞 I/O 模型促进快速、可扩展的网络应用程序,非常适合数据密集型实时分布式应用程序。
  • dotnet-100,dotnet-100-aspnet,dotnet-100-runtime: .NET 100 镜像,包括基础、ASP.NET 和运行时版本。

Jira:RHELDOCS-21211[1]

RHEL 镜像模式支持在运行时创建根目录和符号链接

在这个版本中,您可以使用 RHEL 镜像模式在系统部署后创建根目录和符号链接,然后将文件系统返回到只读模式。因此,您可以在具有不同文件系统要求的多个部署环境中使用单个基础镜像。

Jira:RHELDOCS-21230[1]

bootc-image-builder 默认使用本地容器存储

在这个版本中,bootc-image-builder 工具默认在本地模式下运行,这意味着它不再从远程 registry 中拉取容器镜像。要构建磁盘镜像,您必须在构建磁盘镜像前预加载系统本地容器 registry 中的基本引导容器镜像。如果您有依赖于自动镜像拉取(pull)的现有工作流,您必须更新它们。此更改通过在构建过程中减少外部网络依赖项来提高安全性。

Jira:RHELDOCS-21218[1]

4.22. RHEL Lightspeed

命令行助手支持 RHEL 的镜像模式

有了这个增强,您可以自定义 Containerfile 使其包含 命令行助手 软件包,从容器镜像创建磁盘镜像,并使用该镜像引导系统。因此,系统镜像预安装了命令行助手,您可以在使用 subscription-manager 注册系统后使用它。

Jira:RHELDOCS-20546[1]

命令行助手上下文限制增加到 32KB 的输入

在此次更新之前,命令行助手具有 2KB 的输入上下文限制,从而导致输入超过这个限制时失败。因此,用户体验有限,防止因为 2KB 输入上下文限制而进行彻底的日志分析。在这个版本中,命令行助手输入上下文限制已从 2KB 增加到 32KB。因此,命令行助手现在支持更大的输入上下文,从而提供更好的日志分析和潜在的问题检测。

Jira:RHELDOCS-20421[1]

RHEL Lightspeed 的命令行助手可以更好地处理错误处理和退出代码

有了这个增强,命令行助手可以提供更好的错误处理和退出代码,例如:

  • 根据 CLA 运行时中可能出现的不同类型的错误,输出不同的错误消息。
  • 尝试输出与错误实际原因对应的错误消息,并记录它。
  • 根据不同类型的问题实施不同的退出代码。

Jira:RHELDOCS-21313[1]

命令行 assistant -w 选项显示当前的输出

在此次更新之前,当您试图在没有当前启用捕获模式的情况下使用 -w 选项时,命令行助手会错误地显示之前会话的输出。在这个版本中,终端捕获日志文件会在从 -w 选项输出前主动验证。因此,上面提到的问题已被修复,显示的输出是准确的。

Jira:RHELDOCS-21315[1]

第 5 章 对外部内核参数的重要更改

本章为系统管理员提供了与 Red Hat Enterprise Linux 9.7 一起分发的内核有显著变化的总结。这些更改可能包括,例如,添加或更新的 proc 条目、sysctlsysfs 默认值、引导参数、内核配置选项或任何明显的行为更改。

新内核参数

arm64.nompam=

[ARM64] 无条件地禁用内存分区和监控支持。

indirect_target_selection=

[X86,Intel] 对 Intel CPU 中的 Indirect Target Selection (ITS) bug 的控制。在 IBPB 中修复也需要更新的 microcode。

可能的值:

启用缓解(默认)。禁用缓解方案。强制 ITS 程序错误并部署默认的缓解措施。vmexit - 只有在 CPU 被 ITS 的客户机/主机隔离部分影响时才部署缓解。还部署 retpoline 时进行大量部署 RSB填充缓解。否则,部署默认的缓解方案。

请参阅 Documentation /admin-guide/hw-vuln/indirect-target-selection.rst

pcie.notph

[PCIE] 如果启用了 PCIE_TPH 内核配置参数,则可以使用这个内核引导选项来禁用 PCIe TLP Processing Hints 支持系统范围的 PCIe TLP Processing Hints。

rcutree.csd_lock_suppress_rcu_stall=

[KNL] 当持续过长的 CSD-lock 等待时,仅执行单行 RCU CPU 停滞警告。

rcuscale.kfree_by_call_rcu=

[KNL] 在使用 CONFIG_RCU_LAZY=y 构建的内核中,test call_rcu () 而不是 kfree_rcu ()

rcuscale.kfree_mult=

[KNL] 对于分配大小为 kfree_obj 的对象,分配 kfree_mult * sizeof (kfree_obj) 的一个对象。默认为 1

rcuscale.scale_type=

[KNL] 指定要测试的 RCU 实现。

rcutorture.stall_cpu_repeat=

[KNL] 重复停止序列的次数,以便 rcutorture.stall_cpu_repeat=3 将导致四个停滞序列。

refscale.lookup_instances=

[KNL] 用于 SLAB_TYPESAFE_BY_RCU 测试形式的数据元素的数量。负数为负数,乘以 nr_cpu_ids,而零则指定 nr_cpu_ids

smp.panic_on_ipistall=

[KNL] 如果 csd_lock_timeout 扩展超过指定毫秒,则会导致系统 panic。默认情况下,让 CSD锁定的获取时间过长。为这个值指定 300000 提供 5 分钟超时。

spectre_bhi=

[X86] 控制分支历史注入(BHI)的缓解。

在需要时,(默认)启用 HW 或 SW 缓解方案。这会保护内核不受 syscalls 和虚拟机的影响。vmexit - 在没有 HW 缓解措施的系统中,仅在 vmexit 上启用 SW 缓解方案。在这样的系统中,主机内核受到虚拟机原始的 BHI 攻击的保护,但可能仍然容易受到 syscall 攻击的影响。off - 禁用缓解方案。

tsa=

[X86] 控制 AMD CPU 上 Transient Scheduler Attacks 的缓解方案。在 favourite 搜索引擎中搜索更多详细信息:

用于缓解临时调度程序攻击的技术指导off - 禁用缓解方案(默认)用户只缓解 用户 /内核转换 vm - 缓解客户机/主机转换

删除的内核参数

clocksource.max_cswd_read_retries=

[KNL] clocksource_watchdog () 的数量会因为外部延迟而重试,然后时钟将被标记为不稳定。默认为两个重试,即三个尝试读取测试下的时钟。

disable_cpu_apicid=

[X86,APIC,SMP] 格式: < int > 在引导时禁用相应 CPU 的初始 APIC ID 数,用于 kdump 2nd 内核用来禁用 BSP 来唤醒多个 CPU,而不会导致系统重置或挂起,因为将 INITAP 发送到 BSP

更改了内核参数

nohz_full=

[KNL] 禁用单个任务运行时的 tick,以及禁用其他内核 noise,如 RCU 回调卸载。这等同于 nohz_full 参数。一个 reidual 1Hz tick 被卸载到 workqueues,您需要通过全局 sysfs 接口对内务操作进行影响。

mce=

[X86-64] 请参阅 文档 /arch/x86/x86_64/boot-options.rst.

mem_encrypt=

[X86-64] 请参阅文档 /virt/kvm/x86/amd-memory-encryption.rst,了解可以激活内存加密的详情。

mitigations=

[ALL] 选择 mitigations=off 等同于关闭以下内容:

如果 nokaslr then kpti=0 [ARM64]gather_data_sampling=off [X86]indirect_target_selection=off [X86]kvm.nx_huge_pages=off [X86]l1tf=off [X86]mds=off [X86]meltdown=off [X86]mmio_stale_data=off [X86]pcid= off[X 86]pti=off [X86]spectre_v1=off [X86]spectre_v2= off[X 86] tsx= off [X86] tsx_async_abort= off [X86]uhi=off [X86][X86] tsx= off [X86]tsx_async_abort=off [X86]spectre_v2=off [X86] tsx= off [X86]

pci=config_acs=

[PCI] Format: < ACS flags>@<pci_dev>[; …​]

每个位值:

0 - force disabled 1 - force enabled x - unchanged 例如: pci=config_acs=10x@pci:0:0 将配置支持 ACS 的所有设备以启用 P2P 请求重定向,禁用 转换 块,并从任何电源或固件将其保持不变。

注意

这可能会删除设备间的隔离,并可能将更多设备放在 IOMMU 组中。

pirq=

[SMP,APIC] 请参阅文档 /arch/x86/i386/IO-APIC.rst.

prot_virt=

[S390] 启用与 hypervisor 隔离的受保护的虚拟机(如果硬件支持)。如果启用,即使禁用了 Kernel Address Space Layout Randomization,默认内核基本地址也会被覆盖。格式:<bool>

sev=

[X86-64] 请参阅 文档 /arch/x86/x86_64/boot-options.rst.

spectre_v2_user=

[X86] 控制用户空间的 Spectre 变体 2 的缓解。选择 on 还将启用对用户空间任务攻击的缓解方案。选择特定的缓解方案不会强制启用用户缓解措施。选择 off 将禁用内核和用户空间保护。

rcutorture.stall_cpu_irqsoff=

[KNL] 在设置时禁用中断,但仅在集合中的第一个停滞时禁用中断。

新的 sysctl 参数

timer_migration

当设置为非零值时,尝试从空闲 CPU 中迁移计时器,以允许它们保持在低功耗状态更长的时间。默认: 1

第 6 章 设备驱动程序

6.1. 新驱动程序

Expand
表 6.1. 字符设备驱动程序
描述Name仅限于构架

SNP SVSM vTPM 驱动程序

tpm_svsm

AMD 和 Intel 64 位构架

Expand
表 6.2. CPU 频率驱动程序
描述Name仅限于构架

虚拟 cpufreq 驱动程序

virtual-cpufreq

64 位 ARM 架构

Expand
表 6.3. DMA 驱动程序
描述Name仅限于构架

AMD AE4DMA 驱动程序

ae4dma

AMD 和 Intel 64 位构架

AMD PassThru DMA 驱动程序

ptdma

AMD 和 Intel 64 位构架

Expand
表 6.4. 固件控制驱动程序
描述Name仅限于构架

fwctl 设备固件访问框架

fwctl

 

mlx5 ConnectX fwctl 驱动程序

mlx5_fwctl

 
Expand
表 6.5. 图形驱动程序和各种驱动程序
描述Name仅限于构架

Chrontel ch7006 TV encoder 驱动程序

ch7006

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

QEMU 模拟设备的 Cirrus 驱动程序

cirrus-qemu

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

内核中 DRM 客户端

drm_client_lib

 

NXP Semiconductors TDA998X HDMI Encoder

tda998x

64 位 ARM 架构

用于面板后端的 quirks 覆盖

drm_panel_backlight_quirks

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Silicon Image sil164 TMDS 传输器驱动程序

sil164

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Expand
表 6.6. HID 驱动程序
描述Name仅限于构架

Intel® Intel THC 硬件驱动程序

intel-thc

AMD 和 Intel 64 位构架

Intel® QuickI2C Driver

intel-quicki2c

AMD 和 Intel 64 位构架

Intel® QuickSPI 驱动程序

intel-quickspi

AMD 和 Intel 64 位构架

Expand
表 6.7. 介质驱动程序
描述Name仅限于构架

基于 Conexant cx231xx 的 USB 视频设备驱动程序 - 0.0.3

cx231xx

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Conexant CX25840 音频/视频解码器驱动程序

cx25840

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

cx23415/6/8 驱动程序

cx2341x

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

用于各种 TV 和 TV+FM 无线调器的设备驱动程序

Tuner

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

i2c Hauppauge eeprom decoder 驱动程序

tveeprom

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Expand
表 6.8. 网络驱动程序
描述Name仅限于构架

Linux 的 Intel® MLD 无线驱动程序

iwlmld

64 位 ARM 架构、AMD 和 Intel 64 位构架

Geschwister Schneider Technologie- Entwicklungs - und Vertriebs UG 的套接字 CAN 设备驱动程序.USB2.0 到 CAN 接口和 bytewerk.org candleLight USB CAN 接口。

gs_usb

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Expand
表 6.9. 平台驱动程序
描述Name仅限于构架

AMD 3D V-Cache 性能优化器驱动程序

amd_3d_vcache

AMD 和 Intel 64 位构架

Intel 扩展功能辅助总线驱动程序

intel-vsec

AMD 和 Intel 64 位构架

Intel Oaktrail Platform ACPI Extras - 0.4ac1

intel-oaktrail

AMD 和 Intel 64 位构架

Intel On Demand (SDSi)驱动程序

intel-sdsi

AMD 和 Intel 64 位构架

Intel TPMI 枚举模块

intel-vsec_tpmi

AMD 和 Intel 64 位构架

Intel TPMI PLR 驱动程序

intel-plr_tpmi

AMD 和 Intel 64 位构架

ISH ISHTP eclite 客户端 opregion 驱动程序

intel-ishtp_eclite

AMD 和 Intel 64 位构架

lis3lv02d i2c-client 实例化 ACPI SMO88xx 设备

dell-lis3lv02d

AMD 和 Intel 64 位构架

TPMI Power 域映射

intel-tpmi_power_domains

AMD 和 Intel 64 位构架

Expand
表 6.10. 电源管理域驱动程序
描述Name仅限于构架

ARM SCMI 电源域驱动程序

scmi_pm_domain

64 位 ARM 架构

ARM SCPI 电源域驱动程序

scpi_pm_domain

64 位 ARM 架构

Expand
表 6.11. USB 驱动程序
描述Name仅限于构架

Thunderbolt3 USB Type-C Alternate Mode

typec_thunderbolt

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Expand
表 6.12. virtio 驱动程序
描述Name仅限于构架

virtio-mem 驱动程序

virtio_mem

IBM Z

6.2. 更新的驱动程序

Expand
表 6.13. 加速器驱动程序更新
描述Name当前版本仅限于构架

Intel NPU (Neural Processing Unit)的驱动程序

intel_vpu

1.0.0 (5.14.0-611.5.1.el9_7.x86_64)

AMD 和 Intel 64 位构架

Expand
表 6.14. 平台驱动程序更新
描述Name当前版本仅限于构架

在 DELL 系统上更新 BIOS 镜像的驱动程序

dell_rbu

3.3

AMD 和 Intel 64 位构架

Expand
表 6.15. 存储驱动程序更新
描述Name当前版本仅限于构架

Broadcom MegaRAID SAS 驱动程序

megaraid_sas

07.734.00.00-rc1

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Cisco FCoE HBA 驱动程序

fnic

1.8.0.2

AMD 和 Intel 64 位构架

Microchip Smart 系列控制器的驱动程序

smartpqi

2.1.34-035

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

Emulex LightPulse Fibre Channel SCSI 驱动程序

lpfc

0:14.4.0.9

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

LSI MPT Fusion SAS 3.0 Device Driver

mpt3sas

52.100.00.00

64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架

MPI3 Storage Controller Device 驱动程序

mpi3mr

8.15.0.5.50

 

第 7 章 程序错误修复

这部分论述了 Red Hat Enterprise Linux 9.7 中修复的、对用户有严重影响的 bug。

7.1. 安装程序和镜像创建

如果存在 VDO 逻辑卷,安装不再会失败

在此次更新之前,当用户在没有 dm_vdo 内核模块的系统上尝试删除预先存在的逻辑卷管理器 Virtual Data Optimizer (LVM VDO)卷时,安装 RHEL 会失败。在这个版本中,当在没有 VDO 支持的系统中删除 LVM VDO 卷时,安装会成功。

Jira:RHEL-8008[1]

安装程序现在遵循 BOOTIF 引导参数

在以前的版本中,RHEL 安装程序会忽略 BOOTIF=<MAC > 引导参数,并激活所有可用的网络接口。在这个版本中,安装程序会正确处理 BOOTIF 参数,并确保在安装过程中只激活指定的网络设备。

Jira:RHEL-78272[1]

7.2. 安全性

SSH 连接失败不再显示详细帮助信息

在此次更新之前,当 SSH 连接失败时,会显示一条有常见 SSH 错误的消息和红帽帮助的链接。因此,错误输出中的帮助信息会破坏用户脚本和自动化。在这个版本中,只有在使用日志级别 debug1 或更高版本运行 SSH 时,帮助信息才会显示。因此,错误输出默认不包含任何意外信息。

Jira:RHEL-104580[1]

Opensc 避免在解引用前释放的内存

在此次更新之前,当 OpenSC 读取公钥时,取消引用会释放成员。这会导致内存中存储的值无法预计的行为。在这个版本中,避免在取消引用前释放内存。因此,OpenSC 可以正确地处理读取公钥。

Jira:RHEL-96029

fapolicyd 不再会导致 RPM 数据库因为重复更新而崩溃

在此次更新之前,当 fapolicyd 处于 enforcing 模式时,重复更新 RPM 数据库会导致总线错误(SIGBUS),这会导致 RPM 数据库意外终止。在这个版本中,RPM 数据库更新的 fapolicyd SIGBUS保护已被改进。因此,当重复更新启用了 fapolicyd 时,RPM 数据库不再崩溃。

Jira:RHEL-63090[1]

在处理非常规文件时,fapolicyd-cli --file add 不再失败

在此次更新之前,fapolicyd-cli --file add 命令无法将包含非常规文件的目录(如套接字)添加到信任数据库中。在这个版本中,这个问题已被解决,fapolicyd-cli --file add 不再在上述场景中失败。

Jira:RHEL-69136

7.3. 订阅管理

subscription-manager 不再在终端中保留非必要的文本

从 RHEL 9.1 开始,subscription-manager 在处理任何操作时会显示进度信息。在以前的版本中,对于某些语言(通常为非拉丁语言),在操作完成后不会清除进度消息。有了这个更新,在操作完成后,所有信息都会被正确清除。

如果您之前禁用了进度信息,您可以输入以下命令重新启用它们:

# subscription-manager config --rhsm.progress_messages=1

Jira:RHELPLAN-137234[1]

7.4. 软件管理

dnf download --url 可以正确地报告软件包 URL

在此次更新之前,当您使用 dnf download --url 命令获取软件包 URL 时,DNF 会错误地报告相对于存储库元数据位置的软件包地址,而不是相对于 xml:base 属性。

在这个版本中,DNF 在计算软件包 URL 时考虑 xml:base 属性。因此,dnf download --url 报告正确的软件包 URL。

Jira:RHEL-71125[1]

7.5. Shell 和命令行工具

默认情况下,/var/lib/tftpboot 目录在 Image Mode 部署中创建

在以前的版本中,在 Image Mode 部署中,安装 tftp-server 软件包不会创建 /var/lib/tftpboot 目录。这是因为当将附加软件包添加到现有镜像模式部署时,不会应用 /var 目录的更改。

在这个版本中,/var/lib/tftpboot 目录会在所有镜像模式部署中自动创建。

Jira:RHEL-77491[1]

现在,当您按内存排序进程时,top -u 命令至少显示一个进程

在以前的版本中,当使用 -u < user& gt; 参数执行 top 命令时,用户与运行命令的命令不同时,当 M 键按内存排序时,所有进程都会消失。在这个版本中,当您按内存排序进程时,top 命令至少会显示一个进程。

注意

要保留光标的位置,可能不会显示所有进程。您可以滚动浏览结果以显示剩余的进程。

Jira:RHEL-46760

7.6. 基础架构服务

chronyc reload sources 命令现在可以正确地处理主机名指定的源

在以前的版本中,chronyd 中的 chronyc reload sources 命令会错误地从 chrony.conf 文件中指定的 sourcedir 目录中重新载入源。当主机名解析为多个 IP 地址时,会导致 chronyd 重复源,从而导致源数量意外增加。

在这个版本中,chronyc reload sources 命令可以正确地处理通过主机名指定的源。因此,重新载入源不会更改使用的源数量。

Jira:RHEL-95016

如果使用正则表达式匹配配置 DAV 存储库位置,则 httpd 可以正常工作

在以前的版本中,当您使用正则表达式匹配(如 LocationMatch )在 Apache HTTP 服务器中配置了分布式授权和版本控制(DAV)存储库时,mod_dav httpd 模块无法从路径名称确定存储库的根目录。因此,httpd 无法处理来自第三方供应商的请求,如 Subversion 的 mod_dav_svn 模块。

在这个版本中,为 httpd.conf 文件引入了一个新的 DavBasePath 指令,该文件允许您明确指定存储库根路径。例如:

<LocationMatch "^/repos/">
    DAV svn
    DavBasePath /repos
    SVNParentPath /var/www/svn
</LocationMatch>

因此,在使用正则表达式匹配时,httpd 可以正确处理 DAV 存储库位置。

Jira:RHEL-79948

如果使用正则表达式匹配配置 DAV 存储库位置,则 httpd 可以正常工作

在以前的版本中,如果在 Apache HTTP 服务器中配置了分布式授权和版本控制(DAV)存储库,使用正则表达式匹配(如 LocationMatch ),则 mod_davhttpd 模块无法从路径名称确定存储库的根目录。因此,httpd 无法处理来自第三方供应商的请求,如 Subversion 的 mod_dav_svn 模块。

在这个版本中,您可以使用 httpd.conf 文件中的 new DavBasePath 指令来指定存储库根路径。例如:

<LocationMatch "^/repos/">
    DAV svn
    DavBasePath /repos
    SVNParentPath /var/www/svn
</LocationMatch>

因此,如果使用正则表达式匹配配置 DAV 存储库位置,则 httpd 会正确处理请求。

Jira:RHEL-41069

DBD::MySQL 驱动程序不再无法建立到启用了 caching_sha2_password 的 MySQL 8 服务器的 TLS 加密连接

在以前的版本中,perl-DBD-MySQL 软件包被错误地链接到 libmariadb 库。因此,如果满足以下条件,Perl 应用程序将无法建立连接:

  • 连接到 MySQL 8 服务器的应用程序。
  • caching_sha2_password 选项在 MySQL 服务器配置中启用。
  • 连接 使用带有 mysql_ssl=1 选项的 DBI→connect

在这个版本中,驱动程序链接到 libmysql-client。因此,Perl 应用程序不再无法在上述场景中建立 TLS 加密连接。

Jira:RHEL-77083

7.7. 网络

/etc/iproute2/ 中的自定义 iproute2 设置可以正常工作

在以前的版本中,如果您升级到 RHEL 9.6,iproute2 软件包会将默认配置存储在 /usr/share/iproute2/ 目录中。另外,如果您在 /etc/iproute2/ 中有自定义配置,则更新会重命名这些文件并附加 .rpmsave 后缀。因此,自定义设置不再会被应用。如果您更新到 iproute2 软件包的 RHEL 9.7 版本,软件包中的安装脚本将不再重命名自定义配置文件,如果它在 /etc/iproute2/ 中找到带有 .rpmsave 后缀的文件,则脚本会删除此后缀。因此,自定义设置可以按预期工作。

请注意,iproute2 默认设置保留在 /usr/share/iproute2/ 中。

Jira:RHEL-94662

如果您在运行时减少 SR-IOV VF 的数量,内核不再 panic

在以前的版本中,如果应用了以下所有条件,Linux 内核可能会 panic:

  • 主机启用了输入输出内存管理单元(IOMMU)。
  • 网络驱动程序使用页池。
  • 您减少了使用此驱动程序的网络接口的单根 I/O 虚拟化(SR-IOV)虚拟功能(VF)的数量。

在这个版本中,内核跟踪哪些 DMA 映射内存页面属于页面池。当页面池被销毁(例如,通过删除 VF)时,内存页面为 DMA-unmapped。这可防止在 VF 被删除后尝试取消映射内存页面。因此,如果您在运行时减少 SR-IOV VF 的数量,内核不再 panic。

Jira:RHEL-76845[1]

xtables 模块现在再次标记为已弃用

在此次更新之前,iptablesip6tablesarptablesebtablesip_set 驱动程序被错误地标记为 unmaintained。因此,RHEL 日志记录 了 Unmaintained 驱动程序:< driver> 警告。在这个版本中,上述驱动程序再次标记为已弃用。因此,系统不再报告带有不正确的支持状态的警告。

Jira:RHEL-81900

xdp-loader features 命令现在可按预期正常工作

xdp-loader 工具针对之前的 libbpf 版本进行了编译。因此,xdp-loader 功能 失败,并显示一个错误:

Cannot display features, because xdp-loader was compiled against an old version of libbpf without support for querying features.

现在,工具针对正确的 libbpf 版本进行了编译。因此,命令现在可以按预期正常工作。

Jira:RHEL-3382

Mellanox ConnectX-5 适配器在 DMFS 模式下工作

在以前的版本中,在使用以太网交换机设备驱动程序模型(switchdev)模式过程中,如果在 ConnectX-5 适配器上的设备管理的流稳定(DMFS)模式下配置,mlx5 驱动程序失败。因此,会出现以下错误信息:

mlx5_core 0000:5e:00.0: mlx5_cmd_out_err:780:(pid 980895): DELETE_FLOW_TABLE_ENTRY(0x938) op_mod(0x0) failed, status bad resource(0x5), syndrome (0xabe70a), err(-22)

因此,当您将 ConnectX-5 适配器的固件版本更新为 16.35.3006 或更高版本时,不会出现错误消息。

Jira:RHEL-9897[1]

VMware vCenter 现在可以从正在运行的 RHEL 虚拟机中正确地删除 SATA 磁盘

在以前的版本中,当使用 VMWare vCenter 接口从 VMware ESXi hypervisor 上运行的 RHEL 9 客户机中删除 SATA 磁盘时,磁盘不会被完全删除。它停止工作并从 vCenter 界面中的客户机中消失,但 SCSI 接口仍然检测到客户端中附加的磁盘。 在这个版本中,SCSI 接口可以正确地将磁盘显示为分离。

Jira:RHEL-79914[1]

7.8. 内核

更新了 stalld 调度策略回归以防止性能下降

在此次更新之前,Node Tuning Operator CI 可能会因为停止的调度策略而出现问题。这个更改会导致服务在启动后恢复到 SCHED_OTHER 而不是 SCHED_FIFO。因此,实时工作负载可能会遇到性能下降,您无法合并 PR。在这个版本中,systemd 单元文件将 stalld 优先级设置为 10,确保 stalld 使用 SCHED_FIFO 运行。这会恢复预期的行为,并提高了实时工作负载的性能。

Jira:RHEL-108827

osnoise/cpus 允许设置以逗号分隔的 cpus 列表

在此次更新之前,由于无效的参数错误,您无法在 osnoise/cpus 中设置以长度分开的 cpu 列表。这限制了受影响的延迟调试和故障排除。在这个版本中,您可以在 osnoise/cpus 中输入用逗号分开的 cpu 列表,以增强 RTLA 延迟调试和故障排除。

Jira:RHEL-94317[1]

aarch64 系统上的 irqbalance 服务缓冲区溢出

在以前的版本中,在特定的 aarch64 机器运行时,irqbalance 服务可能会因为缓冲区溢出而崩溃。因此,对延迟敏感的工作负载可能会出现性能下降,因为中断没有在 CPU 之间正确分布。在这个版本中,irqbalance 服务中的缓冲区溢出问题已被修复。

因此,irqbalance 服务可靠运行,中断会如预期分发,从而提高了对延迟敏感工作负载的性能。

Jira:RHEL-89986

rtla timerlat 在启动时不会重置 osnoise 停止追踪阈值

在此次更新之前,在不清除 stop_tracing 标志的情况下多次使用 rtla timerlat 会使/左 RTLA 处于不一致的状态。因此,当没有通过 -a、-T 或 -i 选项请求停止追踪时,追踪无法正确停止。这会导致报告不准确的数据,因为当 RTLA 不应有时退出。在这个版本中,rtla -timerlat 会重置跟踪变量,防止早期退出,从而改进了程序稳定性。

Jira:RHEL-86051[1]

rtla timerlat 现在在有 100 个 CPU 的系统上处理高频率抽样

在此次更新之前,rtl a timerlat 无法处理带有 100 个句点的计时器样本,或在超过 100 个 CPU 的系统上处理计时器样本,因为 tracefs 缓冲区处理不足。因此,样本被丢弃,timerlat 测量会变得不准确,影响实时性能分析。在这个版本中,timerlat 样本直接在测量 CPU 上收集,从而消除了缓冲区溢出问题。因此,rtla timerlat 在高核计数系统上提供准确的测量,从而启用可靠的实时性能分析。

Jira:RHEL-77358[1]

7.9. 文件系统和存储

multipathd 可以使用离线路径监控设备

在此次更新之前,当用户在设备的某些路径处于离线状态时创建多路径设备时,multipathd 守护进程不会监控设备或其路径。因此,如果路径失败,它们永远不会恢复,即使它们再次可用。在这个版本中,multipathd 守护进程会监控多路径设备及其离线路径。multipathd 还会在多路径设备中添加路径(如果它们在线)。

Jira:RHEL-82534

VDO 驱动程序不再会因为空指针解引用而崩溃

在此次更新之前,在特定计时条件下将新和重复数据混合写入到 VDO 设备,则会保留悬停的指针。因此,这会导致一个空指针解引用和系统崩溃。在这个版本中,悬停的指针问题已被修复。因此,VDO 驱动程序会继续运行并保存用户数据。

Jira:RHEL-83857

RHEL 安装程序删除损坏的 LVM 精简卷

在以前的版本中,存在损坏的 LVM 精简卷会导致存储配置错误,阻断安装过程。在这个版本中,RHEL 安装程序会检测到并删除有问题的精简卷。因此,用户不必手动进行安装过程。

Jira:RHEL-8012

当在 /etc/fstab中将 NVMe-FC 设备添加为挂载点时,系统可以正确启动

在以前的版本中,由于 nvme-cli nvmf-autoconnect systemd 服务中的一个已知问题,在将光纤通道上的 Non-volatile Memory Express (NVMe-FC)设备添加为 /etc/fstab 文件中的挂载点时,系统无法引导。因此,系统进入紧急模式。有了此更新,当挂载 NVMe-FC 设备时,系统可以引导,而没有任何问题。

Jira:RHEL-8171[1]

7.10. 高可用性和集群

pcs 命令不再因为不正确的大写的 target-role 值而失败

在此次更新之前,如果资源的 target-role meta-attribute 设置为一个没有大写的值,如 stopped,而不是 Stoppedpcs 无法解析集群状态。此解析错误导致 pcs status query resource 命令和删除资源的命令(包括 pcs resource delete )失败。

有了这个更新,pcs 中的集群状态解析逻辑已变得更加灵活。

因此,即使资源具有不正确的大写值,pcs 命令也可以正常工作。

Jira:RHEL-92044

fence_ibm_powervs 支持纯文本令牌文件

在此次更新之前,fence_ibm_powervs 代理只能从格式为 JSON 的文件读取身份验证令牌。无法从纯文本文件读取令牌。

在这个版本中,修正了代理中的文件读取逻辑。

因此,fence_ibm_powervs 代理可以使用 JSON 或纯文本格式的令牌文件。

Jira:RHEL-88568

带有长启动或停止时间的 systemd 资源会被正确处理

在此次更新之前,Pacemaker 轮询用于带有固定超时的 systemd 资源启动和停止操作的结果。如果资源启动或停止的时间超过这个超时时间,Pacemaker 会错误地将资源标记为失败。

在这个版本中,Pacemaker 侦听来自 systemd 的 DBus 信息,以便在启动或停止操作完成后获得通知。

因此,Pacemaker 可以正确地检测到长时间运行的 systemd 服务的状态,因为超时资源不再被标记为失败。

Jira:RHEL-86143[1]

当 quorum 丢失时,Pacemaker 远程节点不再不必要的隔离

在此次更新之前,在某些集群配置中,当其分区丢失仲裁时,Pacemaker 远程节点可以被隔离,即使管理该节点的资源可以在不同的 quorate 节点上安全重启。这个行为会导致 Pacemaker 远程节点上运行的服务不必要的停机时间。

在这个版本中,引入了一个新的集群属性 fence-remote-without-quorum 来控制此行为。

因此,配置 fence-remote-without-quorum=false 设置(默认为 true),如果其管理资源可以在 quorate 节点上恢复,Pacemaker 不再隔离远程节点,从而提高了服务可用性。

Jira:RHEL-84018[1]

fence_kubevirt 即时关闭节点

在此次更新之前,fence_kubevirt 代理执行节点的正常关闭。这会在隔离过程中引入一个延迟,因为该节点没有立即关闭。

在这个版本中,代理已被修改为请求立即非正常关闭。

因此,在使用 fence_kubevirt 代理时,节点会立即关闭。

Jira:RHEL-82193

fence_sbd 现在对独立的 SBD 设备失败更具弹性

在以前的版本中,如果一个或多个配置的 SBD 设备失败,则 fence_sbd 代理会退出,并在其操作中失败。这导致隔离操作无法完成,即使其它 SBD 设备健康。

在这个版本中,代理中的错误处理会被改进。

因此,fence_sbd 代理会为任何失败的 SBD 设备记录错误,并使用剩余的健康设备继续隔离操作。这提高了 SBD 隔离的可靠性。

Jira:RHEL-13088[1]

7.11. 编译器和开发工具

改进了对 glibc中审计模块中的递归 dlopen 调用的支持

在以前的版本中,来自审核员的递归dlopen 调用可能会触发 glibc 的 HEKETIr_state == RT_CONSISTENT 断言失败。因此,当审核员处于活跃状态时,应用程序会意外退出。在这个版本中,动态链路器会在进行 in-progressdlopen 调用过程中报告其内部数据结构的一致性。因此,在更多情况下,支持审核员的递归dlopen 操作。

Jira:RHEL-47403

glibc:在审计模式的早期 TLS 分配过程中应用程序崩溃

在以前的版本中,在审计模式中,与线程本地存储(TLS)管理相关的内部数据结构是在进程启动期间初始化主 wagonrealloc 功能前分配的。因此,当 autotunerealloc 在没有被 autotunemalloc 分配的内存上调用时,应用程序会崩溃。

在这个版本中,动态链接器使用 stub 或 minimalmalloc 的 stub 或 minimal 实现,直到启动过程完成为止。应用程序在早期 TLS 分配过程中不再崩溃。

Jira:RHEL-71922[1]

glibc: ctype.h 宏会在带有多个 libc.so的多线程程序中导致分段错误

在以前的版本中,在由审计创建的二级 C 库副本或 swigdlmopen 创建的二级 C 库副本中,Internal Ctype.h > 的内部状态无法初始化使用 swigpthread_create 创建的线程。因此,在二级线程和命名空间中使用 swig &lt;ctype.h > 功能直接或间接会导致程序崩溃。

在这个版本中,initialization 为 wagon &lt;ctype.h > 的内部状态来引用二级线程和命名空间的 HEKETIC locale。因此,在这些情况下,使用 swig &lt;ctype.h > 中的功能不再会导致崩溃。

Jira:RHEL-72017

glibc 审计日志记录提供完整的对象生命周期跟踪

在以前的版本中,在没有前面的 la_objopen 的情况下,为代理 ld.so 链接映射名为 la_objclose 的 glibc 动态链接器会报告依赖 la_objopen 的工具,以跟踪共享对象。

依赖于 la_objopen 的审计工具建立跟踪失败,无法可靠地监控代理链接映射,从而导致可见性和可能误解卸载事件。

在这个版本中,glibc 动态链接器为适用的链接映射生成 la_objopen,包括代理 ld.so 在二级命名空间中,确保审核接口具有一致的序列。

因此,审核员可以在其生命周期内跟踪代理链接映射,并具有一致的 la_objopenla_objclose 对,提高了审计工具和诊断的可靠性。

Jira:RHEL-49549

当在审计模式下运行 glibc 时,某些程序不再崩溃

在此次更新之前,LD_AUDIT 模式中的 glibc 动态链接器可以使用主 调用oc 函数来分配内部数据结构,然后再初始化主 malloc 子系统。因此,当程序启动时,进程可能会在 calloc 函数中意外终止。在这个版本中,重新安排进程启动序列。因此,调用oc 内存分配会在使用内部 malloc 实现切换到主 malloc 功能前进行,该函数会在启动期间使用。因此,如果动态链接程序使用审计模式,则程序不会在 calloc 函数中启动期间崩溃。

Jira:RHEL-48820[1]

glibc 中修复的 stdio 刷新问题

在此次更新之前,当尝试在缓冲的读取后看到正确的位置时,glibc 中的特定 stdio 流可能会失败,返回 EINVAL 而不是预期的 ESPIPE 以获取不可预见的输入。因此,在管道或其他不可预见的描述符上使用 fclose 的应用程序可能会遇到意外错误,从而导致 I/O 清理失败,并导致文件定位行为不一致。

在这个版本中,当 lseek 在读取后返回 0 时,glibc 会整合一个 ESPIPE 错误,确保 fclose 忽略不可可见的条件,并支持测试基础架构更改(如 xdup)以验证行为。因此,fclose 和相关的 stdio 操作现在与不可可见的流的行为一致,从而减少了错误条件并提高了依赖缓冲的 I/O 的应用程序中的可靠性。

Jira:RHEL-68805[1]

当并行调用 popenfork 时,应用程序不再死锁

在此次更新之前,当在单独的线程中调用 popenfork,当 popen 保存内部 锁定时,子进程可能会继承锁定的状态,如果再次调用 popen,则子进程可能会继承锁定的状态,如果它再次调用 popen

在这个版本中,glibc 在 fork 中释放相关的锁定状态,确保后续的 popen 调用可以在不阻止的情况下进行。因此,popen 在多线程 分叉 调用后不再死锁,改进了支持的构架的进程可靠性和输入输出行为。

Jira:RHEL-59712[1]

go-rpm-macros中的 Golist 命令行解析程序

在此次更新之前,Golist 会因为替换命令行解析器而错误地处理某些文件。因此,一些程序无法构建。在这个版本中,原始命令行解析程序会将原始解析程序恢复到 Golist。

因此,Golist 可以正确处理所有必需的文件,并如预期构建程序。

Jira:RHEL-7366

7.12. 身份管理

ipa-cacert-manage install 现在允许重复的 CA 主题

在以前的版本中,尝试添加具有相同主题的 CA 证书,但使用 ipa-cacert-manage install 的不同私钥会失败,并显示消息 主题公钥信息不匹配,因为 IdM 禁止重复主题。

这个版本会调整这个限制,允许 ipa-cacert-manage install 接受重复的 CA 主题。但是,以下限制仍存在:

  • 无法使用不同的信任标记添加证书。
  • CA 必须共享相同的 nickname。
  • 所有 CA 都强制使用授权密钥标识符(AKI)扩展。它没有会导致信任行为的意外链。

Jira:RHEL-30658[1]

新创建的用户密码策略会被正确显示

在此次更新之前,Service (CoS)模板中的 cosAttribute 属性具有操作修饰符,而不是 operational -default。因此,当子树和用户密码策略都存在时,pwdpolicysubentry 属性指向子树密码策略,而不是用户密码策略。在这个版本中,CoS 模板使用 operational-default 修饰符。因此,用户策略会被正确显示。

注意

此问题只影响了策略,而不是实际密码策略逻辑。

Jira:RHEL-109892[1]

带有 IP 地址通配符的 RootDN Access Control 插件不再失败

在此次更新之前,如果您尝试为 RootDN Access Control 插件配置设置了通配符的 IP 地址,则尝试会失败并显示 Invalid IP 地址 错误。在这个版本中,验证功能已被更新。因此,尝试设置带有通配符的值不再会失败。

Jira:RHEL-109889[1]

Databases 菜单在 Directory Server Web 控制台中按预期打开

在此次更新之前,如果您创建的数据库名称有不正确的后缀语法,则无法在 Directory Server Web 控制台中打开 Databases 菜单,例如,包含 dc= 的名称。在这个版本中,Directory 服务器在后端创建过程中映射树创建失败时使用回滚功能,以防止孤立的后端。因此,Databases 菜单会如预期打开。

Jira:RHEL-109885[1]

添加 nsslapd-referral时目录服务器不再失败

在此次更新之前,当您试图将 Directory 服务器配置为使用引用时,页面搜索结果不正确的处理会导致服务器失败。

在这个版本中,如果搜索结果代码是 LDAP_REFERRAL,则页结果搜索会返回正确的值,服务器不再会失败。

Jira:RHEL-107585[1]

当禁用 NDN 缓存时,目录服务器监控信息会如预期提供

在此次更新之前,当禁用规范化 DN (NDN)缓存时,dsconf & lt;instance_name > 监控 dbmon 命令会失败,因为处理后端 get-tree 命令失败。此发行版本添加了一个回滚功能,以防止在后端创建过程中创建树时阻止孤立后端。因此,目录服务器监控信息会如预期返回。

Jira:RHEL-107005[1]

目录服务器可以正确地显示特定节点下的子条目数

在此次更新之前,在导入过程中错误地计算 numSubordinatesnumTombstoneSubordinates 属性。因此,当您比较特定节点下的子条目数量时,会显示错误的值。

在这个版本中,Directory 服务器会正确计算 numSubordinatesnumTombstoneSubordinates

Jira:RHEL-104593[1]

目录服务器 Web 控制台现在显示服务器版本

在此次更新之前,Web 控制台没有在 Server Settings>General Settings​ 中显示服务器版本。在这个版本中,服务器版本会被正确显示。

Jira:RHEL-104591[1]

目录服务器在 NDN 缓存操作过程中不再失败

在此次更新之前,arc-swap 库(在 389-ds-base 的 Rust 依赖项中使用的 arc-swap 库)可能会导致在 NDN 缓存操作过程中在 Directory Server 中失败。在这个版本中,Directory 服务器使用 Rust 依赖项(concread) 0.5.7 的更新版本,它不包含 arc-swap 库。因此,Directory 服务器不再会失败。

Jira:RHEL-95444[1]

目录服务器在嵌套组中正确显示成员资格

在此次更新之前,Directory 服务器在以下情况下在该条目中显示 memberOf 属性的值不正确:

  • 条目是具有多个嵌套级别的组的成员
  • 组是其他在成员资格关系中具有多个路径的不同组的一部分。

在这个版本中,memberOf 可分辨名称(DN)值会被系统添加,组中的条目成员资格会被正确显示。

Jira:RHEL-89753[1]

389-ds-base 在 LMDB 离线导入过程中不再失败

在此次更新之前,当 worker 线程在另一个进程完成写入条目前读取条目时,会出现竞争条件。因此,在带有 Lightning Memory-Mapped Database Manager (LMDB)后端的实例上离线导入会导致分段错误。

在这个版本中,Directory 服务器通过在写入条目前锁定 worker 队列来确保线程安全访问,服务器在 LMDB 离线导入过程中不再失败。

Jira:RHEL-89745[1]

dsconf 可以正确地返回复制监控信息

在此次更新之前,如果供应商配置了以 0 开始的副本,如 010 020,则 dsconf <instance_name> 复制 monitor 命令无法检索延迟或复制状态的信息。

在这个版本中,在处理副本更新向量(RUV)时,副本 ID 开始时的非注册零(0)会被忽略。因此,dsconf <instance_name> 复制监控器 提供预期的信息。

Jira:RHEL-89736[1]

ipa-healthcheck 现在忽略 副本忙 的情况

在此次更新之前,在带有两个供应商的拓扑中,ipa-healthcheck 工具会在供应商从另一个节点接收更新时报告复制协议状态的错误。这是一个标准复制情况,在这个版本中,ipa-healthcheck 在副本忙碌时不再报告错误。

Jira:RHEL-79673

目录服务器在只读模式下正确启动

在此次更新之前,如果您配置了只读模式,目录服务器不会启动。在这个版本中,nsslapd-readonly 属性会被正确处理,服务器会如预期以只读模式启动。

Jira:RHEL-61347

过时的 /var/log/tallylog 日志文件创建已删除

在此次更新之前,pam.conf 文件中的过时配置会导致创建 /var/log/tallylog 文件。由于系统现在使用 pam_faillock (它取代了过时的 pam_tally ),因此不再需要 /var/log/tallylog 文件。

在这个版本中,pam.conf 已被更新,以删除过时的日志文件创建的说明。

Jira:RHEL-15324

7.13. 桌面

默认 GDM 会话定义不再覆盖自定义定义

在此次更新之前,/usr/ 目录中的 GNOME 显示管理器(GDM)会话的优先级高于 /etc/ 中的会话。因此,/usr/ 中的自定义会话定义将覆盖 /etc/ 中的自定义会话定义。在这个版本中,/etc/ 的会话具有更高的优先级。因此,自定义定义优先级可以正常工作,如 GDM Session Configuration 中定义的。

Jira:RHEL-95837

7.14. Red Hat Enterprise Linux 系统角色

encryption_key 不再被屏蔽

在此次更新之前,encryption_key 参数被错误地标记为 no_log。这会导致密钥文件路径被占位符字符串替代,从而导致磁盘加密正常工作。在这个版本中,encryption_key 参数不再标记为 no_log 标志,您现在可以成功使用密钥文件执行磁盘加密。

Jira:RHEL-104676[1]

RAID 现在报告无效或不支持的配置的明确错误

在此次更新之前,可以指定无效的 RAID 级别或磁盘不足,而不会造成明显错误。这会导致阵列创建失败或不一致。因此,错误消息不明确,RAID 设置不太可靠。在这个版本中,RAID 参数会在阵列创建前验证,并强制使用最小磁盘计数。因此,会引发清晰的错误,并尝试创建带有没有磁盘不足的 RAID 被阻止。

在这个版本中,删除了已弃用的 process_device_numbers 帮助程序,并使用 unified_raid_level。另外,还添加了无效 RAID 级别和磁盘场景的失败测试。

Jira:RHEL-104891[1]

LVM RAID 现在支持加密和分区的设备

在此次更新之前,LVM RAID 代码假设 raid_disks 中指定的磁盘是所有 LVM RAID 设置的 PV 的父设备。这不适用于加密或分区的设备。因此,当加密 LUKS 层添加了一个额外的存储层时,或者在没有父设备的情况下使用直接分区时出现错误。在这个版本中,LVM RAID 中的 PV 解析被改进来支持加密和分区的设备。现在,您可以指定 PV 分区而不是底层磁盘。

在这个版本中,为缺失或无效的 RAID 磁盘条目添加了错误处理,并引进了相应的测试以确保稳定性。

Jira:RHEL-95885[1]

较小的卷大小不匹配不再导致角色报告不正确

在此次更新之前,当创建或重新定义卷的大小时,系统最多允许达到请求大小和实际大小之间的 2% 的不同。这种调整使卷适合可用的池可用空间。因此,当角色再次运行时大小不匹配,从而导致角色错误地假设内容已更改。在这个版本中,小大小差异不再导致角色错误解析更改。现在,该角色会报告正确的状态。

Jira:RHEL-82825[1]

如果禁用了 IPv6 接口,postfix RHEL 系统角色会自动探测

默认 postfix 配置使用 inet_interfaces = localhost 设置,它会告知 postfix 侦听解析到 localhost 的所有接口,包括 IPv4 和 IPv6 接口。在此次更新之前,如果主机上禁用了 IPv6,则会出现问题。在这种情况下,postfix 角色及其命令行工具(如reply )会返回错误。整个角色都失败。在这个版本中,该角色确定是否禁用了 IPv6。如果是这样,它会设置 inet_protocols = ipv4,以便 postfix 仅使用 IPv4 接口。因此,postfix 角色也可以工作,即使禁用 IPv6。

Jira:RHEL-103889[1]

timesync RHEL 系统角色不再从 /etc/sysconfig/chronyd中删除 OPTIONS="-F 2" 默认设置

在此次更新之前,timesync 系统角色使用 "" 替换 chronyd 服务的默认 OPTIONS= 设置。因此,这删除了默认的 OPTIONS="-F 2" 设置,这弱了 chronyd 的安全性。在这个版本中,-F 2 被添加为 OPTIONS 的默认设置,用户可以覆盖或扩展此设置。因此,timesync 角色现在应用正确的安全设置,同时仍然允许用户自定义。

Jira:RHEL-88299[1]

改进了使用 swigrhel-system-roles中的值删除内核选项

在以前的版本中,当用户只提供密钥时,无法删除指定为 key=value 的内核引导选项,从而导致持久不需要的引导参数,按名称管理内核选项。在这个版本中,在 swigmod_boot_args 函数中的正则表达式已被更新,以正确匹配并删除内核选项,并添加了自动测试以验证正确的行为。

因此,现在可以按名称可靠地删除内核选项,即使将 key=value 设置为 key=value,确保准确的配置和改进的系统管理。

Jira:RHEL-101678[1]

GSSAPIIndicators 添加到 sshd 角色

新的配置选项 GSSAPIIndicators 被添加到 RHEL 10 中,用于设置通用安全服务应用程序编程接口(GSS-API)。在这个版本中,在 sshd RHEL 系统角色中添加了 GSSAPIIndicators 配置选项。因此,您可以使用 RHEL 系统角色在 RHEL 10 系统上配置 GSSAPIIndicators

Jira:RHEL-107049[1]

bootloader 角色拒绝布尔值或 null 类型值

在此次更新之前,用户可以指定值(如 value: onvalue: yes )的值,它们会被转换为字符串 "on""yes "。但是,YAML 将它们视为 YAML bool 类型,并将其写为字符串 "True "。因此,不知道 YAML 布尔值处理的用户无法设置值,如 "on""off "。在这个版本中,引导装载程序 RHEL 系统角色会拒绝布尔值或 null 类型的值。因此,用户必须输入这样的 YAML 布尔值类型值,以带引号字符串将它们写入引导装载程序配置。readme 使用此信息更新。

Jira:RHEL-107015[1]

当解析 Alias 值时,sudo 角色不再挂起

在此次更新之前,sudo RHEL 系统角色中的 regex 不考虑该 Alias 值,如 Cmnd_Alias,不必在等号 = 一侧有空格。因此,正则表达式永远不会被终止,角色似乎挂起。在这个版本中,角色确保 regex 符合 sudoers 文件规格中字段的 eBNF 定义。因此,Alias 值会被正确解析,并且没有空格 =

Jira:RHEL-106733[1]

指定多个用户不再会导致资源与错误的用户关联

在此次更新之前,用户数据会因为管理多个用户时混合使用 __podman_user 和 __podman_user _home_dir 变量值的事实和变量而发生。因此,用户数据会在多个用户间混合,从而导致每个用户使用不正确的配置文件。在这个版本中,通过避免 __podman_user 和 __podman_user _ home_dir 的组合和变量来维护 用户数据分离。因此,用户数据会隔离给多个用户,从而提高资源管理一致性。

Jira:RHEL-105095[1]

SELinux 角色不再因为 Ansible 检查模式下未定义的 tempdir 路径而生成错误

在此次更新之前,在 Ansible 检查模式中没有定义 tempdir 路径,__selinux_item.path 可以是 undefined。因此,当以检查模式运行时,selinux RHEL 系统角色会生成各种变量未定义的错误。在这个版本中,角色会跳过需要定义 tempdir.path 的任务,并可以处理变量未定义的情况。因此,该角色可在检查模式中正常工作。

Jira:RHEL-103575[1]

确保 ha_cluster RHEL 系统角色需要 /var/lib/pcsd 目录

在此次更新之前,/var/lib/pcsd 目录是在安装过程中创建的,但更新的版本依赖 systemd 服务在 pcsd 服务启动时创建这个目录。因此,当角色尝试访问它时,该目录可能不存在,从而导致执行错误或失败。

在这个版本中,该角色明确确保 /var/lib/pcsd 目录在使用前存在。因此,它可防止因为缺少目录而导致运行时问题,并改进角色执行可靠性。

Jira:RHEL-101663[1]

使用 redhat.rhel_system_roles 集合不再显示有关不兼容 Ansible 版本的警告

在此次更新之前,redhat.rhel_system_roles 集合在 meta/runtime.yml 文件中指定 {{requires_ansible: ">=2.15.0"}},但 RHEL 9 包含 ansible-core 2.14。因此,如果您在 playbook 中使用了集合,Ansible 会显示一个 Collection redhat.rhel_system_roles 不支持 Ansible 版本 2.14.x 警告。在这个版本中,更改了 meta/runtime.yml 文件,以使用 {{requires_ansible: ">=2.14.0"}}。因此,集合不再显示警告。

Jira:RHEL-94444[1]

SELinux 角色永久设置内核 SELinux 参数

在此次更新之前,selinux RHEL 系统角色不会在更改 SELinux 状态和禁用时设置 kernel SELinux 参数。因此,SELinux 状态更改在重启后不会被保留。在这个版本中,确保在角色将 SELinux 状态更改为 disabled 时正确设置了 kernel SELinux 参数。因此,SELinux 状态会更改为,重启后从 disabled 会被保留。

Jira:RHEL-93296[1]

systemd 角色使用文件 basename 构造到目的地的路径

在此次更新之前,如果用户在嵌套目录中指定了文件或模板源,systemd RHEL 系统角色将使用整个路径而不是目标文件的 basename。因此,文件和模板放置在目的地的同一目录结构中,systemd 不支持它。在这个版本中,该角色将 basenames 用于嵌套目录中的目标文件。因此,用户可以使用带有角色的嵌套目录。

Jira:RHEL-88772

ad_integration 角色中引入了软件包安装的灵活性

在以前的版本中,ad_integration 角色总是会尝试安装所需的软件包,如 realmdsssd-adadcli 以及 __ad_integration_packages 中列出的更多内容。在外部系统处理软件包管理的环境中,例如,通过此角色之外的配置管理、预先获取的镜像或不可变系统,这一步是冗余且不可取的。

在这个版本中,用户可以通过其他方法管理软件包安装,并且只希望此角色加入域,从而提供灵活性。主要改进包括:

  • 新变量:引入新的布尔值变量 ad_integration_manage_packages,以控制角色是否安装软件包。
  • Default Value: 默认值在 defaults/main.yml 中被设置为 true,以确保向后兼容。使用此角色的现有 playbook 将像不修改之前一样继续工作。
  • 条件任务:添加 when: ad_integration_manage_packages | bool 条件到 tasks/main.yml 中的 "Ensure required packages are installed" 任务。该任务现在仅在标志为 true (默认)时运行。
  • 文档: Updated README.md 以包含新的 ad_integration_manage_packages 变量,解释其目的和默认值。

Jira:RHEL-88314[1]

qdevice 守护进程现在在证书更改后自动重启

在以前的版本中,在更新用于仲裁设备守护进程(qnetd)和集群节点(qdevice)之间的通信后,qdevice 守护进程不会自动重启。守护进程将继续使用旧证书,从而导致与仲裁设备的通信失败。

在这个版本中,集群节点中的 qdevice 守护进程会在证书更改后自动重启。这样可确保立即载入新证书,并与仲裁设备通信被维护。

Jira:RHEL-88251[1]

ha_cluster RHEL 系统角色现在可以与配置了系统范围的 HTTP 代理一起工作

在以前的版本中,当配置了系统范围的 HTTP 代理时,ha_cluster RHEL 系统角色会错误地尝试通过 unix 套接字与 pcsd 守护进程进行本地通信。这会导致角色失败。

在这个版本中,这个角色已被修改,以明确禁用本地 pcsd 通讯的代理使用。

因此,ha_cluster RHEL 系统角色在定义了系统范围的 HTTP 代理的系统中可以正常工作。

Jira:RHEL-88241[1]

网络 RHEL 系统角色不再显示错误,因为路由规则验证不正确

在此次更新之前,network RHEL 系统角色中的验证部分会错误地检查顶层 NM 模块中的路由规则属性,而不是 NM.IPRoutingRule 类。这会导致验证失败,角色显示错误。在这个版本中,该角色正确使用 API,不再显示不正确的验证错误。

Jira:RHEL-85872

布尔值选项值在 TOML 文件中正确呈现

在以前的版本中,布尔值选项被错误地处理,因为 formatter 代码没有将布尔值转换为正确的字符串表示。在这个版本中,布尔值会被正确转换为小写字符串,确保 TOML 文件中的正确渲染和处理。

Jira:RHEL-85702

布尔值选项可以在 TOML 文件中正确写入和处理

在此次更新之前,布尔值选项没有被正确处理,因为格式的代码没有将布尔值转换为正确的字符串表示。

在这个版本中,我们将布尔值选项转换为字符串,然后转换为小写,这是正确的 TOML 布尔值格式。这样可确保 TOML 文件可以正确地写入和处理布尔值选项。

Jira:RHEL-84940

在管理身份验证和配置文件时,podman RHEL 系统角色不会报告 changed: true

在此次更新之前,如果在管理身份验证和配置文件时,podman RHEL 系统角色都会更改父路径模式,因为它为各种配置和身份验证文件的通用父路径使用两种不同的模式。

在这个版本中,该角色不会报告 changed: true,因为它对父路径使用一致的模式。

Jira:RHEL-84920

Podman 角色不会失败并显示 UNREACHABLE 错误

在以前的版本中,在为非 root 用户禁用 linger 时,podman 角色无法等待用户状态处于关闭状态。然后,podman 角色重启 systemd-logind 以强制其取消。在某些系统上,这启动一个计时器来终止 root 会话,从而导致 sshd 会话终止,Ansible play 会失败,并显示 UNREACHABLE 错误。

在这个版本中,系统会等待用户处于关闭状态,且只在绝对需要时才重新启动。 因此,在删除资源时角色不会失败,并显示 UNREACHABLE 错误。

Jira:RHEL-84910

network RHEL 系统角色现在使用更强大的接口识别方法

在此次更新之前,当为网络接口提供了接口名称和 MAC 地址时,验证过程会执行两个独立的查找:一个用于使用接口名称,另一个使用 MAC 地址。这可能会导致验证失败,因为 MAC 地址的查找可能与接口的当前 MAC 地址而不是其永久硬件 MAC 地址匹配。

在这个版本中,验证逻辑有所改进。network 角色现在使用接口名称作为唯一标识符来查找网络设备。然后,它会检索与该接口关联的 MAC 地址,并将其与用户提供的 MAC 地址进行比较以进行验证。这个方法更为可靠,因为接口名称是唯一的内核标识符,防止临时 MAC 地址更改导致的不匹配。

Jira:RHEL-84362

systemd 角色取消掩码,并在一次运行时启动单元

在此次更新之前,systemd RHEL 系统角色无法在单元被屏蔽时启用并启动服务,因为角色无法首先取消屏蔽单元。因此,用户必须运行角色两次。在这个版本中,systemd 角色可以正确地取消掩码并启动服务,从而消除了重复运行的需求。

Jira:RHEL-81755

7.15. 虚拟化

在使用 AMD SEV-SNP 的虚拟机中本地 kdump 不再失败

在此次更新之前,使用具有安全嵌套的 Paging (SNP)功能的 AMD Secure Encrypted Virtualization (SEV)功能的 RHEL 10 虚拟机(VM)上本地 kdump 会失败。因此,您无法在启用了 AMD SEV-SNP 的虚拟机上捕获内核崩溃转储。

在这个版本中,底层代码已被修复。因此,本地 kdump 在带有 AMD SEV-SNP 的虚拟机上不再失败。

Jira:RHEL-10019[1]

对于 虚拟机迁移,--migrate-disks-detect-zeroes 选项不再失败

在此次更新之前,在 RHEL 10 上迁移虚拟机(VM)时,--migrate-disks-detect-zeroes 选项可能无法正常工作,且迁移可能已在指定磁盘上没有零块检测。这个问题是由 QEMU 中存在一个错误造成的,其中镜像作业依赖于 punching 漏洞,从而导致稀疏目标文件。

在这个版本中,如果目标系统报告读取所有零,且没有额外的工作来进一步完成镜像,QEMU 已被修复,它会保留稀疏性。因此,对于虚拟机迁移,--migrate-disks-detect-zeroes 选项可以正常工作。

Jira:RHEL-82906

没有配置 discard_granularity 时,发送错误校准的丢弃 I/O 请求不再暂停

在此次更新之前,主机内核失败丢弃 I/O 请求,QEMU 使用 werror= policy 参数响应这样的故障。当 werror 设置为 stop:werror=stop 时,失败的丢弃请求会导致虚拟机(VM)暂停。因此,无法更正这种情况,然后再次恢复虚拟机。

在这个版本中,QEMU 已更新为静默忽略不正确的 I/O 请求,因此没有正确的 discard_granularity 值的客户机不会暂停。因此,当没有配置 discard_granularity 时,虚拟机发送丢弃 I/O 请求不再暂停。但是,最好配置 discard_granularity 值,因此丢弃请求具有其预期效果,而不是在对齐时忽略。

Jira:RHEL-86032[1]

当访问使用多个打开文件的共享目录时,virtiofsd 不再崩溃

在此次更新之前,当从虚拟机(VM)访问大量打开文件的 virtiofs 共享目录时,操作可能会失败,并显示以下错误: Too many open files, 和 virtiofsd 进程崩溃。

在这个版本中,底层代码已被修复。因此,从虚拟机访问带有大量打开文件的 virtiofs 共享目录可能会导致虚拟机出现错误,但 virtiofsd 进程不再崩溃,保持 virtiofs 共享目录可在虚拟机中访问。

Jira:RHEL-87161[1]

在 ESXi 上自定义 RHEL 9 客户机不再会导致网络问题

在以前的版本中,在 VMware ESXi hypervisor 中自定义 RHEL 9 客户机操作系统无法使用 NetworkManager 密钥文件正常工作。因此,如果客户机使用这样的密钥文件,它有不正确的网络设置,如 IP 地址或网关。这个问题现已解决,NetworkManager 密钥文件不再在上述场景中造成网络问题。

Jira:RHELPLAN-106947[1]

安装程序显示要在虚拟机上安装 RHEL 的期望的系统磁盘

在以前的版本中,当使用 virtio-scsi 设备在虚拟机上安装 RHEL 时,这些设备可能会因为 device-mapper-multipath 错误而不会出现在安装程序中。因此,在安装过程中,如果某些设备设置了串口,而有些设备没有,则 multipath 命令会声明所有具有串口的设备。因此,安装程序无法在虚拟机中找到要安装 RHEL 的期望的系统磁盘。

有了这个更新,multipath 可以正确地将没有串口的设备设置为没有全局识别符(WWID),并忽略它们。在安装时,multipath 只声明 multipathd 用来绑定多路径设备的设备,安装程序在虚拟机中显示要安装 RHEL 的期望的系统磁盘。

Jira:RHELPLAN-66975[1]

在据有 AMD EPYC CPU 的主机上进行 v2v 转换后,Windows 客户机可以更可靠地启动

在使用 virt-v2v 工具转换使用 Windows 11 或 Windows Server 2022 作为客户机 OS 的虚拟机(VM)后,之前的虚拟机无法引导。这在使用 AMD EPYC 系列 CPU 的主机上发生。现在,底层代码已修复,在上述情况下,虚拟机按预期引导。

Jira:RHELPLAN-147926[1]

nodedev-dumpxml 可以正确列出某些介质设备的属性

在此更新前,nodedev-dumpxml 工具无法正确列出使用 nodedev-create 命令创建的介质设备的属性。这个问题已被解决,nodedev-dumpxml 现在可以正确地显示受影响的介质设备的属性。

Jira:RHELPLAN-139536[1]

重启 virtqemudlibvirtd 后,现在可以附加 virtiofs 设备

在以前的版本中,重启 virtqemudlibvirtd 服务会阻止 virtiofs 存储设备附加到主机上的虚拟机(VM)。这个 bug 已被解决,您现在可以在上述场景中附加 virtiofs 设备。

Jira:RHELPLAN-119912[1]

blob 资源现在可正确用于 IBM Z 上的 virtio-gpu

在以前的版本中,virtio-gpu 设备与 IBM Z 系统上的 blob 内存资源不兼容。因此,如果您在 IBM Z 主机上配置了一个带有 virtio-gpu 的虚拟机(VM),以使用 blob 资源,则虚拟机没有任何图形输出。

有了此更新,virtio 设备有一个可选的 blob 属性。将 blob 设置为 on 可使用该设备中的 blob 资源。这防止 virtio-gpu 设备中出现描述的问题,也可以通过减少或消除客户机和主机之间 pixel 数据的复制来加快显示路径。请注意,blob 资源支持需要 QEMU 版本 6.1 或更高版本。

Jira:RHEL-7135

重新安装 virtio-win 驱动程序不再导致 DNS 配置在客户机上重置

在使用 Windows 客户机操作系统的虚拟机(VM)中,重新安装或升级网络接口卡(NIC)的 virtio-win 驱动程序之前会导致客户机中的 DNS 设置重置。因此,在某些情况下您的 Windows 客户机会丢失网络连接。

有了此更新,描述的问题已被修复。因此,如果您从最新版本的 virtio-win 重新安装或升级,则问题不再发生。但请注意,从之前版本的 virtio-win 升级将不会解决问题,并且 DNS 重置可能仍在您的 Windows 客户端中发生。

Jira:RHEL-1860[1]

VNC viewer 在实时迁移 ramfb 后可以正确地初始化虚拟机显示

这个更新增强了 ramfb 帧缓冲设备,您可以将其配置为虚拟机(VM)的主显示。在以前的版本中,无法迁移 ramfb ,这导致使用 ramfb 的虚拟机在实时迁移后显示白屏。现在,ramfb 与实时迁移兼容。因此,在迁移完成后,您可以看到 VM 桌面显示。

Jira:RHEL-7478

7.16. 云环境中的 RHEL

使用 KVM 虚拟化的嵌套虚拟机和 OVMF 现在在使用 AMD EPYC 处理器时在 Azure 或 Hyper-V 上成功引导

在以前的版本中,当在使用 AMD EPYC 处理器的 Microsoft Azure 或 Hyper-V 的 RHEL 虚拟机上运行时,使用 Open Virtual Machine Firmware (OVMF)的嵌套虚拟机(VM)无法引导。VM 使用以下日志消息引导失败:

Code=qemu-kvm: ../hw/core/cpu-sysemu.c:76  Aborted (core dumped) .

在这个版本中,这个问题已被解决,嵌套虚拟机在上述情况下会如预期引导。

Jira:RHEL-29919[1]

7.17. 支持性

coredump 插件现在可以正确地限制收集的 coredump 文件数量

在以前的版本中,coredump 插件收集 coredumpctl 转储 输出,这可能会导致不必要的大型归档。在这个版本中,插件默认为收集三个最新的 coredump 文件。另外,插件将继续提供来自 coredumpctl info 的摘要信息,并包括帮助将收集的转储映射到其相应的元数据条目的符号链接。

用户可以使用 executable 选项进一步过滤收集的转储,该选项接受应用于 coredumpctl list 的 EXE 字段的区分大小写的 Python 正则表达式。您可以进一步使用 dump 选项来限制最后一个 coredump 的数量。

Jira:RHEL-62972[1]

sos report 中的插件选项覆盖不再禁用 /etc/sos/sos.conf 或 preset 中配置的不相关的选项

在以前的版本中,当使用指定特定插件设置的 a -k 选项执行 sos report 命令时,sos 工具会错误地忽略 /etc/sos/sos.conf 或 preset 中定义的其他有效插件选项。这导致场景,尽管在配置文件 [plugin_options] 部分或预先设置的 [plugin_options] 部分中正确配置了全局设置或用户定义的预设置。

此行为会影响试图收集完整系统活动报告器(SAR)数据的客户,如 红帽知识库解决方案 1418303 中所述。在运行时使用 any -k 选项时,sar.all_sar 设置将恢复为 off,从而导致数据收集不完整。

在这个版本中,sos 工具可以正确地将通过 -k 标志提供的选项与配置文件中定义的选项进行合并,确保保留并应用不相关的插件选项。在这个版本中,恢复一致性,并确保配置时全面的 SAR 数据收集。

Jira:RHEL-67097[1]

sos-audit 软件包现在包含所需的 GPLv2 LICENSE 文件

在以前的版本中,虽然 sos-audit 软件包始终是 sos 项目的一部分,而从包含许可证的同一 SRPM 构建时,生成的 sos-audit RPM 软件包可以与主 sos RPM 分开安装。这意味着,只有 sos-audit 子软件包的用户无法找到许可证可用。这会破坏到 RHEL 8 和 RHEL 9 中的当前版本的 sos-audit 版本。

在这个版本中,sos-audit 软件包可以正确地包括 GPLv2 LICENSE 文件。

Jira:RHEL-73028

iSCSI 插件不再收集 sosreport 中的纯文本 CHAP 凭证

在以前的版本中,在生成导致安全风险的报告时,sos 中的 iscsi 插件以明文形式收集敏感 CHAP 身份验证凭据。在这个版本中,iscsi 插件已被修改为模糊敏感字段,确保 CHAP 用户名和密码在收集的输出中被重新设计或排除。

Jira:RHEL-81187[1]

THP 插件现在可以收集完整的配置来准确反映 Transparent Huge Pages 状态

在以前的版本中,sos 的内存插件只收集 /sys/kernel/mm/transparent_hugepage/启用 的文件,以确定 Transparent Huge Pages (THP)的状态。但是,最近的内核行为更改使这种方法不足。例如,当 shmem_ enabled 设为 [always] 时,可以把 enabled 设置为 [never],从而导致 THP 在禁用时为共享内存片段处于活跃状态。

在这个版本中,THP 插件会收集 /sys/kernel/mm/transparent_hugepage/ 下的所有相关文件,提供如何启用 THP 的完整、准确的视图。

Jira:RHEL-81634[1]

现在默认禁用每个用户 SSH 配置

在以前的版本中,sos 中的 ssh 插件默认从所有本地用户 .ssh 目录中收集详细信息。这会导致执行时间较长,特别是在有大量本地用户的环境中。在这个版本中,ssh 插件不再默认收集每个用户 .ssh 配置数据。要捕获用户配置,请通过设置 ssh.userconfs=on 来显式启用它。

Jira:RHEL-84078

sos 4.10 版本中的 sos collect 命令不再生成 xz/bz2 tar 归档

在此次更新之前,sos collect 命令会返回一个压缩的 tar 存档,如 tar.xztar.bz2。在这个版本中,sos collect 会生成解压缩的 tar 归档而不是压缩 tar 归档,从而节省时间和资源。

Jira:RHELDOCS-21013[1]

7.18. 容器

podman events 命令的事件日志现在可用

在以前的版本中,journald 驱动程序中的错误阻止网络事件属性保留,因此这些事件不会包含在日志中。在这个版本中,podman 事件 会显示 network createnetwork rm 事件。

Jira:RHEL-110317

现在可以为使用模式为 0755 的挂载目标创建父目录

在这个版本中,由于在 quay.io/buildah/stable:v1 v1.41.3 中处理-- mount 参数权限的修改而发生构建失败。在以前的版本中,将 UID 指定为参数会导致 secret 的权限不正确。因此,因为 buildah 更新后的权限不正确,用户无法访问构建 secret。

在这个版本中,Buildah 更新了 Buildah v1.41.3 的 secret 权限,使用 secret-permissions 而不是 挂载。现在,在使用- mount 参数中的 UID 参数时,Buildah 可以正确地为 secret 设置预期的权限,从而解决挂载失败。

Jira:RHEL-115166

7.19. RHEL Lightspeed

当您尝试删除不存在的 chat 历史记录时,命令行助手会显示有意义的错误消息

在此次更新之前,用户可以在不收到错误消息的情况下删除不存在的 chat 历史记录。此功能增强针对这种情况实现错误消息。

Jira:RHELDOCS-21314[1]

在未命名的 chat 中添加描述会触发警告

在此次更新之前,如果您在 chat 中添加了一个描述,但没有为 chat 指定名称,则不会显示错误消息,也不会显示带有自定义描述的聊天。在这个版本中,命令行助手在这样的情形中会显示警告。

Jira:RHELDOCS-21316[1]

c 历史记录 默认显示完成历史记录

在此次更新之前,在没有返回任何选项的情况下运行 c history 命令不会返回历史记录,从而导致用户造成混淆。在这个版本中,添加了 for- all 的默认选项。因此,您可以使用单个命令轻松查看所有历史记录: c history

Jira:RHELDOCS-21317[1]

命令行助手不再显示无效查询的错误

在此次更新之前,响应中终端输出的不正确数据结构会导致用户查询无法处理错误消息。在这个版本中,chat 接口的终端输出结构已被主动解决,防止命令行助手来显示无效的查询请求的错误,从而提高您的用户体验。

Jira:RHELDOCS-21318[1]

在终端重启后,交互式 shell 可以正确启动

在此次更新之前,用户的 .bashrc 文件不包含对 .bashrc.d 目录的引用,阻止 source 命令查找 CLA 集成脚本。因此,用户无法访问交互式 shell。在这个版本中,添加了一个检查以确保载入 shell 集成所需的文件。因此,交互式 shell 会在终端重启时启动。

Jira:RHELDOCS-21319[1]

后端超时在 query.py中可以正常工作

在此次更新之前,在 query.py 脚本中扩展后端超时无法正常工作。脚本会继续每 30 秒生成超时消息,因为内部超时默认保留在 30 秒。在这个版本中,您可以通过在 /etc/xdg/command-line-assistant/config.toml 文件中配置它,将后端超时扩展到适合任何值,从而改进响应时间。

Jira:RHELDOCS-21320[1]

cla chat 在没有参数运行时会显示帮助

在此次更新之前,在不提供额外的输入的情况下使用 cla chat 会导致用户混淆,因为它们预期的交互式 AI 帮助,但没有收到响应。在这个版本中,当您使用 cla chat 不带参数时,命令行助手将提供帮助并指示其他输入,从而提高您在 CLA 的交互模式的用户体验。

Jira:RHELDOCS-21322[1]

第 8 章 技术预览

这部分列出了 Red Hat Enterprise Linux 9 中的所有技术预览。

如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围

8.1. 安装程序和镜像创建

用于 RHEL 安装的通过 TCP 的 NVMe 现在作为技术预览提供

有了这个技术预览,您现在可以在配置固件后,使用通过 TCP 的 NVMe 卷来安装 RHEL。从 Installation Destination 屏幕添加磁盘时,您可以在 NVMe Fabrics Devices 部分下选择 NVMe 命名空间。

Jira:RHEL-10216[1]

可引导 OSTree 原生容器的安装现在作为技术预览提供

ostreecontainer Kickstart 命令现在在 Anaconda 中作为技术预览提供。您可以使用此命令从封装在 OCI 镜像中的 OSTree 提交安装操作系统。在执行 Kickstart 安装时,以下命令与 ostreecontainer 一起提供:

  • 图形、文本或命令行
  • ostreecontainer
  • clearpart, zerombr
  • autopart
  • part
  • logvol, volgroup
  • 重启和关闭
  • lang
  • rootpw
  • sshkey
  • bootloader - 仅适用于 --append 可选参数。
  • user

当您在 user 命令中指定一个组时,用户帐户可能只分配给已在容器镜像中存在的组。不在此处列出的 Kickstart 命令允许与 ostreecontainer 命令一起使用,但无法保证与基于软件包的安装那样按预期工作。

但是,以下 Kickstart 命令与 ostreecontainer 都不支持:

  • %packages (任何必要的软件包都必须已在容器镜像中提供)
  • url(如果需要为安装获取 stage2 镜像,例如 PXE 安装,请对内核使用 inst.stage2=,而不是为 Kickstart 文件中的 stage2 提供一个 url)
  • liveimg
  • vnc
  • authconfig 和 authselect (在容器镜像中提供相关的配置)
  • module
  • repo
  • zipl
  • zfcp

在使用部分 Kickstart 文件的交互式安装中不支持可引导 OSTree 原生容器的安装。

注意: 当自定义一个挂载点时,您必须在 /mnt 目录中定义挂载点,并确保容器镜像中的 /var/mnt 中存在挂载点目录。

Jira:RHEL-2250[1]

在 Anaconda 中通过 bootupd / bootupctl 的引导装载程序安装和配置现在作为技术预览提供

因为 ostreecontainer Kickstart 命令现在在Anaconda 中作为技术预览提供,因此您可以使用它来从封装在 OCI 镜像中的 OSTree 提交安装操作系统。Anaconda 通过包含在容器镜像中的 bootupd/bootupctl 工具自动安排一个引导装载程序安装和配置,即使 Kickstart 中没有明确的引导装载程序配置。

Jira:RHEL-17205[1]

s390x 上的基于容器的部署现在作为技术预览提供

RHEL 安装程序现在支持使用 ostreecontainer Kickstart 命令作为技术预览在 s390x 架构上部署可引导容器。此功能增强删除了以前的限制,并确保在支持的构架中保持一致的部署选项。用户现在可以使用基于容器的工作流在 s390x 系统上自动安装。

Jira:RHEL-63237

8.2. 安全性

RHEL 中加密的 DNS 作为技术预览提供

您可以启用加密的 DNS 来保护使用 DNS-over-TLS (DoT)的 DNS 通信。加密的 DNS (eDNS)加密所有端到端的 DNS 流量,且不回退到不安全的协议,并与零信任架构(ZTA)原则保持一致。

要执行带有 eDNS 的新安装,请使用内核命令行指定启用了 DoT 的 DNS 服务器。这确保加密的 DNS 在安装过程中、引导时间和安装的系统上处于活跃状态。如果您需要一个自定义 CA 证书捆绑包,则您只能通过在 Kickstart 文件中使用 %certificate 部分来安装它。目前,自定义 CA 捆绑包只能通过 Kickstart 安装来安装。

在现有系统上,将 NetworkManager 配置为使用新的 DNS 插件 dnsconfd,后者管理 eDNS 的本地 DNS 解析器(未绑定)。添加内核参数来为早期引导过程配置 eDNS,并选择性地安装自定义 CA 捆绑包。

此外,身份管理(IdM)部署也可以使用加密的 DNS 服务器,以及支持 DoT 的集成的 DNS 服务器。

如需了解更多详细信息 ,请参阅使用加密 DNS 保护系统 DNS 流量

Jira:RHELDOCS-20059[1], Jira:RHEL-67913

新软件包: fips-provider-next (技术预览)

作为技术预览,这个更新添加了一个新的 FIPS 供应商,它会在获取 FIPS 认证前展示将来的代码。

Jira:RHEL-96056[1]

gnutls 现在使用 kTLS 作为技术预览

更新的 gnutls 软件包可以将内核 TLS (kTLS)作为技术预览,来在加密通道上加速数据传输。要启用 kTLS,请使用 modprobe 命令添加 tls.ko 内核模块,并使用以下内容为系统范围的加密策略创建一个新的配置文件 /etc/crypto-policies/local.d/gnutls-ktls.txt

[global]
ktls = true

请注意,当前版本不支持通过 TLS KeyUpdate 消息更新流量密钥,这会影响 AES-GCM passwordsuites 的安全性。如需更多信息,请参阅 RFC 7841 - TLS 1.3 文档。

Jira:RHELPLAN-128129[1]

OpenSSL 客户端可以使用 QUIC 协议作为技术预览

OpenSSL 可以在带有 rebase 到 OpenSSL 版本 3.2.2 的客户端上使用 QUIC 传输层网络协议作为技术预览。

Jira:RHELDOCS-18935[1]

io_uring 接口作为技术预览提供

io_uring 是一个新的有效的异步 I/O 接口,现在作为技术预览提供。默认情况下禁用此功能。您可以通过将 kernel.io_uring_disabled sysctl 变量设置为以下值之一来启用这个接口:

0
所有进程都可以正常创建 io_uring 实例。
1
对非特权进程,io_uring 创建被禁用。io_uring_setup 失败并显示 -EPERM 错误,除非调用过程具有 CAP_SYS_ADMIN 功能的特权。仍可使用现有的 io_uring 实例。
2
对所有进程,io_uring 创建被禁用。io_uring_setup 使用 -EPERM 总是失败。仍可使用现有的 io_uring 实例。这是默认设置。

使用此功能也需要 SELinux 策略的更新版本,来在匿名内节点上启用 mmap 系统调用。

通过使用 io_uring 命令直通,应用程序可以直接向底层硬件发出命令,如 nvme

Jira:RHEL-11792[1]

8.3. RHEL for Edge

作为技术预览,FDO 现在提供和查询来自 SQL 后端的所有者凭证

有了这个技术预览,FDO manufacturer-serveronboarding-serverrendezvous-server 可用来存储和查询来自 SQL 后端的所有者凭证。因此,您可以在 FDO 服务器选项中选择 SQL 数据存储,以及凭证和其他参数,来存储所有者凭证。

Jira:RHELDOCS-17752[1]

8.4. Shell 和命令行工具

RHEL 9.7 在 aarch64 上作为技术预览提供

RHEL 9.7 为 64 位 ARM 架构(aarch64)引入了 Relax 和 Recover (ReaR)软件包作为技术预览。ReaR 是一个灾难恢复工具,它会生成一个可引导镜像,可用于从备份中恢复系统。目前,您可以在 aarch64 上使用带有 ReaR 的以下输出方法:ISO、USB 和 PXE。

有关 ReaR 的详情,请查看 Relax 和 Recover (ReaR)是什么以及如何将其用于灾难恢复?

Jira:RHEL-56045[1]

8.5. 基础架构服务

libabigail :灵活的阵列转换警告抑制,作为技术预览提供

作为技术预览,当比较二进制文件时,您可以使用以下抑制规范抑制与转换为 true 灵活数组的假灵活数组相关的警告:

[suppress_type]
       type_kind = struct
       has_size_change = true
       has_strict_flexible_array_data_member_conversion = true

Jira:RHEL-16629[1]

8.6. 网络

将 IPsec 封装卸载到 NIC 现在作为技术预览提供

此更新向内核添加了 IPsec 数据包卸载功能。在以前的版本中,只能将加密卸载到网络接口控制器(NIC)。有了此增强,内核现在可将整个 IPsec 封装过程卸载到 NIC,以减少工作负载。

请注意,将 IPsec 封装过程卸载到 NIC 也会减少内核监控和过滤此类数据包的能力。

Jira:RHEL-88552[1]

KTLS 作为技术预览提供

在 RHEL 中,内核传输层安全(KTLS)作为技术预览提供。KTLS 使用内核中的对称加密或者解密算法为 AES-GCM 密码处理 TLS 记录。KTLS 还包括将 TLS 记录加密卸载到提供此功能的网络接口控制器(NIC)的接口。

请注意,内核 TLS 卸载的特定用例可能会具有更高的支持状态。

Jira:RHEL-88551[1]

systemd-resolved 服务作为技术预览提供

systemd-resolved 为本地应用程序提供名字解析。该服务实现了缓存和验证 DNS stub 解析器、链接本地多播名称解析(LLMNR)和多播 DNS 解析器和响应程序。

请注意, systemd-resolved 是一个不受支持的技术预览。

Jira:RHEL-88550

NetworkManager 和 Nmstate API 支持 MACsec 硬件卸载

如果硬件支持此功能,您可以使用 NetworkManager 和 Nmstate API 启用 MACsec 硬件卸载。因此,您可以将 MACsec 操作(如加密)从 CPU 卸载到网络接口控制器。

请注意,这个功能是一个不被支持的技术预览。

Jira:RHEL-24337

NetworkManager 启用配置 HSR 和 PRP 接口

High-availability Seamless Redundancy(HSR)和 Parallel Redundancy Protocol(PRP)是网络协议,它们针对任何单个网络组件故障提供无缝故障转移。这两个协议对应用程序层都是透明的,这意味着用户在通信过程中不会遇到任何中断或任何数据丢失,因为主路径和冗余路径之间的切换发生的很快,且用户不知道。现在,可以通过 nmcli 工具和 DBus 消息系统,使用 NetworkManager 服务启用和配置 HSR 和 PRP 接口。

Jira:RHEL-5852

数据包卸载模式中的 UDP 封装现在作为技术预览提供

使用 IPsec 数据包卸载,内核可以将整个 IPsec 封装过程卸载到 NIC,以减少工作负载。有了此更新,当处于数据包卸载模式时,数据包卸载已通过支持 ipsec 隧道的用户数据报协议(UDP)封装得到了改进。

Jira:RHEL-30141[1]

Soft-iWARP 驱动程序作为技术预览提供

软硬件硬件(siw)是一种软件,互联网是 RDMA 协议(iWARP),适用于 Linux 的内核驱动程序。soft-iWARP 通过互联网协议(TCP/IP)网络堆栈实施 iWARP 协议套件。这个协议套件在软件中完全实现,不需要特定的远程直接内存访问(RDMA)硬件。Soft-iWARP 使具有标准以太网适配器的系统连接到 iWARP 适配器或安装了 Soft-iWARP 的其他系统。

Jira:RHELPLAN-102815[1]

TuneD 的套接字 API 作为技术预览提供

通过 UNIX 域套接字控制 TuneD 的套接字 API 现在作为技术预览提供。套接字 API 将一对一与 D-Bus API 映射,并为 D-Bus 不可用的情况提供替代通信方法。通过使用套接字 API,您可以控制 TuneD 守护进程来优化性能,并更改各种调优参数的值。套接字 API 默认被禁用,您可以在 tuned-main.conf 文件中启用它。

Jira:RHELPLAN-129881[1]

rvu_af,rvu_nicpfrvu_nicvf 作为技术预览提供

对于 Marvell OCTEON TX2 Infrastructure Processor 系列,以下内核模块作为技术预览提供:

rvu_af
Marvell OcteonTX2 RVU Admin Function 驱动程序
rvu_nicpf
Marvell OcteonTX2 NIC Physical Function 驱动程序
rvu_nicvf
Marvell OcteonTX2 NIC Virtual Function 驱动程序

Jira:RHELPLAN-108169[1]

IPv6 上的段路由(SRv6)作为技术预览提供

RHEL 内核将 IPv6 (SRv6)上的段路由作为技术预览提供。您可以使用此功能来优化边缘计算中的流量流,或提高数据中心中的网络可编程性。但是,最重要的用例是在 5G 部署场景中的端到端(E2E)网络分片。在这个领域中,SRv6 协议为您提供了可编程自定义网络分片和资源保留,以解决特定应用程序或服务的网络要求。同时,解决方案可以部署到单一用途设备上,并且满足较小的计算占用的需求。

Jira:RHELPLAN-154595[1]

KTLS 已更新至版本 6.12

内核传输层安全(KTLS)功能是一个技术预览。在 RHEL 9.6 中,我们将 kTLS 更新至 6.12 上游版本。

Jira:RHELPLAN-153754[1]

PRP 和 HSR 协议现在作为技术预览提供

这个更新添加了提供以下协议的 hsr 内核模块:

  • Parallel Redundancy Protocol (PRP)
  • 高可用性无缝冗余(HSR)

IEC 62439-3 标准定义了这些协议,您可以使用这个功能在以太网网络中配置具有零时间恢复的冗余。

Jira:RHELDOCS-20472[1]

8.7. 内核

python-drgn 作为技术预览提供

python-drgn 软件包提供了一个高级调试工具,其强调了可编程性。您可以使用其 Python 命令行界面来调试实时内核和内核转储。另外,python-drgn 为您提供了脚本功能,来自动化调试任务,并对 Linux内核 进行复杂的分析。

Jira:RHEL-6973[1]

IAA 加密驱动程序现在作为技术预览提供

Intel® In-Memory Analytics Accelerator(Intel® IAA)是一个硬件加速器,其与原始分析功能一起提供非常高的吞吐量压缩和解压缩。

从 CPU 卸载压缩和解压缩操作的 iaa_crypto 驱动程序已在 RHEL 9.4 中作为技术预览引进了。它支持与 RFC 1951 中描述的 DEFLATE 压缩标准兼容的压缩和解压缩。iaa_crypto 驱动程序设计为充当高级压缩设备(如 zswap )下的一个层来工作。

有关 IAA 加密驱动程序的详情,请参考:

Jira:RHEL-20145[1]

RHEL 内核的 Neural Processing Unit (NPU)内核在基于 Intel Arrow Lake 的系统上作为技术预览提供

在 RHEL 9.6 中,内核引入了 Neural Processing Unit (NPU)作为技术预览。NPU 是特殊的芯片,用于系统上智能(AI)和机器学习(ML)任务。RHEL 9.6 中的内核包括 Intel NPUs 的初始驱动程序和支持基础架构,需要使用 NPUs 进行 AI/ML 任务。

Jira:RHEL-38583[1]

ARM64 上的 Red Hat Enterprise Linux for Real Time 现在作为技术预览提供

有了此技术预览,现在为 ARM64 启用了 Red Hat Enterprise Linux for Real Time 。在 ARM (AARCH64)上为 4k 和 64k ARM 内核启用了 ARM64 。

Jira:RHELDOCS-19635[1]

从 NVMe/TCP 引导作为技术预览提供

在通过 NVMe-TCP 从 SAN 引导的系统上,您可以使用 kdump 将崩溃转储写入 NVMe 命名空间。在这个版本中,当 kdump 尝试转储到 NVMe 命名空间时,会出现失败。因此,这些系统上 panic 转储成功,改进了恢复并减少基于 SAN 的环境中的停机时间。

Jira:RHEL-33413[1]

8.8. 文件系统和存储

NVMe-oF Discovery Service 功能作为技术预览

NVMe-oF Discovery Service 功能(在 NVMexpress.org 技术 Proposals(TP)8013 和 8014 中)作为技术预览提供。要预览这些功能,请使用 nvme-cli 2.0 软件包,并将主机附加到实现 TP-8013 或 TP-8014 的 NVMe-oF 目标设备。有关 TP-8013 和 TP-8014 的更多信息,请参阅 https://nvmexpress.org/specifications/ 网站中的 NVM Express 2.0 Ratified TPs。

Jira:RHELPLAN-102321[1]

NVMe-stas 软件包作为技术预览

nvme-stas 软件包,它是 Linux 的中央 Discovery Controller (CDC) 客户端,现在作为技术预览提供。它处理异步事件通知 (AEN)、自动化的 NVMe 子系统连接控制、错误处理和报告以及自动 (zeroconf) 和手动配置。

这个软件包由两个守护进程组成,分别是 Storage Appliance Finder (stafd) 和存储设备连接器 (stacd)。

Jira:RHELPLAN-58357[1]

使用 TLS 的 NVMe/TCP 作为技术预览提供

在 RHEL 9.6 中,使用配置了 Pre-Shared Keys (PSK)的 TLS 通过 TCP (NVMe/TCP)网络流量加密 Non-volatile Memory Express (NVMe/TCP)网络流量。具体步骤请参阅 使用带有 Pre-Shared-Keys 的 TLS 配置 NVMe/TCP 主机

Jira:RHEL-9301[1]

xfs_scrub 工具作为技术预览提供

您可以使用 xfs_scrub 工具作为技术预览来检查挂载的 XFS 文件系统上的所有元数据。它在功能上与用于卸载的 XFS 文件系统的 xfs_repair -n 命令类似。详情请查看您系统上的 xfs_scrub (8) 手册页。请注意,目前只有清理功能在 RHEL 10 内核中提供,且在线修复未启用。

Jira:RHELDOCS-21350[1]

8.9. 动态编程语言、网页和数据库服务器

新的 nodejs:22 模块流作为技术预览提供

新的模块流 nodejs:22 现在作为技术预览提供。未来的更新将提供 Node.js 22 的长期支持(LTS)版本,Node.js 22 将被完全支持。

从 RHEL 9.3 开始,与 Node.js 20 相比,包含在 RHEL 9.5 中的 Node.js 22 提供许多新功能、bug 修复、安全修复和性能改进。

主要变更包括:

  • V8 JavaScript 引擎已升级至版本 12.4。
  • 现在在可用的构架(AMD 和 Intel 64 位构架和 64 位 ARM 架构)上默认启用了 V8 Maglev 编译器。
  • Maglev 提高了短期 CLI 程序的性能。
  • npm 软件包管理器已升级至 10.8.1 版本。
  • node --watch 模式现在被视为稳定。在 watch 模式下,监视文件中的更改导致 Node.js 进程重启。
  • 与浏览器兼容的 WebSocket 实现现在被视为稳定,并默认启用。因此,提供了 Node.js 的 WebSocket 客户端,而没有外部依赖。
  • Node.js 现在包含从 package.json 执行脚本的一个实验性功能。要使用这个功能,请运行 node --run <script-in-package.json> 命令。

要安装 nodejs:22 模块流,请输入:

# dnf module install nodejs:22

如果要从 nodejs20 流升级,请参阅 切换到更新的流

有关 nodejs 应用程序流支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-35990

jmc-coreowasp-java-encoder 作为技术预览

RHEL 9 与 jmc-coreowasp-java-encoder 软件包一起分发,作为 AMD 和 Intel 64 位架构的技术预览功能提供。

jmc-core 是一个为 Java Development Kit (JDK) Mission Control 提供核心 API 的库,包括用于解析和编写 JDK Flight Recording 文件的库,以及用于通过 Java 发现协议(JDP)的 Java 虚拟机(JVM)发现的库。

owasp-java-encoder 软件包提供了 Java 的高性能低后台上下文组。

请注意,自 RHEL 9.2 开始,jmc-coreowasp-java-encoder 在 CodeReady Linux Builder (CRB)存储库中提供,您必须明确启用。如需更多信息,请参阅 如何在 CodeReady Linux Builder 中启用和使用内容

Jira:RHELPLAN-88788[1]

新的 nodejs:24 模块流作为技术预览提供

在 Red Hat Enterprise Linux 9.7 中,新的 swignodejs:24 模块流作为技术预览提供。这个更新引进了 Node.js 24,与 RHEL 9.6 中包含的 HEKETINode.js 22 相比,它提供了新功能、错误修复、安全更新和性能改进。

要安装 nodejs:24 模块,请输入:

# dnf module install nodejs:24

有关 nodejs 应用程序流支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-90821

8.10. 编译器和开发工具

eu-stacktrace 作为技术预览提供

自 0.192 版本以来一直通过 elfutils 软件包分发的 eu-stacktrace 工具作为技术预览功能提供。eu-stacktrace 是一个原型工具,它使用 elfutils 工具包的展开库来支持采样分析器,以展开无帧指针堆栈样本数据。

Jira:RHELDOCS-19072[1]

8.11. 身份管理

IdM 部署中的 DNS over TLS (DoT)作为技术预览提供

使用 DNS over TLS (DoT)加密的 DNS 现在在身份管理(IdM)部署中作为技术预览提供。您现在可以加密 DNS 客户端和 IdM DNS 服务器之间的所有 DNS 查询和响应。

要开始使用此功能,请为 IdM 服务器和副本安装 ipa-server-encrypted-dns 软件包,为 IdM 客户端安装 ipa-client-encrypted-dns 软件包。管理员可以在安装过程中使用 --dns-over-tls 选项启用 DoT。

IdM 将 Unbound 配置为本地缓存解析器和 BIND 来接收 DoT 请求。这个功能通过命令行界面(CLI)和 IdM 的非互动安装提供。

要配置 DoT,在为 IdM 服务器、副本、客户端和集成的 DNS 服务的安装工具中添加了新的选项:

  • --dot-forwarder 指定一个上游启用了 DoT 的 DNS 服务器。
  • --dns-over-tls-key--dns-over-tls-cert 来配置 DoT 证书。
  • --dns-policy 将 DNS 安全策略设置为允许回退到未加密的 DNS 或强制实施严格的 DoT 使用。

默认情况下,IdM 使用 relaxed DNS 策略,该策略允许回退到未加密的 DNS。您可以在强制设置中使用 new- -dns-policy 选项强制加密通信。

您还可以通过使用 ipa-dns-install 和新的 DoT 选项重新配置集成的 DNS 服务,来在现有 IdM 部署上启用 DoT。

如需了解更多详细信息,请参阅 IdM 中使用 DoT 保护 DNS

Jira:RHEL-67913[1], Jira:RHELDOCS-20059

DNSSEC 在 IdM 中作为技术预览提供

带有集成 DNS 的身份管理(IdM)服务器现在实现了 DNS 安全扩展(DNSSEC),这是一组增强 DNS 协议安全的 DNS 扩展。托管在 IdM 服务器上的 DNS 区可以使用 DNSSEC 自动签名。加密密钥是自动生成和轮转的。

建议那些决定使用 DNSSEC 保护 DNS 区的用户读取并遵循这些文档:

请注意,集成了 DNSSEC 的 IdM 服务器验证从其他 DNS 服务器获取的 DNS 答案。这可能会影响未按照推荐的命名方法配置的 DNS 区域可用性。

Jira:RHELPLAN-121751[1]

现在,IdM 的 ansible-freeipa 安装中提供了带有 DoT 的加密的 DNS 作为技术预览

现在,您可以使用 Ansible 来确保 DNS 客户端和身份管理(IdM) DNS 服务器之间的所有 DNS 查询和响应都已加密。从 RHEL 10 开始,使用 DNS 的加密 DNS (DoT)在 IdM 部署中作为技术预览提供。在 RHEL 10.1 中,功能在 freeipa.ansible_freeipa 集合中作为技术预览提供。

要使用 ansible-freeipa 在 IdM 部署过程中启用 DoT,请使用以下选项:

  • ipaserver_dns_over_tls,带有新服务器的 freeipa.ansible_freeipa.ipaserver 角色。
  • 带有 freeipa.ansible_freeipa.ipareplica 角色的 ipareplica_dns_over_tls
  • dot_forwarder 指定启用了上游的 DoT 的 DNS 服务器。
  • dns_over_tls_keydns_over_tls_cert 来配置 DoT 证书。

另外,您可以将 dns_policy 变量设置为强制 DoT-only 通信,覆盖允许回退到未加密的 DNS 的默认行为。

Jira:RHELDOCS-20258[1]

ACME 作为技术预览提供

自动证书管理环境(ACME)服务现在作为技术预览在 Identity Management(IdM)中提供。ACME 是一个用于自动标识符验证和证书颁发的协议。它的目标是通过缩短证书生命周期并避免证书生命周期管理中的手动过程来提高安全性。

在 RHEL 中,ACME 服务使用红帽认证系统(RHCS)PKI ACME 响应程序。RHCS ACME 子系统自动部署到 IdM 部署中的每个证书颁发机构(CA)服务器上,但只有管理员启用它之后,它才会为请求提供服务。RHCS 在发布 ACME 证书时使用 acmeIPAServerCert 配置文件。签发的证书的有效期为 90 天。启用或禁用 ACME 服务会影响整个 IdM 部署。

重要

建议仅在所有服务器都运行 RHEL 8.4 或以上版本的 IdM 部署中启用 ACME。早期的 RHEL 版本不包括 ACME 服务,这可能会在混合版本部署中引起问题。例如,没有 ACME 的 CA 服务器可能会导致客户端连接失败,因为它使用不同的 DNS Subject Alternative Name(SAN)。

警告

目前,RHCS 不会删除过期的证书。由于 ACME 证书在 90 天后过期,因此过期的证书可能会累积,这会影响性能。

  • 要在整个 IdM 部署中启用 ACME,请使用 ipa-acme-manage enable 命令:

    # ipa-acme-manage enable
    The ipa-acme-manage command was successful
  • 要在整个 IdM 部署中禁用 ACME,请使用 ipa-acme-manage disable 命令:

    # ipa-acme-manage disable
    The ipa-acme-manage command was successful
  • 要检查是否安装了 ACME 服务,以及它是否启用或禁用了,请使用 ipa-acme-manage status 命令:

    # ipa-acme-manage status
    ACME is enabled
    The ipa-acme-manage command was successful

Jira:RHELPLAN-121754[1]

8.12. 桌面

GNOME 用于 64 位 ARM 架构,作为一个技术预览

GNOME 桌面环境可用于 64 位 ARM 架构,作为技术预览。

现在,您可以使用 RDP 连接到 64 位 ARM 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。

64 位 ARM 提供了有限的图形应用程序集合。例如:

  • Mozilla Firefox Web 浏览器
  • Red Hat 订阅管理器 (subscription-manager-cockpit)
  • 防火墙配置(firewall-config)
  • 磁盘用量分析器(baobab)

使用 Mozilla Firefox,您可以连接到服务器上的 Cockpit 服务。

Jira:RHELPLAN-27394[1]

用于 IBM Z 架构的 GNOME 作为技术预览提供

对于 IBM Z 架构,GNOME 桌面环境作为技术预览。

现在,您可以使用 RDP 连接到 IBM Z 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。

IBM Z 上提供了一组有限的图形应用程序。例如:

  • Mozilla Firefox Web 浏览器
  • Red Hat 订阅管理器 (subscription-manager-cockpit)
  • 防火墙配置(firewall-config)
  • 磁盘用量分析器(baobab)

使用 Mozilla Firefox,您可以连接到服务器上的 Cockpit 服务。

Jira:RHELPLAN-27737[1]

8.13. Web 控制台

RHEL web 控制台现在可以管理 WireGuard 连接

从 RHEL 9.4 开始,您可以使用 RHEL web 控制台创建并管理 WireGuard VPN 连接。请注意,WireGuard 技术及其 Web 控制台集成是不支持的技术预览。

Jira:RHELDOCS-17520[1]

8.14. 虚拟化

TDX 作为技术预览在 RHEL 主机上提供

作为技术预览,您可以在 RHEL 主机上启用信任域扩展(TDX)。TDX 是基于硬件的安全功能,可为虚拟机提供强大的内存加密和完整性保护,将其与虚拟机监控程序和其他系统软件隔离开来。

TDX 仅适用于 Intel CPU。

Jira:RHEL-111840[1]

SEV-SNP 在 RHEL 主机上作为技术预览提供

作为技术预览,您可以在 RHEL 主机上启用安全加密虚拟化-Secure Nested Paging (SEV-SNP)。SEV-SNP 是基于硬件的安全功能,可为虚拟机提供强大的内存加密和完整性保护,将其与虚拟机监控程序和其他系统软件隔离开来。

SEV-SNP 仅适用于 AMD CPU,您必须使用 snphost 软件包在主机上配置该功能。

Jira:RHELDOCS-19756[1]

创建嵌套虚拟机

对于运行在 Intel、AMD64 和 IBM Z 主机上的 RHEL 9 KVM 虚拟机,嵌套的 KVM 虚拟化作为技术预览提供。有了这个功能,运行在物理 RHEL 9 主机上的 RHEL 7、RHEL 8 或 RHEL 9 虚拟机可以充当 hypervisor,并托管自己的虚拟机。

Jira:RHELDOCS-17040[1]

用于 KVM 虚拟机的 AMD SEV、SEV-ES 和 SEV-SNP

作为技术预览,RHEL 9 为使用 KVM 管理程序的 AMD EPYC 主机提供安全加密虚拟化(SEV)功能。如果在虚拟机(VM)上启用,SEV 会加密虚拟机的内存来保护虚拟机被主机访问。这提高了虚拟机的安全性。

另外,增强的 Encrypted State 版本 SEV-ES)也作为技术预览提供。SEV-ES 在虚拟机停止运行时加密所有 CPU 注册内容。这可防止主机修改虚拟机的 CPU 注册或读取它们中的任何信息。

RHEL 9.5 及更高版本还提供安全嵌套分页(SEV-SNP)功能作为技术预览。SNP 通过改进内存完整性保护来增强 SEV 和 SEV-ES,这有助于防止基于 hypervisor 的攻击,如数据重放或内存重新映射。

请注意,SEV 和 SEV-ES 仅适用于第 2 代 AMD EPYC CPU(代号 Rome)或更新版本。同样,SEV-SNP 仅适用于第四代 AMD EPYC CPU(代号 Genoa)或更新版本。另请注意,RHEL 9 包括 SEV、SEV-ES 和 SEV-SNP 加密,但不包括 SEV、SEV-ES 和 SEV-SNP 安全证明和实时迁移。

Jira:RHELPLAN-65217[1]

64 位 ARM 上的 CPU 集群

作为技术预览,您现在可以创建在其 CPU 拓扑中使用多个 64 位 ARM CPU 集群的 KVM 虚拟机。

Jira:RHEL-7043[1]

新软件包:trustee-guest-components

作为技术预览,此更新添加了 trustee-guest-components 软件包。这使得机密虚拟机可以证明自己,并从 Trustee 服务器获取机密资源。

Jira:RHEL-68141[1]

8.15. 容器

podman-machine 命令不被支持

用于管理虚拟机的 podman-machine 命令仅作为技术预览提供。相反,请直接从命令行运行 Podman。

Jira:RHELDOCS-16861[1]

新的 rhel9/rhel-bootc 容器镜像作为技术预览提供

rhel9/rhel-bootc 容器镜像现在在 Red Hat Container Registry 中作为技术预览提供。使用 RHEL 可引导的容器镜像,您可以像容器一样构建、测试和部署一个操作系统。RHEL 可引导的容器镜像与现有的应用程序通用基础镜像(UBI)不同,这得益于以下改进:RHEL 可引导的容器镜像包含引导所需的其他组件,如内核、initrd、引导加载程序、固件等。对现有容器镜像没有更改。如需更多信息,请参阅 红帽生态系统目录

Jira:RHELDOCS-17803[1]

zstd:chunked 的部分拉取作为技术预览提供

您只能拉取使用 zstd:chunked 格式压缩的容器镜像的更改部分,从而减少了网络流量和必要的存储。您可以通过在 /etc/containers/storage.conf 文件中添加 enable_partial_images = "true" 设置来启用部分拉取。此功能作为技术预览提供。

Jira:RHEL-32267

podman artifact 命令作为技术预览提供

podman artifact 命令(可用来在命令行上与 OCI 工件一起工作)作为技术预览提供。如需更多信息,请参阅 man page。

Jira:RHEL-70217

Podman 与 Docker API 兼容性作为技术预览提供

Podman 支持以下 Docker API 版本作为技术预览:

  • Docker API 1.41
  • Docker API 1.43

Jira:RHEL-88121

第 9 章 弃用的功能

弃用的设备被完全支持,这意味着它们经过了测试和维护,且其支持状态在 Red Hat Enterprise Linux 9 中保持不变。但是,这些设备可能在以后的主版本中不被支持,且不建议对当前或将来的 RHEL 主发行版本进行新部署。

有关特定主发行版本中已弃用功能的最新列表,请查看最新发行版本的文档。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

一个软件包可以被弃用,我们不推荐在以后使用。在某些情况下,可以从产品中删除软件包。然后,产品文档可识别提供类似、完全相同或者更高级功能的最新软件包,并提供进一步建议。

有关 RHEL 8 中存在但已在 RHEL 9 中 删除 的功能的详情,请参阅 采用 RHEL 9 时的注意事项

9.1. 安装程序和镜像创建

弃用的 Kickstart 命令

以下 Kickstart 命令已弃用:

  • timezone --ntpservers
  • timezone --nontp
  • logging --level
  • %packages --excludeWeakdeps
  • %packages --instLangs
  • %anaconda
  • pwpolicy
  • nvdimm

请注意,当只列出具体选项时,基础命令及其其它选项仍可用且未被弃用。在 Kickstart 文件中使用已弃用的命令会在日志中显示警告信息。您可以使用 inst.ksstrict 引导选项将已弃用的命令警告转换为错误。

Jira:RHELPLAN-60153[1]

initial-setup 软件包现已弃用

initial-setup 软件包已在 Red Hat Enterprise Linux 9.3 中被弃用,并将在下一个主 RHEL 发行版本中删除。作为替换,对图形用户界面,使用 gnome-initial-setup

Jira:RHELDOCS-16393[1]

inst.geoloc 引导选项的 provider_hostipprovider_fedora_geoip 值已弃用

inst.geoloc= 引导选项指定 GeoIP API 的 provider_hostipprovider_fedora_geoip 值已弃用。作为替换,您可以使用 geolocation_provider=URL 选项在安装程序配置文件中设置所需的地理位置。您仍然可以使用 inst.geoloc=0 选项禁用地理位置。

Jira:RHELPLAN-168262[1]

Anaconda 内置帮助已弃用

在 Anaconda 安装过程中可用的所有 Anaconda 用户界面的 spoke 和 hub 的内置文档已被弃用。作为替换,Anaconda 用户界面将自我说明,用户可以在将来的主 RHEL 版本中引用官方 RHEL 文档

Jira:RHELDOCS-17309[1]

对 NVDIMM 设备的支持已弃用

在以前的版本中,安装程序允许在安装过程中重新配置 NVDIMM 设备。这个在 Kickstart 和 GUI 安装过程中对 NVDIMM 设备的支持已弃用,并将在下一个主 RHEL 发行版本中删除。扇区模式中的 NVDIMM 设备仍然在安装程序中可见并可用。

Jira:RHELDOCS-17702

无法从安装环境中的驱动程序更新磁盘载入更新的驱动程序

如果已加载了安装初始 ramdisk 中同样的驱动程序,则驱动程序更新磁盘中的驱动程序的新版本可能无法加载。因此,驱动程序的更新版本无法应用到安装环境。

临时解决方案:将 modprobe.blacklist= 内核命令行选项与 inst.dd 选项一起使用。例如,要确保是否加载了驱动程序更新磁盘中的 virtio_blk 驱动程序的更新版本,请使用 modprobe.blacklist=virtio_blk,然后继续通常的流程来应用驱动程序更新磁盘中的驱动程序。因此,系统会加载驱动程序的更新版本,并在安装环境中使用它。

Jira:RHEL-4762

9.2. 安全性

X25519-MLKEM768crypto-policies中弃用并别名为 MLKEM768-X25519

系统范围的加密策略中的 X25519-MLKEM768 值已弃用,并别名到 MLKEM768-X25519 值。这会统一串联顺序,允许两个变体正常工作。

Jira:RHEL-103793

Keylime 策略管理脚本已弃用,并替换为 keylime-policy

在 RHEL 9.6 中,Keylime 由 keylime-policy 工具提供,它替换了以下策略管理脚本:

  • keylime_convert_runtime_policy
  • keylime_create_policy
  • keylime_sign_runtime_policy
  • create_mb_refstate
  • create_allowlist.sh

这些脚本已弃用,并将在以后的 RHEL 主版本中删除。

Jira:RHELDOCS-19815[1]

OVAL 在漏洞扫描应用程序中已弃用

开放漏洞评估语言(OVAL)数据格式(其提供由 OpenSCAP 套件处理的声明安全数据)已被弃用,并将在以后的主发行版本中删除。红帽继续以通用安全公告框架(CSAF)格式提供声明的安全数据,这是 OVAL 的后续者。

如需更多信息,请参阅 OVAL v2 公告

或者,您可以针对 RHEL 漏洞服务使用红帽 Lightspeed 来获得更多信息,请参阅 评估和监控 RHEL Systems 上的安全漏洞

Jira:RHELDOCS-17532[1]

libgcrypt 已弃用

libgcrypt 软件包提供的 Libgcrypt 加密库已弃用,并可能会在以后的主发行版本中删除。改为使用 RHEL 核心加密组件 中列出的库(红帽知识库)。

Jira:RHELDOCS-17508[1]

fips-mode-setup 已弃用

将系统切换到 FIPS 模式的 fips-mode-setup 工具在 RHEL 9 中已弃用。您仍然可以使用 fips-mode-setup 命令检查是否启用了 FIPS 模式。

要运行符合 FIPS 140 的系统,请使用以下方法之一在 FIPS 模式下安装系统:

fips-mode-setup 工具将在下一个主发行版本中删除。

Jira:RHELDOCS-19284

使用没有参数的 update-ca-trust 已弃用

在以前的版本中,命令 update-ca-trust 会更新系统证书颁发机构(CA)存储,而无论输入了什么参数。此更新引进了 extract 子命令,以更新 CA 存储。您还可以使用 --output 参数指定提取 CA 证书的位置。为了与早期版本的 RHEL 兼容,请输入 update-ca-trust 来使用除 -o--help 以外的任何参数,甚至没有任何参数来更新 CA 存储,在 RHEL 9 期间仍被支持,但将由下一个主发行版本中删除。更新对 update-ca-trust extract 的调用。

Jira:RHEL-54695[1]

指向 Stunnel 客户端中可信根证书文件的 CAfile 已弃用

如果 Stunnel 是在客户端模式下配置的,则 CAfile 指令可指向一个包含 BEGIN TRUSTED CERTIFICATE 格式的可信根证书的文件。这个方法已弃用,并可能在以后的主发行版本中删除。在以后的版本中,stunnelCAfile 指令的值传递给一个不支持 BEGIN TRUSTED CERTIFICATE 格式的函数。因此,如果您使用 CAfile = /etc/pki/tls/certs/ca-bundle.trust.crt,请将位置改为 CAfile = /etc/pki/tls/certs/ca-bundle.crt

Jira:RHEL-52317[1]

DSA 和 SEED 算法已在 NSS 中弃用

由美国国家标准和技术研究院(NIST)创建的、现在被 NIST 完全弃用的数字签名算法(DSA)在网络安全服务(NSS)加密库中已弃用。您可以使用 RSA、ECDSA 和 EdDSA 等算法。

由韩国信息安全局(KISA)创建的、之前已在上游禁用的 SEED 算法在 NSS 加密库中已弃用。

Jira:RHELDOCS-19004[1]

pam_ssh_agent_auth 已弃用

pam_ssh_agent_auth 软件包已弃用,并可能会在以后的主发行版本中删除。

Jira:RHELDOCS-18312[1]

compat-openssl11 已弃用

OpenSSL 1.1 的兼容性库 compat-openssl11 现在已弃用,并可能会在以后的主发行版本中删除。OpenSSL 1.1 不再在上游维护,且使用 OpenSSL TLS 工具包的应用程序应迁移到版本 3.x。

Jira:RHELDOCS-18480[1]

SHA-1 在 OpenSSL 中的 SECLEVEL=2 中被弃用

SECLEVEL=2 中使用 SHA-1 算法已在 OpenSSL 中弃用,并可能在以后的主发行版本中删除。

Jira:RHELDOCS-18701[1]

OpenSSL Engines API 已在 Stunnel 中弃用

在 Stunnel 中使用 OpenSSL Engine API 已弃用,并将在以后的主发行版本中删除。最常见的用途是通过 openssl-pkcs11 软件包访问使用 PKCS#11 的硬件安全令牌。作为替换,您可以使用 pkcs11-provider,其使用新的 OpenSSL Providers API。

Jira:RHELDOCS-18702[1]

OpenSSL Engine 已弃用

OpenSSL Engine 已弃用,并将在不久的将来被删除。您可以使用 pkcs11-provider 作为一种替换,而不是使用引擎。

Jira:RHELDOCS-18703[1]

DSA 在 GnuTLS 中已弃用

数字签名算法(DSA)在 GnuTLS 安全通信库中已弃用,并将在以后的 RHEL 的主版本中删除。DSA 之前已被美国国家标准与技术研究院(NIST)弃用,并被视为是不安全的。您可以改为使用 ECDSA 来确保与将来版本的兼容。

Jira:RHELDOCS-19224[1]

scap-workbench 已弃用

scap-workbench 软件包已弃用。scap-workbench 图形工具被设计为在单个本地或远程系统上执行配置和漏洞扫描。作为一种替代方案,您可以使用 oscap 命令扫描本地系统的配置是否合规,使用 oscap-ssh 命令扫描远程系统的配置是否合规。如需更多信息,请参阅配置合规性扫描

Jira:RHELDOCS-19028[1]

oscap-anaconda-addon 已弃用

通过使用图形安装为部署符合基准的 RHEL 系统提供方法的 oscap-anaconda-addon 已弃用。作为一种替代方案,您可以通过 使用 RHEL 镜像构建器 OpenSCAP 集成创建预先强化的镜像 来构建符合特定标准的 RHEL 镜像。

Jira:RHELDOCS-19029[1]

对于加密目的,SHA-1 已被弃用

使用 SHA-1 消息摘要用于加密目的在 RHEL 9 中已被弃用。SHA-1 生成的摘要不被视为是安全的,因为已发现多个基于哈希进行的安全攻击。RHEL 核心加密组件不再默认使用 SHA-1 创建签名。RHEL 9 中的应用程序已更新,以避免在与安全相关的用例中使用 SHA-1。

其中一个例外是,仍然可以使用 SHA-1 创建 HMAC-SHA1 消息验证代码和 Universal Unique Identifier(UUID)值,因为这些用例目前不存在安全风险。另外,为了保持一些重要的互操作性和兼容性,SHA-1 还会在一些有限的情况下使用,例如 Kerberos 和 WPA-2。详情请查看 RHEL 9 安全强化文档中的使用与 FIPS 140-3 不兼容的加密系统的 RHEL 应用程序列表

如果您需要使用 SHA-1 来验证现有或第三方加密签名,您可以输入以下命令启用它:

# update-crypto-policies --set DEFAULT:SHA1

或者,您可以将系统范围的加密策略切换到 LEGACY 策略。请注意,LEGACY 也启用了其他一些不安全的算法。

Jira:RHELPLAN-110763[1]

fapolicyd.rules 已被弃用

包含允许和拒绝执行规则的文件的 /etc/fapolicyd/rules.d/ 目录替代了 /etc/fapolicyd/fapolicyd.rules 文件。fagenrules 脚本现在将此目录中的所有组件规则文件合并到 /etc/fapolicyd/compiled.rules 文件。/etc/fapolicyd/fapolicyd 中的规则仍由 fapolicyd 框架处理,但只是为了保证向后兼容。

Jira:RHELPLAN-112355[1]

在 RHEL 9 中弃用 SCP

安全复制协议(SCP)已弃用,因为它有已知的安全漏洞。SCP API 仍可用于 RHEL 9 生命周期,但使用它可以降低系统安全性。

  • scp 实用程序中,默认情况下,SCP 被 SSH 文件传输协议(SFTP)替代。
  • OpenSSH 套件在 RHEL 9 中不使用 SCP。
  • SCP 在 libssh 库中已弃用。

Jira:RHELPLAN-99136[1]

OpenSSL 需要在 FIPS 模式下对 RSA 加密进行填充

OpenSSL 在 FIPS 模式下不再支持没有填充的 RSA 加密。没有填充的 RSA 加密不常见,很少使用。请注意,带有 RSA (RSASVE)的密钥封装不使用填充,但仍支持。

Jira:RHELPLAN-148207[1]

openssl 弃用了 Engines API

OpenSSL 3.0 TLS 工具包弃用了 Engines API。引擎接口被提供方 API 替代。将应用程序和现有引擎迁移到提供方正在进行。弃用的引擎 API 可能会在以后的主发行版本中删除。

Jira:RHELDOCS-17958[1]

openssl-pkcs11 现已弃用

作为已弃用的 OpenSSL 引擎正在迁移到提供方 API 的一部分,pkcs11-provider 软件包替换了 openssl-pkcs11 软件包(engine_pkcs11)。openssl-pkcs11 软件包现已弃用。openssl-pkcs11 软件包可能在以后的主发行版本中删除。

Jira:RHELDOCS-16716[1]

RHEL 8 和 9 OpenSSL 证书和签名容器现已弃用

红帽生态系统目录中的 ubi8/opensslubi9/openssl 存储库中提供的 OpenSSL 可移植证书和签名容器现已弃用。

Jira:RHELDOCS-17974[1]

SASL 中的 digest-MD5 已被弃用

Simple Authentication Security Layer(SASL)框架中的 Digest-MD5 身份验证机制已弃用,并可能在以后的主发行版本中从 cyrus-sasl 软件包中删除。

Jira:RHELPLAN-94096[1]

/etc/system-fips 现已弃用

支持通过 /etc/system-fips 文件指定 FIPS 模式,该文件将不会包含在将来的 RHEL 版本中。要在 FIPS 模式中安装 RHEL,请在系统安装过程中将 fips=1 参数添加到内核命令行。您可以通过显示 /proc/sys/crypto/fips_enabled 文件来检查 RHEL 是否在 FIPS 模式下运行。

Jira:RHELPLAN-103232[1]

libcrypt.so.1 现已弃用

libcrypt.so.1 库现已弃用,它可能会在以后的 RHEL 版本中删除。

Jira:RHELPLAN-106338[1]

OpenSSL 在 FIPS 模式下不接受显式 curve 参数

指定显式 curve 参数的 Elliptic curve 加密参数、私钥、公钥和证书不能在 FIPS 模式下继续工作。使用 ASN.1 对象标识符(其使用 FIPS 批准的 curve 之一)指定 curve 参数,仍可在 FIPS 模式下继续工作。

Jira:RHELPLAN-113856[1]

OpenSSL 在 FIPS 模式下拒绝带有 X9.31 padding 的 RSA 签名

因为 X9.31 RSA 签名已从 FIPS 186-5 标准中删除,因此 OpenSSL 不再支持使用 FIPS 模式 X9.31 padding 的 RSA 密钥签名或签名验证。

Jira:RHELPLAN-139207[1]

9.3. RHEL for Edge

对于 RHEL for Edge 镜像的镜像模式,Ignition 已被弃用

在引导过程的早期阶段,用来将用户配置注入 Simplified Installer、AMI 和 VMDK RHEL for Edge 镜像类型的 Ignition 工具已在 RHEL 9 中弃用,并可能在以后的主发行版本中删除。

Jira:RHELDOCS-19754[1]

9.4. 订阅管理

几个 subscription-manager 模块已被弃用

由于红帽订阅服务中的一个简化的客户体验已过渡到 Red Hat Hybrid Cloud Console 和带有简单内容访问的帐户级订阅管理,因此以下模块已被弃用,并将在以后的主发行版本中删除:

Jira:RHEL-29178

9.5. 软件管理

无数字 %patch 语法已被弃用

使用没有指定数字的 %patch 指令作为 %patch 0 的缩写以应用 zero-th 补丁已被弃用。因此,如果您想要使用 %patch,则警告信息建议您使用显式语法,例如 %patch 0%patch -P 0 来应用 补丁。

Jira:RHELDOCS-19810[1]

DNF debug 插件已弃用

DNF debug 插件(其包括 dnf debug-dumpdnf debug-restore 命令)已被弃用,将从下一个主 RHEL 发行版本中的 dnf-plugins-core 软件包中删除。

Jira:RHELDOCS-18592[1]

libreport 的支持已弃用

libreport 库的支持已弃用,并将在下一个主 RHEL 发行版本中从 DNF 中删除。

Jira:RHELDOCS-18593[1]

9.6. Shell 和命令行工具

dump 软件包中的 dump 工具已弃用

用于文件系统备份的 dump 工具已弃用,在 RHEL 9 中将不再提供。

在 RHEL 9 中,红帽建议根据使用情况使用 tarddbacula 、备份工具,对 ext2、ext3 和 ext4 文件系统提供了完整和安全的备份。

请注意,dump 软件包中的 restore 工具仍可用,在 RHEL 9 中也被支持,并作为 restore 软件包提供。

Jira:RHELPLAN-94704[1]

Bacula 中的 SQLite 数据库后端已被弃用

Bacula 备份系统支持多个数据库后端:PostgreSQL、MySQL 和 SQLite。SQLite 后端已被弃用,并将在以后的 RHEL 版本中不被支持。作为一种替代,迁移到其他一种后端(PostgreSQL 或 MySQL),且在新部署中不使用 SQLite 后端。

Jira:RHEL-6856

sysstat 软件包中的 %vmeff 指标已弃用

测量页回收效率的 sysstat 软件包中的 %vmeff 指标在以后的 RHEL 主版本中将不再支持。sar -B 命令返回的 %vmeff 列的值不正确,因为 sysstat 不会解析后续内核版本提供的所有相关的 /proc/vmstat 值。

您可以从 /proc/vmstat 文件手动计算 %vmeff 值。详情请查看 为什么在 RHEL 8 和 RHEL 9 中 sar (1) 工具报告 %vmeff 值超过 100 % ?

Jira:RHELDOCS-17015[1]

在 ReaR 配置文件中设置 TMPDIR 变量已弃用

通过使用语句,如 export TMPDIR=…​/etc/rear/local.conf/etc/rear/site.conf ReaR 配置文件中设置 TMPDIR 环境变量已被弃用。

要为 ReaR 临时文件指定一个自定义目录,请在执行 ReaR 前在 shell 环境中导出变量。例如,执行 export TMPDIR=…​ 语句,然后在同一 shell 会话或脚本中执行 rear 命令。

Jira:RHELDOCS-18049[1]

cgroupsv1 现在在 RHEL 9 中已弃用

cgroups 是一个内核子系统,用于进程跟踪、系统资源分配和分区。systemd 服务管理器支持在 cgroups v1 模式下以及在 cgroup v2 模式下引导。在 Red Hat Enterprise Linux 9 中,默认模式是 v2。在 Red Hat Enterprise Linux 10 中,systemd 将不支持在 cgroups v1 模式下引导,且提供 cgroup v2 模式。

Jira:RHELDOCS-17545[1]

9.7. 基础架构服务

现在,各种软件包已在基础设施服务中弃用

以下软件包已在 RHEL 9 中被弃用,且不会在以后的 RHEL 主版本中分发:

  • sendmail
  • libotr
  • mod_security
  • spamassassin
  • redis
  • dhcp
  • xsane

Jira:RHEL-22385[1]

9.8. 网络

BIND auto-dnssec 参数已弃用

从 RHEL 9.7 开始,BIND auto-dnssec 参数已弃用,并将在以后的发行版本中删除。作为替换,使用 dnssec-policy 参数指定一个完整的密钥和签名策略(KASP),它将所有相关配置分组到一个直观的块中。

有关迁移到 dnssec-policy 的详情,请参考 BIND 9 上游文档中的 DNSSEC 密钥和签名策略

Jira:RHELDOCS-21505[1]

ipset 已被弃用

在 RHEL 9 中,ipset 工具已弃用,计划在以后的主发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的 bug 修复和支持,但此功能将不再获得改进。作为 ipset 的替代选择,您可以使用 nftables 设置功能。

Jira:RHELDOCS-20146[1]

Soft-iWARP 驱动程序已弃用

RHEL 9 提供 Soft-iWARP 驱动程序,作为不受支持的技术预览。从 RHEL 9.5 开始,这个驱动程序已弃用,并将在 RHEL 10 中删除。

Jira:RHELDOCS-18699[1]

dhcp-client 软件包已弃用

在以前的版本中,您可以将 RHEL 9 中的 NetworkManager 配置为使用 dhcp-client 软件包中的 DHCP 客户端。但是,使用 dhclient 工具的选项现已被弃用,并导致在 NetworkManager 启动时显示一条警告。要配置上述 NetworkManager,请切换到内部 DHCP 库。在 RHEL 10 中,不再提供 dhcp-client 软件包,且配置为使用 dhclient 工具的应用程序改为使用内部 DHCP 库。

Jira:RHEL-24622

perl (Mail::Sender) 模块现已弃用

perl (Mail::Sender) 模块现已弃用,并将从下一个主发行版本中删除,而没有任何替换。因此,当达到主机或接口的带宽高/低水平时,net-snmp-perl 软件包中的 checkbandwidth 脚本不支持电子邮件警报。

Jira:RHELDOCS-18959[1]

libdb 已被弃用

RHEL 9 目前提供 Berkeley DB (libdb)版本 5.3.28,它根据 LGPLv2 许可证而发布。上游 Berkeley DB 版本 6 在 AGPLv3 许可证下提供,该许可证更严格。

从 RHEL 9 开始,libdb 软件包已弃用,可能不会在以后的 RHEL 版本中可用。

另外,在 RHEL 9 中,加密算法已从 libdb 中删除,从 RHEL 9 中删除了多个 libdb 依赖项。

建议 libdb 用户迁移到其他键值数据库。如需更多信息,请参阅以下红帽知识库文章:

Jira:RHELPLAN-67314[1]

RHEL 9 中已弃用网络团队(Network teams)

teamd 服务和 libteam 库在 Red Hat Enterprise Linux 9 中已弃用,并将在下一个主发行版本中删除。作为替换,配置绑定而不是网络组。

红帽注重于基于内核的绑定操作,以避免维护具有类似功能的两个功能:绑定和团队(team)。绑定代码具有较高的客户采用率,非常可靠,具有活跃的社区开发。因此,绑定代码会收到功能增强和更新。

有关如何将团队迁移到绑定的详情,请参阅将网络组配置迁移到网络绑定

Jira:RHELPLAN-69554[1]

ifcfg 格式的 NetworkManager 连接配置文件已弃用

在 RHEL 9.0 及更高版本中,ifcfg 格式的连接配置文件已弃用。下一个主要 RHEL 发行版本将删除对这个格式的支持。但是,在 RHEL 9 中,如果修改了配置文件,NetworkManager 仍然会使用这个格式处理和更新现有的配置文件。

默认情况下,NetworkManager 现在在 /etc/NetworkManager/system-connections/ 目录中以 keyfile 格式存储连接配置文件。与 ifcfg 格式不同,keyfile 格式支持 NetworkManager 提供的所有连接设置。有关 keyfile 格式以及如何迁移配置集的详情,请参考 keyfile 格式的 NetworkManager 连接配置文件

Jira:RHELPLAN-58745[1]

firewalld 中的 iptables 后端已弃用

在 RHEL 9 中,iptables 框架已弃用。因此,firewalld 中的 iptables 后端和 直接接口也 被弃用。您可以使用 firewalld 中的原生功能,而不是 direct interface 来配置所需的规则。

Jira:RHELPLAN-122745[1]

firewalld 锁定功能已弃用。

firewalld 中的锁定功能已弃用,因为它无法阻止以 root 身份运行的进程将它们自己添加到允许列表中。锁定功能可能在以后的主 RHEL 发行版本中被删除。

Jira:RHEL-17708

connection.master,connection.slave-type, 和 connection.autoconnect-slaves 属性已弃用

红帽承诺使用适当的语言。因此,connection.masterconnection.slave-typeconnection.autoconnect-slaves 属性被重命名了。为确保向后兼容,已创建了将旧属性名称映射到新属性的别名:

  • connection.masterconnection.controller 的别名
  • connection.slave-typeconnection.port-type 的别名
  • connection.autoconnect-slavesconnection.autoconnect-ports 的别名

请注意, connection.master,connection.slave-typeconnection.autoconnect-slaves 别名已弃用,并将在以后的 RHEL 版本中删除。

Jira:RHEL-17619[1]

PF_KEYv2 内核 API 已弃用

应用程序可以使用 PV_KEYv2 和较新的 netlink API 配置内核的 IPsec 实现。PV_KEYv2 没有在上游进行主动维护,并且缺少重要的安全功能,如现代密码、卸载和扩展的序列号支持。因此,从 RHEL 9.3 开始,PV_KEYv2 API 已被弃用,并将在下一个主 RHEL 发行版本中删除。如果您在应用程序中使用此内核 API,请迁移它,以使用现代 netlink API 作为替代。

Jira:RHEL-1015[1]

在 RHEL 9 中弃用 ATM 封装

异步传输模式(ATM)封装为 ATM Adaptation Layer 5(AAL-5)提供第 2 层(Point-to-Point 协议、以太网)或第 3 层(IP)连接。从 RHEL 7 开始,红帽尚未为 ATM NIC 驱动程序提供支持。RHEL 9 中丢弃对 ATM 实施的支持。这些协议目前仅在芯片组中使用,该协议支持 ADSL 技术,并由制造商逐步淘汰。因此,Red Hat Enterprise Linux 9 中已弃用 ATM 封装。

如需更多信息,请参阅 PPP Over AAL5, Multiprotocol Encapsulation over ATM Adaptation Layer 5, 和 Classical IP and ARP over ATM

Jira:RHELPLAN-113659[1]

客户端侧和服务器端 DHCP 软件包已弃用

Internet Systems Consortium (ISC)已宣布在 2022 年底之前结束 ISC DHCP 的维护。因此,红帽决定在 RHEL 9 中弃用客户端和服务器端 DHCP 软件包,且不在以后的 RHEL 主发行版本中分发它们。客户必须准备过渡到可用的替代品,如 dhcpcdISC Kea

Jira:RHELDOCS-17135[1]

9.9. 内核

kexec-toolskexec_load 系统调用已弃用

在以后的 RHEL 版本中将不支持 kexec_load 系统调用(其载入第二个内核)。kexec_file_load 系统调用替换了 kexec_load,它现在是所有架构上的默认系统调用。

如需更多信息,请参阅 RHEL9 中是否支持 kexec_load?

Jira:RHELPLAN-129876[1]

弃用的 subscription-manager register--token 选项将在 2024 年 11 月底停止工作

弃用的 subscription-manager register 命令的 --token=<TOKEN> 选项从 2024 年 11 月底起,将不再是一个支持的身份验证方法。默认的授权服务器 subscription.rhsm.redhat.com 不再允许基于令牌的身份验证。因此,如果您使用 subscription-manager register --token=<TOKEN>,则注册将失败,并显示以下错误消息:

Token authentication not supported by the entitlement server

要注册您的系统,请使用其他支持的授权方法,如包括 subscription-manager register 命令的成对选项 --username / --password--org / --activationkey

Jira:RHELPLAN-146101[1]

9.10. 文件系统和存储

对块翻译表驱动程序的支持已弃用

对块翻译表驱动程序(btt.ko)的支持已被弃用,并将在以后的主 RHEL 发行版本中删除。在当前发行版本生命周期中,红帽将为使用扇区模式配置非线性内存模块(NVDIMM)命名空间提供 bug 修复和支持。但是,这个功能将不再获得增强,并将被删除。

Jira:RHELDOCS-19716[1]

nvme_core.multipath 参数已弃用

在 RHEL 9.6 中,nvme_core.multipath 参数已弃用,并计划在以后的发行版本中删除。红帽将在当前发行生命周期中提供对这个功能的 bug 修复和支持,但这个功能将不再获得增强,并将在以后的主发行版本中删除。

Jira:RHELDOCS-19809[1]

对 NVMe 设备的支持已从 lsscsi 软件包中弃用

对 Non-volatile Memory Express (NVMe)设备的支持已被弃用,并将在以后的主 RHEL 发行版本中从 lsscsi 软件包中删除。改为使用 nvme-cli,lsblkblkid 等原生工具。

Jira:RHELDOCS-19068[1]

对 NVMe 设备的支持已从 sg3_utils 软件包中弃用

对 Non-volatile Memory Express (NVMe)设备的支持已被弃用,并将在以后的主 RHEL 发行版本中从 sg3_utils 软件包中删除。您可以改为使用原生工具(nvme-cli)。

Jira:RHELDOCS-19069[1]

lvm2-activation-generator 及其生成的服务在 RHEL 9.0 中删除

lvm2-activation-generator 程序及其生成的服务 lvm2-activationlvm2-activation-earlylvm2-activation-net 已在 RHEL 9.0 中删除。lvm.conf event_activation 设置用于激活服务将不再起作用。自动激活卷组的唯一方法是基于事件激活。

Jira:RHELPLAN-107107[1]

在 RHEL 9 中已弃用了持久性内存开发套件(pmdk)和支持库

pmdk 是用于系统管理员和应用程序开发者的库和工具集合,以简化管理和访问持久内存设备。RHEL 9 中已弃用了 pmdk 和支持库。这还包括 -debuginfo 软件包。

pmdk 产生的以下二进制软件包列表,包括 nvml 源软件包,已被弃用:

  • libpmem
  • libpmem-devel
  • libpmem-debug
  • libpmem2
  • libpmem2-devel
  • libpmem2-debug
  • libpmemblk
  • libpmemblk-devel
  • libpmemblk-debug
  • libpmemlog
  • libpmemlog-devel
  • libpmemlog-debug
  • libpmemobj
  • libpmemobj-devel
  • libpmemobj-debug
  • libpmempool
  • libpmempool-devel
  • libpmempool-debug
  • pmempool
  • daxio
  • pmreorder
  • pmdk-convert
  • libpmemobj++
  • libpmemobj++-devel
  • libpmemobj++-doc

Jira:RHELDOCS-16432[1]

md-linearmd-faultymd-multipath 模块已弃用

以下 MD RAID 内核模块已被弃用,并将在以后的主 RHEL 发行版本中删除:

  • CONFIG_MD_LINEARmd-linear 来串联多个驱动器,以便在单个成员磁盘变满时,数据将写到下一个磁盘,直到所有磁盘都满了为止。
  • CONFIG_MD_FAULTYmd-faulty 来测试偶尔返回读或写错误的块设备。
  • CONFIG_MD_MULTIPATHmd-multipath 来利用支持单个 LUN (磁盘驱动器)的多个 I/O 路径的硬件。md-multipath 在硬件故障或单个路径饱和时允许数据可用性。

Jira:RHEL-30730[1]

VDO sysfs 参数已弃用

Virtual Data Optimizer (VDO) sysfs 参数已弃用,并将在以后的主 RHEL 发行版本中删除。除 log_level 外,kvdo 模块的所有模块级 sysfs 参数将被删除。对于单个 dm-vdo 目标,特定于 VDO 的所有 sysfs 参数也将被删除。所有 DM 目标常用的参数没有变化。目前通过更新删除的模块级参数而设置的 dm-vdo 目标的配置值不再更改。

dm-vdo 目标的统计信息和配置值将不再可以通过 sysfs 访问。但是,这些值仍可以使用 dmsetup message statsdmsetup statusdmsetup table dmsetup 命令访问

Jira:RHEL-30525

9.11. 高可用性和集群

弃用的高可用性功能

从 Red Hat Enterprise Linux 9.5 开始,以下功能已被弃用,并将在下一个主发行版本中删除。当您尝试使用这些功能配置系统时,pcs 命令行界面会产生一条警告。

  • 按顺序约束配置 score 参数
  • 在捆绑包中使用 rkt 容器引擎
  • 支持 upstartnagios 资源
  • 用于配置 Pacemaker 规则的 monthdays,weekdays,weekyears,yearsdaysmoon 日期规范选项
  • 配置 Pacemaker 规则的 yearsdaysmoon 持续时间选项

Jira:RHEL-34781

Resilient Storage Add-On 已弃用

从 RHEL 9 开始,Red Hat Enterprise Linux (RHEL) Resilient Storage Add-On 已被弃用。从 Red Hat Enterprise Linux 10 以及 RHEL 10 后的任何后续版本开始,不再支持 Resilient Storage Add-On 。RHEL Resilient Storage Add-On 将继续受到早期版本的 RHEL (7、8、9)的支持,并贯穿其各自的维护支持生命周期。

JIRA:RHELDOCS-19022[1]

9.12. 编译器和开发工具

Redis 将在 Grafana、PCP 和 grafana-pcp 中被 Valkey 替换

Redis 键值存储已弃用,并将在下一个 RHEL 主版本中被 Valkey 替换。因此,Grafana、PCP 和 grafana-pcp 插件将在 RHEL 10 中使用 Valkey 而不是 Redis 存储数据。

Jira:RHELDOCS-18207[1]

llvm-doc 的 HTML 内容已弃用

llvm-doc 软件包的 HTML 内容将在以后的 RHEL 发行版本中删除,并被指向 llvm.org 中在线文档的 HTML 文件所替换。没有网络访问的 llvm-doc 的用户需要一种替代方法来访问 LLVM 文档。

Jira:RHELDOCS-19013[1]

Go 的 FIPS 模式下,比 2048 小的密钥已被 openssl 3.0 弃用

openssl 3.0 弃用了小于 2048 位的密钥,在 Go 的 FIPS 模式中无法正常工作。

Jira:RHELPLAN-129104[1]

有些 PKCS1 v1.5 模式现在在 Go 的 FIPS 模式下被弃用

一些 PKCS1 v1.5 模式在 FIPS-140-3 中未被批准用于加密,并被禁用。它们将不再在 Go 的 FIPS 模式下工作。

Jira:RHELPLAN-123778[1]

32 位软件包已弃用

与 32 位 multilib 软件包的链接已弃用。将在 Red Hat Enterprise Linux 9 的生命周期中保持对 *.i686 软件包的支持,但将在下一个 RHEL 主版本中删除。

Jira:RHELDOCS-17917[1]

9.13. 身份管理

dnssec-enable: no; 选项已弃用

/etc/named/ipa-options-ext.conf 文件中的 dnssec-enable: no; 选项已被弃用,并将在以后的 RHEL 主版本中删除。DNS Security Extensions (DNSSEC) 被默认启用,且无法禁用它们。dnssec-validation: no; 选项仍可用。

Jira:RHELDOCS-20464[1]

nsslapd-subtree-rename-switch389-ds-base中被弃用

在此次更新之前,您可以配置目录服务器以防止在数据库中的子树之间移动条目。由于稳定性问题,这个功能已被弃用,并将在以后的主 RHEL 发行版本中删除。

不要使用 nsslapd-subtree-rename-switch 参数来停用子树之间的移动条目。另外,您可以通过创建访问控制指令(ACI)来停用移动条目。

Jira:RHELDOCS-20337[1]

pam_console 模块已弃用

在 RHEL 9.5 中,pam_console 模块已弃用,并计划在以后的发行版本中删除。pam_console 模块向登录到物理控制台或终端的用户授予文件权限和身份验证能力,并根据控制台登录状态和用户状态来调整这些特权。作为 pam_console 的一种替代,您可以使用 systemd-logind 系统服务。有关配置详情,请查看 logind.conf (5) 手册页。

Jira:RHELDOCS-18158[1]

OpenDNSSec 中的 SHA-1 现已弃用

OpenDNSSEC 支持使用 SHA-1 算法导出数字签名和身份验证记录。不再支持使用 SHA-1 算法。在 RHEL 9 发行版本中,OpenDNSSec 中的 SHA-1 已被弃用,并可能在以后的次版本中删除。另外,OpenDNSSec 支持仅限于与红帽身份管理的集成。OpenDNSSEC 不支持独立。

Jira:RHELPLAN-88246[1]

SSSD 隐式文件供应商域默认禁用

SSSD 隐式 文件 供应商域,从 /etc/shadow/etc/ groups 等本地文件检索用户信息,现已默认禁用。

使用 SSSD 从本地文件检索用户和组信息:

  1. 配置 SSSD.选择以下选项之一:

    1. 使用 sssd.conf 配置文件中的 id_provider=files 选项明确配置本地域。

      [domain/local]
      id_provider=files
      ...
    2. 通过在 sssd.conf 配置文件中设置 enable_files_domain=true 来启用 文件 供应商。

      [sssd]
      enable_files_domain = true
  2. 配置名称服务切换。

    # authselect enable-feature with-files-provider
  3. 要恢复用户信息的缓存和同步,请通过创建符号链接来启用 shadow-utilssssd_cache 之间的集成:

    # ln -s /usr/sbin/sss_cache /usr/sbin/sss_cache_shadow_utils

Jira:RHELPLAN-100639[1], Jira:RHEL-56352

SSSD 文件 提供者已弃用

SSSD 文件 提供者已在 Red Hat Enterprise Linux (RHEL) 9 中弃用。文件 提供者可能会从以后的版本中删除。

Jira:RHELPLAN-139805[1]

9.14. SSSD

ad_allow_remote_domain_local_groups 选项已弃用

sssd.conf 中的 ad_allow_remote_domain_local_groups 选项已在 Red Hat Enterprise Linux (RHEL) 9.6 中被弃用。ad_allow_remote_domain_local_groups 选项可能会在以后的版本中删除。

Jira:RHELDOCS-19455[1]

sss_ssh_knownhostsproxy 工具已弃用

sss_ssh_knownhostsproxy 已弃用,并将被 RHEL 10 中的一个更有效的工具替代。sss_ssh_knownhostsproxy 将在 RHEL 9 中保持向后兼容性,并将在 RHEL 10 中删除。对 ssh KnownHostsCommand 选项的支持将添加到以后的发行版本中。

Jira:RHELDOCS-19115[1]

AD 和 IdM 的 枚举 功能已弃用

枚举 功能允许您使用没有用于活动目录(AD)、身份管理(IdM)和 LDAP 供应者参数的 getent passwdgetent group 命令列出所有用户或组。在 Red Hat Enterprise Linux (RHEL) 9 中弃用了用于 AD 和 IdM 的 枚举 功能。用于 AD 和 IdM 的 枚举 功能将在 RHEL 10 中删除 。

Jira:SSSD-6596

libsss_simpleifp 子软件包已弃用

提供 libsss_simpleifp.so 库的 libsss_simpleifp 子软件包已在 Red Hat Enterprise Linux (RHEL) 9 中弃用。libsss_simpleifp 子软件包可能会从以后的 RHEL 发行版本中删除。

Jira:SSSD-6601

SMB1 协议在 Samba 中已弃用

从 Samba 4.11 开始,不安全的服务器消息块版本 1 (SMB1)协议已弃用,并将在以后的发行版本中删除。

为提高安全性,SMB1 默认在 Samba 服务器和客户端工具中被禁用。

Jira:RHELDOCS-16612[1]

9.15. 桌面

Firefox 和 Thunderbird Flatpak 镜像已被弃用

rhel9/firefox-flatpakrhel9/thunderbird-flatpak Flatpak 镜像在 RHEL 9 中作为技术预览提供,并会被其 RHEL 10 版本替代。

Jira:RHEL-91106[1]

evince 已被弃用

evince 是 GNOME 桌面的一个文档查看器已被弃用,并将在以后的主发行版本中删除。

Jira:RHELDOCS-19889[1]

power-profile-daemon 已被弃用

power-profile-daemon 软件包已弃用,并被 tuned-ppd 软件包替代。在 RHEL 9.6 的新安装中,默认安装 tuned-ppd 软件包。

对于从早期版本升级到 RHEL 9.6 的系统,power-profile-daemon 仍然会被安装。如果您的场景需要在更新的 RHEL 9.6 版本中使用 tuned-ppd,请手动安装它:

# dnf install tuned-ppd

要验证是否安装了该软件包,请输入以下命令:

# rpm -q tuned-ppd
tuned-ppd-2.25.1-1.el9.noarch

Jira:RHEL-68152

Totem 媒体播放器已被弃用

Totem 媒体播放器已在 RHEL 9.5 中弃用,并将在以后的主发行版本中删除。

Jira:RHELDOCS-19050[1]

power-profiles-daemon 已被弃用

GNOME 中提供电源模式配置的 power-profiles-daemon 软件包已弃用,并将在以后的主发行版本中删除。

您可以使用 Tuned 作为 GNOME 中电源模式配置的替代品。您可以使用 tuned-ppd API 转换守护进程作为 power-profiles-dameon 的临时替代品。

Jira:RHELDOCS-19093[1]

gedit 已被弃用

Red Hat Enterprise Linux 中的默认图形文本编辑器 gedit 已被弃用,并将在以后的主发行版本中删除。改为使用 GNOME 文本编辑器。

Jira:RHELDOCS-19149[1]

Qt 5 库已弃用

Qt 5 库已弃用,并将在以后的主发行版本中删除。Qt 5 库被 Qt 6 库替代,具有新的功能和更好的支持。

如需更多信息,请参阅 移植到 Qt 6

Jira:RHELDOCS-19133[1]

Webkitgtk 已被弃用

WebKitGTK Web 浏览器引擎已被弃用,并将在以后的主发行版本中删除。

因此,您将不再能够构建依赖于 WebKitGTK 的应用程序。Mozilla Firefox 以外的桌面应用程序不再显示 Web 内容。RHEL 10 中不提供其他 Web 浏览器引擎。

Jira:RHELDOCS-19171[1]

Evolution 已被弃用

Evolution 是一种 GNOME 应用程序,提供集成的电子邮件、日历、联系人管理和通信功能。应用程序及其插件已被弃用,并将在以后的主发行版本中删除。您可以在第三方源中查找备选方案,例如在 Flathub 上。

Jira:RHELDOCS-19147[1]

Festival 已被弃用

Festival 语音合成器已被弃用,并将在以后的主发行版本中删除。

作为替代方案,您可以使用 Espeak NG 语音合成器。

Jira:RHELDOCS-19139[1]

GNOME 的 Eye 已弃用

RHEL 9 中弃用了 GNOME (eog)镜像查看器应用程序的 Eye。

作为替代方案,您可以使用 Loupe 应用程序。

Jira:RHELDOCS-19135[1]

Cheese 已被弃用

Cheese 相机应用程序已被弃用,并将在以后的主发行版本中删除。

作为替代方案,您可以使用 Snapshot 应用程序。

Jira:RHELDOCS-19137[1]

Devhelp 已被弃用

Devhelp,用于浏览和搜索 API 文档的图形开发人员工具已被弃用,并将在以后的主发行版本中删除。现在,您可以在特定的上游项目中在线找到 API 文档。

Jira:RHELDOCS-19154[1]

基于 GTK 3 的 gtkmm 已被弃用

gtkmm 是 GTK 图形工具包的一个 C++ 接口。基于 GTK 3 的 gtkmm 版本及其所有依赖项已被弃用,并将在以后的主发行版本中删除。要在 RHEL 10 中访问 gtkmm,请迁移到基于 GTK 4 的 gtkmm 版本。

Jira:RHELDOCS-19143[1]

Inkscape 已被弃用

Inkscape 矢量图形编辑器已弃用,并将在以后的主发行版本中删除。

Jira:RHELDOCS-19151[1]

GTK 2 现已弃用

旧的 GTK 2 工具包及以下相关软件包已弃用:

  • adwaita-gtk2-theme
  • gnome-common
  • gtk2
  • gtk2-immodules
  • hexchat

其它几个软件包目前依赖于 GTK 2。这些已被修改,以便它们不再依赖于未来的主 RHEL 发行版本中已弃用的软件包。

如果您维护使用 GTK 2 的应用程序,红帽建议您将应用移植到 GTK 4。

Jira:RHELPLAN-131882[1]

libreoffice 已被弃用

LibreOffice RPM 软件包现已弃用,并将在以后的主 RHEL 发行版本中删除。LibreOffice 在 RHEL 7、8 和 9 的整个生命周期中仍然被完全支持。

作为 RPM 软件包的替代,红帽建议您从 Document Foundation 提供的以下源中安装 LibreOffice:

Jira:RHELDOCS-16300[1]

Inkscape 和 LibreOffice Flatpak 镜像已弃用

作为技术预览提供的 rhel9/inkscape-flatpakrhel9/libreoffice-flatpak Flatpak 镜像已被弃用。

红帽建议对这些镜像使用以下替代方案:

  • 要替换 rhel9/inkscape-flatpak,请使用 inkscape RPM 软件包。
  • 要替换 rhel9/libreoffice-flatpak,请参阅 LibreOffice 弃用发行注记

Jira:RHELDOCS-17102[1]

TigerVNC 已弃用

TigerVNC 远程桌面解决方案现已弃用。它将在以后的主 RHEL 发行版本中被删除,并被不同的远程桌面解决方案替代。

TigerVNC 在 RHEL 9 中提供了虚拟网络计算(VNC)协议的服务器和客户端实现。

以下软件包已弃用:

  • tigervnc
  • tigervnc-icons
  • tigervnc-license
  • tigervnc-selinux
  • tigervnc-server
  • tigervnc-server-minimal
  • tigervnc-server-module

Connections 应用程序(gnome-connections)仍然作为替代的 VNC 客户端被支持,但它不提供 VNC 服务器。

Jira:RHELDOCS-17782[1]

9.16. 图形基础结构

PulseAudio 守护进程已弃用

PulseAudio 守护进程及其软件包 pulseaudioalsa-plugins-pulseaudio 已被弃用,并将在以后的主发行版本中删除。

请注意,PulseAudio 客户端库和工具已被弃用,此更改仅影响在系统上运行的 audio 守护进程。

您可以使用 PipeWire 音频系统作为替代品,从 RHEL 9.0 开始,它也是默认的 audio 守护进程。PipeWire 还提供了一种 PulseAudio API 的实现。

Jira:RHELDOCS-19080[1]

Motif 已被弃用

Motif 小部件工具包已在 RHEL 中被弃用,因为上游 Motif 社区的开发不活跃。

以下 Motif 软件包已被弃用,包括其开发和调试变体:

  • motif
  • openmotif
  • openmotif21
  • openmotif22

另外,motif-static 软件包已删除。

红帽建议使用 GTK 工具包作为替代品。与 Motif 相比,GTK更易于维护,并提供了新功能。

JIRA:RHELPLAN-98983[1]

Intel vGPU 功能已被删除

在以前的版本中,作为技术预览,可以将物理 Intel GPU 设备划分为多个虚拟设备,称为 介质设备。然后,这些介质设备可以分配给多个虚拟机(VM)作为虚拟 GPU。因此,这些虚拟机共享单个物理 Intel GPU 的性能,但只有所选的 Intel GPU 与此功能兼容。

从 RHEL 9.3 开始,Intel vGPU 功能已完全删除。

Jira:RHELPLAN-157294[1]

9.17. Red Hat Enterprise Linux 系统角色

mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula 变量已弃用

随着 RHEL 未来的重大更新,mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula 变量将不再在 mssql 系统角色中支持,因为角色现在可以为 mssql_tools 版本 17 和 18 安装 odbc 驱动程序。因此,您必须改为使用没有版本号的 mssql_accept_microsoft_odbc_driver_for_sql_server_eula 变量。

重要:如果您使用带有版本号的已弃用的变量 mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula ,则角色会通知您使用新的变量 mssql_accept_microsoft_odbc_driver_for_sql_server_eula。但是,弃用的变量将继续工作。

Jira:RHEL-69311

podman RHEL 系统角色中已弃用的变量:container_image_usercontainer_image_password

container_image_usercontainer_image_password 变量已弃用。在 RHEL 的未来的主发行版本中,这些变量将被删除。您可以使用 podman_registry_usernamepodman_registry_password 变量。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。

Jira:RHELDOCS-18803[1]

在 RHEL 9 节点上配置团队时,network 系统角色会显示一条弃用警告

网络 team 功能在RHEL 9 中已被弃用。因此,在 RHEL 8 控制节点上使用 network RHEL 系统角色在 RHEL 9 节点上配置网络团队,会显示有关弃用的警告。

Jira:RHELPLAN-95747[1]

9.18. 虚拟化

特定的 IBM z16 CPU 功能已弃用。

在这个版本中,IBM z16 KVM 虚拟机弃用了 tecte CPU 功能。但请注意,将带有 CPU 模型 host-model 的虚拟机从 IBM z16 主机迁移到 IBM z17 主机不需要对 CPU 功能设置进行任何调整。

Jira:RHEL-89415[1]

实时虚拟机转储已弃用

virsh dump 命令的-- live 选项已弃用,并将在以后的 RHEL 发行版本中删除。删除后,如果您尝试使用 virsh dump 和 the- live 选项创建虚拟机转储,命令将失败。

Jira:RHEL-57677

与 iPXE 相关的 NIC 设备驱动程序在 RHEL 9 中已弃用

Internet Preboot eXecution Environment (iPXE)固件提供了一系列经常在环境中使用的通过网络的引导选项,其中机器需要远程引导。此外,它还包含大量的设备驱动程序。以下已被标记为弃用,将在 RHEL 10 发行版本中删除:

  • 完整的 ipxe-roms 子 RPM 软件包
  • 包含 ipxe-bootimgs-x86 子 RPM 软件包中的设备驱动程序的二进制文件:

    • /usr/share/ipxe/ipxe-i386.efi
    • /usr/share/ipxe/ipxe-x86_64.efi
    • /usr/share/ipxe/ipxe.dsk
    • /usr/share/ipxe/ipxe.iso
    • /usr/share/ipxe/ipxe.lkrn
    • /usr/share/ipxe/ipxe.usb

iPXE 现在依赖平台固件来为网络引导提供 NIC 驱动程序。/usr/share/ipxe/ipxe-snponly-x86_64.efi/usr/share/ipxe/undionly.kpxe iPXE 二进制文件是 ipxe-bootimgs 软件包的一部分,并使用平台固件提供的 NIC 驱动程序。

Jira:RHELDOCS-18531

libvirtd 已被弃用

单体 libvirt 守护进程 libvirtd 已在 RHEL 9 中弃用,并将在以后的 RHEL 主发行版本中删除。请注意,您仍然可以使用 libvirtd 在虚拟机监控程序上管理虚拟化,但红帽建议您切换到新引入的模块化 libvirt 守护进程。具体说明和详情,请参阅 RHEL 9 配置和管理虚拟化 文档。

Jira:RHELPLAN-113995[1]

不支持使用 Windows Server 2012 或 Windows 8 作为客户机操作系统

因为 Microsoft 结束了对以下 Windows 版本的支持,因此红帽还删除了将这些版本用作客户机操作系统的支持。

  • Windows 8
  • Windows 8.1
  • Windows Server 2012
  • Windows Server 2012 R2

Jira:RHEL-11810

虚拟机的内部快照已弃用

对于使用 内部 快照机制的快照,创建并恢复到虚拟机(VM)快照已被弃用,并将在以后的 RHEL 主发行版本中删除。取而代之,请使用 具有外部 机制的快照。

如需更多信息,请参阅虚拟机快照的支持限制

Jira:RHELDOCS-20135[1]

virt-manager 已被弃用

虚拟机管理器(也称 virt-manager) 已弃用。RHEL web 控制台(也称为 Cockpit )旨在在以后的版本中成为其替代品。因此,建议您使用 web 控制台使用 GUI 管理虚拟化。但请注意,virt-manager 中一些可用的功能可能在 RHEL web 控制台中不可用。

Jira:RHELPLAN-10304[1]

使用基于 SHA1 的签名进行 SecureBoot 镜像验证已弃用

在 UEFI(PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已过时。红帽建议改为使用基于 SHA-2 算法或更新算法的签名。

Jira:RHELPLAN-69533[1]

虚拟软盘驱动程序已弃用

用于控制虚拟软盘设备的 isa-fdc 驱动程序现已弃用,并将在以后的 RHEL 发行版本中不被支持。因此,为了确保与迁移的虚拟机(VM)兼容,红帽不建议在 RHEL 9.7 上托管的虚拟机中使用软盘磁盘设备。

Jira:RHELPLAN-81033[1]

qcow2-v2 镜像格式已弃用

在 RHEL 9.7 中,虚拟磁盘镜像的 qcow2-v2 格式已弃用,并将在以后的 RHEL 主发行版本中不被支持。另外,RHEL 9.7 Image Builder 无法以 qcow2-v2 格式创建磁盘镜像。

红帽强烈建议您使用 qcow2-v3,而不是 qcow2-v2。要将 qcow2-v2 镜像转换为更新的格式版本,请使用 qemu-img amend 命令。

JIRA:RHELPLAN-75969[1]

旧的 CPU 型号现已弃用

大量 CPU 模型已被弃用,并将在以后的 RHEL 主发行版本中的虚拟机 (VM) 不被支持。弃用的模型如下:

  • 对于 Intel:Intel Xeon 55xx 和 75xx Processor 系列前的型号(也称为 Nehalem)
  • 对于 AMD:AMD Opteron G4 之前的型号
  • 对于 IBM Z:IBM z14 之前的型号

要检查您的虚拟机是否使用已弃用的 CPU 模型,请使用 virsh dominfo 工具,并在 Messages 部分查找类似如下的行:

tainted: use of deprecated configuration settings
deprecated configuration: CPU model 'i486'

Jira:RHELPLAN-114513[1]

基于 RDMA 的实时迁移已弃用

有了这个更新,使用 Remote Direct Memory Access (RDMA)迁移正在运行的虚拟机已被弃用。因此,仍可以使用 rdma 迁移 URI 来通过 RDMA 请求迁移,但这个功能将在以后的 RHEL 主发行版本中不被支持。

Jira:RHELPLAN-153267[1]

PMEM 设备透传已弃用

有了此更新,非易失性内存库(nvml)软件包已弃用,并将在以后的 RHEL 主版本中删除。因此,当删除软件包时,它将不再可能将持久性内存(pmem)设备传给虚拟机(VM)。请注意,易失性内存或文件支持的模拟 NVDIMM 设备仍然可用,但不能被配置为持久。

Jira:RHELDOCS-17989

使用 virt-v2v 从 RHEL 5 转换 Xen 虚拟机已被弃用。

使用 virt-v2v 工具将虚拟机从 RHEL 5 Xen 主机转换为 KVM 已被弃用,并将在以后的 RHEL 主发行版本中删除。详情请查看 红帽知识库

Jira:RHELDOCS-19193[1]

9.19. 容器

rsyslog 容器镜像已弃用

rsyslog 容器镜像已弃用,并将在以后的主发行版本中删除。

Jira:RHELDOCS-19523[1]

runc 容器运行时已弃用

runc 已被弃用,并将在 RHEL 10.0 中删除。RHEL 9 中的默认容器运行时是 crun。crun 是一个快速、占用内存少的 OCI 容器运行时,是用 C 语言编写的。crun 二进制文件比 runc 二进制文件小多达 50 倍,快两倍。使用 crun,也可以在运行容器时设置最少的进程数。crun 运行时也支持 OCI hook。

Jira:RHEL-69742

podman-tests 软件包已弃用

podman-tests 软件包已弃用。

Jira:RHEL-67859

nodejs-18nodejs-18-minimal 已弃用

nodejs-18nodejs-18-minimal 容器镜像现已弃用,将不再接收功能更新。改为使用 nodejs-22nodejs-22-minimal

Jira:RHELDOCS-20283[1]

ruby-31 容器镜像已弃用

ruby-31 容器镜像已弃用,并将不再接收功能更新。使用 ruby-33 容器镜像替代。

Jira:RHELDOCS-20519[1]

php-81 容器镜像已弃用

php-81 容器镜像现已弃用,并将不再接收功能更新。改为使用 php-83

Jira:RHELDOCS-20718[1]

Podman v5.0 弃用

在 RHEL 9.5 中,以下在 Podman v5.0 中已弃用:

  • 存储在 containers.conf 文件中的系统连接和场信息现在是只读的。系统连接和场信息现在将被存储在 podman.connections.json 文件中,仅由 Podman 管理。Podman 继续支持旧的配置选项,如 [engine.service_destinations][farms] 部分。如果需要,您仍然可以手动添加连接或场,但无法使用 podman system connection rm 命令从 containers.conf 文件中删除连接。
  • slirp4netns 网络模式已被弃用,并将在以后的 RHEL 主发行版本中删除。pasta 网络模式是无根容器的默认网络模式。
  • 无根容器的 cgroup v1 已被弃用,并将在以后的 RHEL 主发行版本中删除。

Jira:RHELDOCS-19021[1]

runc 容器运行时已弃用

runc 容器运行时已弃用,并将在以后的 RHEL 主发行版本中删除。默认容器运行时是 crun

Jira:RHELDOCS-19012[1]

不支持在 RHEL 7 主机上运行 RHEL 9 容器

不支持在 RHEL 7 主机上运行 RHEL 9 容器。它可能可以正常工作,但却没有保证。

如需更多信息,请参阅 Red Hat Enterprise Linux Container Compatibility Matrix

Jira:RHELPLAN-100087[1]

Podman 中的 SHA1 哈希算法已弃用

Podman 不再支持用来生成无根网络命名空间的文件名的 SHA1 算法。因此,如果在使用 Podman 4.1.1 或更高版本之前启动无根容器,则必须重启它们(而不只是使用 slirp4netns),以确保它们可以在升级后启动容器。

Jira:RHELPLAN-117005[1]

rhel9/pause 已被弃用

rhel9/pause 容器镜像已被弃用。

Jira:RHELPLAN-127619[1]

CNI 网络堆栈已弃用

容器网络接口 (CNI)网络堆栈已弃用,并将在以后 RHEL 次要发行本中从 Podman 中删除。在以前的版本中,容器只能通过 DNS 连接到单个 Container Network Interface (CNI)插件。podman v.4.0 引入了一个新的 Netavark 网络堆栈。您可以将 Netavark 网络堆栈与 Podman 和其他Open Container Initiative(OCI)容器管理应用程序一起使用。Podman 的 Netavark 网络堆栈也与高级 Docker 功能兼容。多个网络中的容器可以访问任何这些网络上的容器。

如需更多信息,请参阅 将网络堆栈从 CNI 切换到 Netavark

Jira:RHELDOCS-16756[1]

pasta 作为网络名称已被弃用

pasta 作为网络名称值的支持已弃用,且在下一个 Podman 的主发行版(版本 5.0)中不被接受。您可以使用 podman run --networkpodman create --network 命令,使用 pasta 网络名称值在 Podman 中创建唯一的网络模式。

Jira:RHELDOCS-17038[1]

BoltDB 数据库后端已弃用

从 RHEL 9.4 开始,BoltDB 数据库后端被弃用。在以后的 RHEL 版本中,BoltDB 数据库后端将被删除,并不再对 Podman 可用。对于 Podman,请使用 SQLite 数据库后端,这是从 RHEL 9.4 开始的默认后端。

Jira:RHELDOCS-17495[1]

CNI 网络堆栈已弃用

Container Network Interface (CNI)网络堆栈已弃用,并将在以后的发行版本中删除。使用 Netavark 网络堆栈替代。如需更多信息,请参阅 将网络堆栈从 CNI 切换到 Netavark

Jira:RHELDOCS-17518[1]

Podman v5.0 即将推出的弃用

以下将在以后的 Podman v5.0 中被弃用,后者将在 RHEL 9.5 和 RHEL 10.0 Beta 中发布:

  • BoltDB 数据库后端将被弃用。提供了新的 SQLite 数据库后端。
  • containers.conf 文件将是只读。系统连接和农场信息将存储在 podman.connections.json 文件中,仅由 Podman 管理。Podman 继续支持旧的配置选项,如 [engine.service_destinations][farms] 部分。但是,如果需要,您仍然可以手动添加连接或农场,但无法使用 podman system connection rm 命令删除 containers.conf 文件中的连接。

RHEL 10.0 Beta 计划有以下变化:

  • pasta 网络模式将是无根容器的默认网络模式。slirp4netns 网络模式将被弃用。
  • cgroupv1 将被弃用。
  • CNI 网络堆栈将被弃用。

Jira:RHELDOCS-17462[1]

rhel9/openssl 已被弃用

rhel9/openssl 容器镜像已被弃用。

Jira:RHELDOCS-18106[1]

9.20. 已弃用的软件包

本节列出了已弃用的软件包,可能不会包括在 Red Hat Enterprise Linux 未来的主发行版本中。

有关 RHEL 8 和 RHEL 9 之间软件包的更改,请参阅使用 RHEL 9 文档中的软件包的更改

重要

在 RHEL 9 中,已弃用软件包的支持状态保持不变。有关支持长度的更多信息,请参阅 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

以下软件包已在 RHEL 9 中弃用:

  • aacraid
  • adwaita-gtk2-theme
  • af_key
  • anaconda-user-help
  • aajohan-comfortaa-fonts
  • adwaita-gtk2-theme
  • adwaita-qt5
  • anaconda-user-help
  • ant-javamail
  • apr-util-bdb
  • aspnetcore-runtime-7.0
  • aspnetcore-targeting-pack-6.0
  • aspnetcore-targeting-pack-7.0
  • atkmm
  • atlas
  • atlas-devel
  • atlas-z14
  • atlas-z15
  • authselect-compat
  • autoconf-latest
  • autoconf271
  • autocorr-af
  • autocorr-bg
  • autocorr-ca
  • autocorr-cs
  • autocorr-da
  • autocorr-de
  • autocorr-dsb
  • autocorr-el
  • autocorr-en
  • autocorr-es
  • autocorr-fa
  • autocorr-fi
  • autocorr-fr
  • autocorr-ga
  • autocorr-hr
  • autocorr-hsb
  • autocorr-hu
  • autocorr-is
  • autocorr-it
  • autocorr-ja
  • autocorr-ko
  • autocorr-lb
  • autocorr-lt
  • autocorr-mn
  • autocorr-nl
  • autocorr-pl
  • autocorr-pt
  • autocorr-ro
  • autocorr-ru
  • autocorr-sk
  • autocorr-sl
  • autocorr-sr
  • autocorr-sv
  • autocorr-tr
  • autocorr-vi
  • autocorr-vro
  • autocorr-zh
  • avahi-autoipd
  • babl
  • bacula-client
  • bacula-common
  • bacula-console
  • bacula-director
  • bacula-libs
  • bacula-libs-sql
  • bacula-logwatch
  • bacula-storage
  • bind9.18-libs
  • bitmap-fangsongti-fonts
  • bnx2
  • bnx2fc
  • bnx2i
  • bogofilter
  • Box2D
  • brasero-nautilus
  • cairomm
  • cheese
  • cheese-libs
  • clucene-contribs-lib
  • clucene-core
  • clutter
  • clutter-gst3
  • clutter-gtk
  • cnic
  • cockpit-composer
  • cogl
  • compat-hesiod
  • compat-locales-sap
  • compat-locales-sap-common
  • compat-openssl11
  • compat-paratype-pt-sans-fonts-f33-f34
  • compat-sap-c++-12
  • compat-sap-c++-13
  • containernetworking-plugins
  • containers-common-extra
  • culmus-aharoni-clm-fonts
  • culmus-caladings-clm-fonts
  • culmus-david-clm-fonts
  • culmus-drugulin-clm-fonts
  • culmus-ellinia-clm-fonts
  • culmus-fonts-common
  • culmus-frank-ruehl-clm-fonts
  • culmus-hadasim-clm-fonts
  • culmus-miriam-clm-fonts
  • culmus-miriam-mono-clm-fonts
  • culmus-nachlieli-clm-fonts
  • culmus-simple-clm-fonts
  • culmus-stamashkenaz-clm-fonts
  • culmus-stamsefarad-clm-fonts
  • culmus-yehuda-clm-fonts
  • curl-minimal
  • daxio
  • dbus-glib
  • dbus-glib-devel
  • devhelp
  • devhelp-libs
  • dhcp-client
  • dhcp-common
  • dhcp-relay
  • dhcp-server
  • dotnet-apphost-pack-6.0
  • dotnet-apphost-pack-7.0
  • dotnet-hostfxr-6.0
  • dotnet-hostfxr-7.0
  • dotnet-runtime-6.0
  • dotnet-runtime-7.0
  • dotnet-sdk-6.0
  • dotnet-sdk-7.0
  • dotnet-targeting-pack-6.0
  • dotnet-targeting-pack-7.0
  • dotnet-templates-6.0
  • dotnet-templates-7.0
  • double-conversion
  • efs-utils
  • enchant
  • enchant-devel
  • eog
  • evince
  • evince-libs
  • evince-nautilus
  • evince-previewer
  • evince-thumbnailer
  • evolution
  • evolution-bogofilter
  • evolution-data-server-ui
  • evolution-data-server-ui-devel
  • evolution-devel
  • evolution-ews
  • evolution-ews-langpacks
  • evolution-help
  • evolution-langpacks
  • evolution-mapi
  • evolution-mapi-langpacks
  • evolution-pst
  • evolution-spamassassin
  • festival
  • festival-data
  • festvox-slt-arctic-hts
  • firefox
  • firefox
  • firefox-x11
  • flite
  • flite-devel
  • fltk
  • flute
  • firewire-core
  • fontawesome-fonts
  • gc
  • gcr-base
  • gdisk
  • gedit
  • gedit-plugin-bookmarks
  • gedit-plugin-bracketcompletion
  • gedit-plugin-codecomment
  • gedit-plugin-colorpicker
  • gedit-plugin-colorschemer
  • gedit-plugin-commander
  • gedit-plugin-drawspaces
  • gedit-plugin-findinfiles
  • gedit-plugin-joinlines
  • gedit-plugin-multiedit
  • gedit-plugin-sessionsaver
  • gedit-plugin-smartspaces
  • gedit-plugin-synctex
  • gedit-plugin-terminal
  • gedit-plugin-textsize
  • gedit-plugin-translate
  • gedit-plugin-wordcompletion
  • gedit-plugins
  • gedit-plugins-data
  • ghc-srpm-macros
  • ghostscript-x11
  • git-p4
  • gl-manpages
  • glade
  • glade-libs
  • glibmm24
  • gnome-backgrounds
  • gnome-backgrounds-extras
  • gnome-common
  • gnome-logs
  • gnome-photos
  • gnome-photos-tests
  • gnome-screenshot
  • gnome-session-xsession
  • gnome-shell-extension-panel-favorites
  • gnome-shell-extension-updates-dialog
  • gnome-terminal
  • gnome-terminal-nautilus
  • gnome-themes-extra
  • gnome-tweaks
  • gnome-video-effects
  • google-noto-cjk-fonts-common
  • google-noto-sans-cjk-ttc-fonts
  • google-noto-sans-khmer-ui-fonts
  • google-noto-sans-lao-ui-fonts
  • google-noto-sans-thai-ui-fonts
  • gspell
  • gtksourceview4
  • gtk2
  • gtk2-devel
  • gtk2-devel-docs
  • gtk2-immodule-xim
  • gtk2-immodules
  • gtkmm30
  • gtksourceview4
  • gubbi-fonts
  • gvfs-devel
  • ha-openstack-support
  • hexchat
  • hesiod
  • highcontrast-icon-theme
  • http-parser
  • ibus-gtk2
  • initial-setup
  • initial-setup-gui
  • Inkscape
  • inkscape-docs
  • inkscape-view
  • iptables-devel
  • iptables-libs
  • iptables-nft
  • iptables-nft-services
  • iptables-utils
  • iputils-ninfod
  • ipxe-roms
  • jakarta-activation2
  • java-1.8.0-openjdk
  • java-1.8.0-openjdk-demo
  • java-1.8.0-openjdk-devel
  • Java-1.8.0-openjdk-headless
  • java-1.8.0-openjdk-javadoc
  • java-1.8.0-openjdk-javadoc-zip
  • java-1.8.0-openjdk-src
  • java-11-openjdk
  • java-11-openjdk-demo
  • java-11-openjdk-devel
  • java-11-openjdk-headless
  • java-11-openjdk-javadoc
  • java-11-openjdk-javadoc-zip
  • java-11-openjdk-jmods
  • java-11-openjdk-src
  • java-11-openjdk-static-libs
  • java-17-openjdk
  • java-17-openjdk-demo
  • java-17-openjdk-devel
  • java-17-openjdk-headless
  • java-17-openjdk-javadoc
  • java-17-openjdk-javadoc-zip
  • java-17-openjdk-jmods
  • java-17-openjdk-src
  • java-17-openjdk-static-libs
  • jboss-jaxrs-2.0-api
  • jboss-logging
  • jboss-logging-tools
  • jdeparser
  • jigawatts
  • jigawatts-javadoc
  • julietaula-montserrat-fonts
  • kacst-art-fonts
  • kacst-book-fonts
  • kacst-decorative-fonts
  • kacst-digital-fonts
  • kacst-farsi-fonts
  • kacst-fonts-common
  • kacst-letter-fonts
  • kacst-naskh-fonts
  • kacst-office-fonts
  • kacst-one-fonts
  • kacst-pen-fonts
  • kacst-poster-fonts
  • kacst-qurn-fonts
  • kacst-screen-fonts
  • kacst-title-fonts
  • kacst-titlel-fonts
  • khmer-os-battambang-fonts
  • khmer-os-bokor-fonts
  • khmer-os-content-fonts
  • khmer-os-fasthand-fonts
  • khmer-os-freehand-fonts
  • khmer-os-handwritten-fonts
  • khmer-os-metal-chrieng-fonts
  • khmer-os-muol-fonts
  • khmer-os-muol-fonts-all
  • khmer-os-muol-pali-fonts
  • khmer-os-siemreap-fonts
  • kmod-kvdo
  • lasso
  • libabw
  • libadwaita-qt5
  • libbase
  • libblockdev-kbd
  • libcanberra-gtk2
  • libcdio-paranoia
  • libcdio-paranoia-devel
  • libcdr
  • libcmis
  • libdazzle
  • libdb
  • libdb-devel
  • libdb-utils
  • libdmx
  • libepubgen
  • libetonyek
  • libexttextcat
  • libfonts
  • libformula
  • libfreehand
  • libgdata
  • libgdata-devel
  • libgnomekbd
  • libiscsi
  • libiscsi-utils
  • liblangtag
  • liblangtag-data
  • liblayout
  • libloader
  • libmatchbox
  • libmspub
  • libmwaw
  • libnsl2
  • libnumbertext
  • libodfgen
  • liborcus
  • libotr
  • libpagemaker
  • libpmem
  • libpmem-debug
  • libpmem-devel
  • libpmem2
  • libpmem2-debug
  • libpmem2-devel
  • libpmemblk
  • libpmemblk-debug
  • libpmemblk-devel
  • libpmemlog
  • libpmemlog-debug
  • libpmemlog-devel
  • libpmemobj
  • libpmemobj++-devel
  • libpmemobj++-doc
  • libpmemobj-debug
  • libpmemobj-devel
  • libpmempool
  • libpmempool-debug
  • libpmempool-devel
  • libpng15
  • libpst-libs
  • libqxp
  • LibRaw
  • libreoffice
  • libreoffice-base
  • libreoffice-calc
  • libreoffice-core
  • libreoffice-data
  • libreoffice-draw
  • libreoffice-emailmerge
  • libreoffice-filters
  • libreoffice-gdb-debug-support
  • libreoffice-graphicfilter
  • libreoffice-gtk3
  • libreoffice-help-ar
  • libreoffice-help-bg
  • libreoffice-help-bn
  • libreoffice-help-ca
  • libreoffice-help-cs
  • libreoffice-help-da
  • libreoffice-help-de
  • libreoffice-help-dz
  • libreoffice-help-el
  • libreoffice-help-en
  • libreoffice-help-eo
  • libreoffice-help-es
  • libreoffice-help-et
  • libreoffice-help-eu
  • libreoffice-help-fi
  • libreoffice-help-fr
  • libreoffice-help-gl
  • libreoffice-help-gu
  • libreoffice-help-he
  • libreoffice-help-hi
  • libreoffice-help-hr
  • libreoffice-help-hu
  • libreoffice-help-id
  • libreoffice-help-it
  • libreoffice-help-ja
  • libreoffice-help-ko
  • libreoffice-help-lt
  • libreoffice-help-lv
  • libreoffice-help-nb
  • libreoffice-help-nl
  • libreoffice-help-nn
  • libreoffice-help-pl
  • libreoffice-help-pt-BR
  • libreoffice-help-pt-PT
  • libreoffice-help-ro
  • libreoffice-help-ru
  • libreoffice-help-si
  • libreoffice-help-sk
  • libreoffice-help-sl
  • libreoffice-help-sv
  • libreoffice-help-ta
  • libreoffice-help-tr
  • libreoffice-help-uk
  • libreoffice-help-zh-Hans
  • libreoffice-help-zh-Hant
  • libreoffice-impress
  • libreoffice-langpack-af
  • libreoffice-langpack-ar
  • libreoffice-langpack-as
  • libreoffice-langpack-bg
  • libreoffice-langpack-bn
  • libreoffice-langpack-br
  • libreoffice-langpack-ca
  • libreoffice-langpack-cs
  • libreoffice-langpack-cy
  • libreoffice-langpack-da
  • libreoffice-langpack-de
  • libreoffice-langpack-dz
  • libreoffice-langpack-el
  • libreoffice-langpack-en
  • libreoffice-langpack-eo
  • libreoffice-langpack-es
  • libreoffice-langpack-et
  • libreoffice-langpack-eu
  • libreoffice-langpack-fa
  • libreoffice-langpack-fi
  • libreoffice-langpack-fr
  • libreoffice-langpack-fy
  • libreoffice-langpack-ga
  • libreoffice-langpack-gl
  • libreoffice-langpack-gu
  • libreoffice-langpack-he
  • libreoffice-langpack-hi
  • libreoffice-langpack-hr
  • libreoffice-langpack-hu
  • libreoffice-langpack-id
  • libreoffice-langpack-it
  • libreoffice-langpack-ja
  • libreoffice-langpack-kk
  • libreoffice-langpack-kn
  • libreoffice-langpack-ko
  • libreoffice-langpack-lt
  • libreoffice-langpack-lv
  • libreoffice-langpack-mai
  • libreoffice-langpack-ml
  • libreoffice-langpack-mr
  • libreoffice-langpack-nb
  • libreoffice-langpack-nl
  • libreoffice-langpack-nn
  • libreoffice-langpack-nr
  • libreoffice-langpack-nso
  • libreoffice-langpack-or
  • libreoffice-langpack-pa
  • libreoffice-langpack-pl
  • libreoffice-langpack-pt-BR
  • libreoffice-langpack-pt-PT
  • libreoffice-langpack-ro
  • libreoffice-langpack-ru
  • libreoffice-langpack-si
  • libreoffice-langpack-sk
  • libreoffice-langpack-sl
  • libreoffice-langpack-sr
  • libreoffice-langpack-ss
  • libreoffice-langpack-st
  • libreoffice-langpack-sv
  • libreoffice-langpack-ta
  • libreoffice-langpack-te
  • libreoffice-langpack-th
  • libreoffice-langpack-tn
  • libreoffice-langpack-tr
  • libreoffice-langpack-ts
  • libreoffice-langpack-uk
  • libreoffice-langpack-ve
  • libreoffice-langpack-xh
  • libreoffice-langpack-zh-Hans
  • libreoffice-langpack-zh-Hant
  • libreoffice-langpack-zu
  • libreoffice-math
  • libreoffice-ogltrans
  • libreoffice-opensymbol-fonts
  • libreoffice-pdfimport
  • libreoffice-pyuno
  • libreoffice-sdk
  • libreoffice-sdk-doc
  • libreoffice-ure
  • libreoffice-ure-common
  • libreoffice-voikko
  • libreoffice-wiki-publisher
  • libreoffice-writer
  • libreoffice-x11
  • libreoffice-xsltfilter
  • libreofficekit
  • libreport
  • libreport-anaconda
  • libreport-cli
  • libreport-filesystem
  • libreport-gtk
  • libreport-plugin-bugzilla
  • libreport-plugin-reportuploader
  • libreport-rhel-anaconda-bugzilla
  • libreport-web
  • librepository
  • librevenge
  • librevenge-gdb
  • libserializer
  • libsigc++20
  • libsigsegv
  • libsmbios
  • libsoup
  • libsoup-devel
  • libstaroffice
  • libstemmer
  • libstoragemgmt-smis-plugin
  • libteam
  • libuser
  • libuser-devel
  • libvisio
  • libvisual
  • libwpd
  • libwpe
  • libwpe-devel
  • libwpg
  • libwps
  • libxcrypt-compat
  • libxklavier
  • libXp
  • libXp-devel
  • libXScrnSaver
  • libXScrnSaver-devel
  • libXxf86dga
  • libXxf86dga-devel
  • libzmf
  • lklug-fonts
  • lohit-gurmukhi-fonts
  • lpsolve
  • man-pages-overrides
  • mcpp
  • memkind
  • mesa-libGLw
  • mesa-libGLw-devel
  • mlocate
  • mod_auth_mellon
  • mod_jk
  • mod_security
  • mod_security-mlogc
  • mod_security_crs
  • motif
  • motif-devel
  • mythes
  • mythes-bg
  • mythes-ca
  • mythes-cs
  • mythes-da
  • mythes-de
  • mythes-el
  • mythes-en
  • mythes-eo
  • mythes-es
  • mythes-fr
  • mythes-ga
  • mythes-hu
  • mythes-it
  • mythes-lv
  • mythes-nb
  • mythes-nl
  • mythes-nn
  • mythes-pl
  • mythes-pt
  • mythes-ro
  • mythes-ru
  • mythes-sk
  • mythes-sl
  • mythes-sv
  • mythes-uk
  • navilu-fonts
  • nbdkit-gzip-filter
  • neon
  • NetworkManager-initscripts-updown
  • nginx
  • nginx-all-modules
  • nginx-core
  • nginx-filesystem
  • nginx-mod-devel
  • nginx-mod-http-image-filter
  • nginx-mod-http-perl
  • nginx-mod-http-xslt-filter
  • nginx-mod-mail
  • nginx-mod-stream
  • nispor
  • nscd
  • nvme-stas
  • opal-firmware
  • opal-prd
  • opal-prd
  • opal-utils
  • openal-soft
  • openchange
  • openscap-devel
  • openscap-python3
  • openslp-server
  • overpass-fonts
  • paktype-naqsh-fonts
  • paktype-tehreer-fonts
  • pam_ssh_agent_auth
  • pangomm
  • pentaho-libxml
  • pentaho-reporting-flow-engine
  • perl-AnyEvent
  • perl-B-Hooks-EndOfScope
  • perl-Class-Accessor
  • perl-Class-Data-Inheritable
  • perl-Class-Singleton
  • perl-Class-Tiny
  • perl-Crypt-OpenSSL-Bignum
  • perl-Crypt-OpenSSL-Random
  • perl-Crypt-OpenSSL-RSA
  • perl-Date-ISO8601
  • perl-DateTime
  • perl-DateTime-Format-Builder
  • perl-DateTime-Format-ISO8601
  • perl-DateTime-Format-Strptime
  • perl-DateTime-Locale
  • perl-DateTime-TimeZone
  • perl-DateTime-TimeZone-SystemV
  • perl-DateTime-TimeZone-Tzfile
  • perl-DB_File
  • perl-Devel-CallChecker
  • perl-Devel-Caller
  • perl-Devel-LexAlias
  • perl-Digest-SHA1
  • perl-Dist-CheckConflicts
  • perl-DynaLoader-Functions
  • perl-Encode-Detect
  • perl-Eval-Closure
  • perl-Exception-Class
  • perl-File-chdir
  • perl-File-Copy-Recursive
  • perl-File-Find-Object
  • perl-File-Find-Rule
  • perl-HTML-Tree
  • perl-Importer
  • perl-Mail-AuthenticationResults
  • perl-Mail-DKIM
  • perl-Mail-Sender
  • perl-Mail-SPF
  • perl-MIME-Types
  • perl-Module-Implementation
  • perl-Module-Pluggable
  • perl-namespace-autoclean
  • perl-namespace-clean
  • perl-Net-CIDR-Lite
  • perl-Net-DNS
  • perl-NetAddr-IP
  • perl-Number-Compare
  • perl-Package-stash
  • perl-Package-Stash-XS
  • perl-PadWalker
  • perl-Params-Classify
  • perl-Params-Validate
  • perl-Params-ValidationCompiler
  • perl-Perl-Destruct-Level
  • perl-Ref-Util
  • perl-Ref-Util-XS
  • perl-Scope-Guard
  • perl-Specio
  • perl-Sub-Identify
  • perl-Sub-Info
  • perl-Sub-Name
  • perl-Switch
  • perl-Sys-CPU
  • perl-Sys-MemInfo
  • perl-Test-LongString
  • perl-Test-Taint
  • perl-Variable-Magic
  • perl-XML-DOM
  • perl-XML-RegExp
  • perl-XML-Twig
  • pinfo
  • pki-jackson-annotations
  • pki-jackson-core
  • pki-jackson-databind
  • pki-jackson-jaxrs-json-provider
  • pki-jackson-jaxrs-providers
  • pki-jackson-module-jaxb-annotations
  • pki-resteasy-client
  • pki-resteasy-core
  • pki-resteasy-jackson2-provider
  • pki-resteasy-servlet-initializer
  • plymouth-theme-charge
  • pmdk-convert
  • pmempool
  • podman-plugins
  • poppler-qt5
  • postgresql-test-rpm-macros
  • power-profiles-daemon
  • pulseaudio-module-x11
  • python-botocore
  • python-gflags
  • python-netifaces
  • python-pyroute2
  • python-qt5-rpm-macros
  • python3-bind
  • python3-chardet
  • python3-lasso
  • python3-libproxy
  • python3-libreport
  • python3-netifaces
  • python3-nispor
  • python3-py
  • python3-pycdlib
  • python3-pycurl
  • python3-pyqt5-sip
  • python3-pyrsistent
  • python3-pysocks
  • python3-pytz
  • python3-pywbem
  • python3-qt5
  • python3-qt5-base
  • python3-requests+security
  • python3-requests+socks
  • python3-scour
  • python3-toml
  • python3-tomli
  • python3-tracer
  • python3-wx-siplib
  • python3.11
  • python3.11-cffi
  • python3.11-charset-normalizer
  • python3.11-cryptography
  • python3.11-devel
  • python3.11-idna
  • python3.11-libs
  • python3.11-lxml
  • python3.11-mod_wsgi
  • python3.11-numpy
  • python3.11-numpy-f2py
  • python3.11-pip
  • python3.11-pip-wheel
  • python3.11-ply
  • python3.11-psycopg2
  • python3.11-pycparser
  • python3.11-PyMySQL
  • python3.11-PyMySQL+rsa
  • python3.11-pysocks
  • python3.11-pyyaml
  • python3.11-requests
  • python3.11-requests+security
  • python3.11-requests+socks
  • python3.11-scipy
  • python3.11-setuptools
  • python3.11-setuptools-wheel
  • python3.11-six
  • python3.11-tkinter
  • python3.11-urllib3
  • python3.11-wheel
  • python3.12-PyMySQL+rsa
  • qgnomeplatform
  • qla4xxx
  • qt5
  • qt5-assistant
  • qt5-designer
  • qt5-devel
  • qt5-doctools
  • qt5-linguist
  • qt5-qdbusviewer
  • qt5-qt3d
  • qt5-qt3d-devel
  • qt5-qt3d-doc
  • qt5-qt3d-examples
  • qt5-qtbase
  • qt5-qtbase-common
  • qt5-qtbase-devel
  • qt5-qtbase-doc
  • qt5-qtbase-examples
  • qt5-qtbase-gui
  • qt5-qtbase-mysql
  • qt5-qtbase-odbc
  • qt5-qtbase-postgresql
  • qt5-qtbase-private-devel
  • qt5-qtbase-static
  • qt5-qtconnectivity
  • qt5-qtconnectivity-devel
  • qt5-qtconnectivity-doc
  • qt5-qtconnectivity-examples
  • qt5-qtdeclarative
  • qt5-qtdeclarative-devel
  • qt5-qtdeclarative-doc
  • qt5-qtdeclarative-examples
  • qt5-qtdeclarative-static
  • qt5-qtdoc
  • qt5-qtgraphicaleffects
  • qt5-qtgraphicaleffects-doc
  • qt5-qtimageformats
  • qt5-qtimageformats-doc
  • qt5-qtlocation
  • qt5-qtlocation-devel
  • qt5-qtlocation-doc
  • qt5-qtlocation-examples
  • qt5-qtmultimedia
  • qt5-qtmultimedia-devel
  • qt5-qtmultimedia-doc
  • qt5-qtmultimedia-examples
  • qt5-qtquickcontrols
  • qt5-qtquickcontrols-doc
  • qt5-qtquickcontrols-examples
  • qt5-qtquickcontrols2
  • qt5-qtquickcontrols2-devel
  • qt5-qtquickcontrols2-doc
  • qt5-qtquickcontrols2-examples
  • qt5-qtscript
  • qt5-qtscript-devel
  • qt5-qtscript-doc
  • qt5-qtscript-examples
  • qt5-qtsensors
  • qt5-qtsensors-devel
  • qt5-qtsensors-doc
  • qt5-qtsensors-examples
  • qt5-qtserialbus
  • qt5-qtserialbus-devel
  • qt5-qtserialbus-doc
  • qt5-qtserialbus-examples
  • qt5-qtserialport
  • qt5-qtserialport-devel
  • qt5-qtserialport-doc
  • qt5-qtserialport-examples
  • qt5-qtsvg
  • qt5-qtsvg-devel
  • qt5-qtsvg-doc
  • qt5-qtsvg-examples
  • qt5-qttools
  • qt5-qttools-common
  • qt5-qttools-devel
  • qt5-qttools-doc
  • qt5-qttools-examples
  • qt5-qttools-libs-designer
  • qt5-qttools-libs-designercomponents
  • qt5-qttools-libs-help
  • qt5-qttools-static
  • qt5-qttranslations
  • qt5-qtwayland
  • qt5-qtwayland-devel
  • qt5-qtwayland-doc
  • qt5-qtwayland-examples
  • qt5-qtwebchannel
  • qt5-qtwebchannel-devel
  • qt5-qtwebchannel-doc
  • qt5-qtwebchannel-examples
  • qt5-qtwebsockets
  • qt5-qtwebsockets-devel
  • qt5-qtwebsockets-doc
  • qt5-qtwebsockets-examples
  • qt5-qtx11extras
  • qt5-qtx11extras-devel
  • qt5-qtx11extras-doc
  • qt5-qtxmlpatterns
  • qt5-qtxmlpatterns-devel
  • qt5-qtxmlpatterns-doc
  • qt5-qtxmlpatterns-examples
  • qt5-rpm-macros
  • qt5-srpm-macros
  • raptor2
  • rasqal
  • redis
  • redis-devel
  • redis-doc
  • redland
  • rpmlint
  • runc
  • saab-fonts
  • sac
  • satyr
  • scap-workbench
  • SDL2
  • sendmail
  • sendmail-cf
  • sendmail-doc
  • setxkbmap
  • sgabios
  • sgabios-bin
  • sil-scheherazade-fonts
  • spamassassin
  • speech-tools-libs
  • suitesparse
  • sushi
  • team
  • teamd
  • texlive-xdvi
  • thai-scalable-fonts-common
  • thai-scalable-garuda-fonts
  • thai-scalable-kinnari-fonts
  • thai-scalable-loma-fonts
  • thai-scalable-norasi-fonts
  • thai-scalable-purisa-fonts
  • thai-scalable-sawasdee-fonts
  • thai-scalable-tlwgmono-fonts
  • thai-scalable-tlwgtypewriter-fonts
  • thai-scalable-tlwgtypist-fonts
  • thai-scalable-tlwgtypo-fonts
  • thai-scalable-umpush-fonts
  • thunderbird
  • tigervnc
  • tigervnc-icons
  • tigervnc-license
  • tigervnc-selinux
  • tigervnc-server
  • tigervnc-server-minimal
  • tigervnc-server-module
  • totem-pl-parser
  • tracer-common
  • ucs-miscfixed-fonts
  • usb_modeswitch
  • usb_modeswitch-data
  • usbredir-server
  • usermode-gtk
  • webkit2gtk3
  • webkit2gtk3-devel
  • webkit2gtk3-jsc
  • webkit2gtk3-jsc-devel
  • wpebackend-fdo
  • wpebackend-fdo-devel
  • xmlrpc-c
  • xmlsec1-gcrypt
  • xmlsec1-gcrypt-devel
  • xmlsec1-gnutls
  • xmlsec1-gnutls-devel
  • xorg-x11-drivers
  • xorg-x11-drv-dummy
  • xorg-x11-drv-evdev
  • xorg-x11-drv-fbdev
  • xorg-x11-drv-libinput
  • xorg-x11-drv-v4l
  • xorg-x11-drv-vmware
  • xorg-x11-drv-wacom
  • xorg-x11-drv-wacom-serial-support
  • xorg-x11-server-common
  • xorg-x11-server-utils
  • xorg-x11-server-Xdmx
  • xorg-x11-server-Xephyr
  • xorg-x11-server-Xnest
  • xorg-x11-server-Xorg
  • xorg-x11-server-Xvfb
  • xorg-x11-utils
  • xorg-x11-xbitmaps
  • xorg-x11-xinit
  • xorg-x11-xinit-session
  • xsane
  • xsane-common
  • xxhash
  • xxhash-libs
  • yajl
  • yelp
  • yelp-libs
  • yp-tools
  • ypbind
  • ypserv
  • zhongyi-song-fonts

第 10 章 已知问题

这部分论述了 Red Hat Enterprise Linux 9.7 中已知的问题。

10.1. 安装程序和镜像创建

authauthconfig Kickstart 命令需要 AppStream 软件仓库

authauthconfig Kickstart 命令在安装过程中需要 authselect-compat 软件包。如果没有这个软件包,如果使用了 authauthconfig,则安装会失败。但根据设计,authselect-compat 软件包只包括在 AppStream 仓库中。

临时解决方案:验证 BaseOS 和 AppStream 软件仓库可供安装程序使用,或者在安装过程中使用 authselect Kickstart 命令。

Jira:RHELPLAN-10061[1]

在 Anaconda 作为应用程序运行的系统中意外 SELinux 策略

当 Anaconda 作为应用程序运行在已安装的系统上(例如,使用 -image anaconda 选项对镜像文件执行另一次安装)时,不禁止系统在安装过程中修改 SELinux 类型和属性。因此,某些 SELinux 策略的元素可能会在运行Anaconda 的系统上发生更改。

临时解决方案:不要在生产环境中运行 Anaconda。相反,在临时虚拟机中运行 Anaconda,以使 SELinux 策略在生产系统上保持不变。作为系统安装过程的一部分运行 anaconda,如从 boot.isodvd.iso 安装不会受此问题的影响。

Jira:RHELPLAN-110940[1]

当使用使用第三方工具创建的 USB 引导安装时,不会检测 本地介质 安装源

当从使用第三方工具创建的 USB 引导 RHEL 安装时,安装程序无法检测到 本地介质 安装源(只检测 Red Hat CDN )。

出现这个问题的原因是,默认的引导选项 int.stage2= 会尝试搜索 iso9660 镜像格式。但是,第三方工具可能会创建具有不同格式的 ISO 镜像。

临时解决方案 :使用以下解决方案之一:

  • 当引导安装时,点击 Tab 键来编辑内核命令行,并将引导选项 inst.stage2= 改为 inst.repo=
  • 要在 Windows 中创建可引导 USB 设备,使用 Fedora Media Writer。
  • 当使用 Rufus 等第三方工具创建可引导的 USB 设备时,首先在 Linux 系统上重新生成 RHEL ISO 镜像,然后使用第三方工具创建可引导的 USB 设备。

有关执行任何指定的临时解决方案的步骤的更多信息,请参阅 安装介质在 RHEL 8.3 的安装过程中没有被自动探测到

Jira:RHELPLAN-53644[1]

USB CD-ROM 驱动器作为 Anaconda 中的安装源不可用

当源为 USB CD-ROM 驱动器,并且指定了 Kickstart ignoredisk --only-use= 命令时,安装会失败。在这种情况下,Anaconda 无法找到并使用这个源磁盘。

临时解决方案:使用 harddrive --partition=sdX --dir=/ 命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。

Jira:RHEL-4707

带有 iso9660 文件系统的硬盘分区安装失败

您不能在使用 iso9660 文件系统进行分区的系统中安装 RHEL。这是因为将设置为忽略包含 iso9660 文件系统分区的硬盘的更新安装代码。即使在没有使用 DVD 的情况下安装 RHEL,也会发生这种情况。

临时解决方案:在 Kickstart 文件中添加以下脚本,以在安装开始前格式化磁盘。

注:在执行临时解决方案前,请备份磁盘上的数据。erafs 命令对磁盘中的所有现有数据进行格式化。

%pre
wipefs -a /dev/sda
%end

因此,安装可以正常工作,且没有任何错误。

Jira:RHEL-4711

Anaconda 无法验证管理员用户帐户是否存在

在使用图形用户界面安装 RHEL 时,Anaconda 无法验证管理员帐户是否已创建。因此,用户可以在没有管理员用户帐户的情况下安装系统。

临时解决方案: 确保配置管理员用户帐户或 root 密码已设置,并且 root 帐户被解锁。因此,用户可以在安装的系统中执行管理任务。

Jira:RHELPLAN-110191[1]

新的 XFS 功能可防止使用比版本 5.10 更早的固件引导 PowerNV IBM POWER 系统

PowerNV IBM POWER 系统使用 Linux 内核进行固件,并使用 Petitboot 作为 GRUB 的替代。这会导致固件内核挂载 /boot,Petitboot 读取 GRUB 配置和引导 RHEL。

RHEL 9 内核为 XFS 文件系统引入了 bigtime=1inobtcount=1 功能,而使用比版本 5.10 旧固件的内核不理解。

临时解决方案:您可以对 /boot 使用另一个文件系统,例如 ext4。

Jira:RHELPLAN-94811[1]

安装过程有时将变为无响应

安装 RHEL 时,安装过程有时会变得无响应。/tmp/packaging.log 文件在末尾显示以下消息:

10:20:56,416 DDEBUG dnf: RPM transaction over.

临时解决方案:重启安装进程。

Jira:RHELPLAN-118420[1]

RHEL for Edge 安装程序镜像在安装 rpm-ostree 有效负载时无法创建挂载点

当部署 rpm-ostree 有效负载时,例如用于 RHEL for Edge 安装程序镜像,安装程序不能为自定义分区正确创建一些挂载点。因此,安装会停止并显示以下错误:

The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.

临时解决方案:

  • 使用自动分区方案,且不手动添加任何挂载点。
  • 只在 /var 目录中手动分配挂载点。例如: /var/my-mount-point 和以下标准目录://boot/var

因此,安装过程成功完成。

Jira:RHEL-4741

当连接到网络但没有配置 DHCP 或静态 IP 地址时,NetworkManager 无法在安装后启动

从 RHEL 9.0 开始,当没有设置特定的 ip= 或 Kickstart 网络配置时,Anaconda 会自动激活网络设备。Anaconda 为每个以太网设备创建默认的持久配置文件。连接配置文件的 ONBOOTautoconnect 值设为 true。因此,在启动安装的系统的过程中,RHEL 会激活网络设备,networkManager-wait-online 服务会失败。

临时解决方案 :请执行以下操作之一:

  • 使用 nmcli 工具删除所有连接,但您要使用的一个连接除外。例如:

    1. 列出所有连接配置文件:

      # nmcli connection show
    2. 删除您不需要的连接配置文件:

      # nmcli connection delete <connection_name>

      将 <connection_name> 替换为您要删除的连接的名称。

  • 如果没有设置特定的 ip= 或 Kickstart 网络配置,请在 Anaconda 中禁用自动连接网络功能。

    1. 在 Anaconda GUI 中,导航到 Network & Host Name
    2. 选择要禁用的网络设备。
    3. 单击 Configure
    4. General 选项卡中,取消 Connect automatically with priority 复选框。
    5. 点击 Save

Jira:RHELPLAN-130370[1]

Kickstart 安装无法配置网络连接

Anaconda 只能通过 NetworkManager API 执行 Kickstart 网络配置。Anaconda 在 %pre Kickstart 部分之后处理网络配置。因此,Kickstart %pre 部分中的一些任务被阻止。例如,因为网络配置不可用,从 %pre 部分中下载软件包会失败。

临时解决方案:

  • 配置网络,例如使用 nmcli 工具作为 %pre 脚本的一部分。
  • 使用安装程序引导选项为 %pre 脚本配置网络。

因此,可以对 %pre 部分中的任务使用网络,Kickstart 安装过程完成。

Jira:RHELPLAN-150080[1]

使用 stig 配置集补救构建的镜像无法使用 FIPS 错误引导

RHEL 镜像构建器不支持 FIPS 模式。当使用由 xccdf_org.ssgproject.content_profile_stig 配置文件补救自定义的 RHEL 镜像构建器时,系统无法引导,并显示以下错误:

Warning: /boot//.vmlinuz-<kernel version>.x86_64.hmac does not exist
FATAL: FIPS integrity test failed
Refusing to continue

在系统镜像安装后,使用 fips-mode-setup --enable 命令手动启用 FIPS 策略无法正常工作,因为 /boot 目录在不同的分区上。如果禁用了 FIPS,则系统可以成功引导。目前,还没有可用的临时解决方案。

注意

安装镜像后,您可以使用 fips-mode-setup --enable 命令手动启用 FIPS。

Jira:RHEL-4649

驱动程序磁盘菜单无法在控制台上显示用户输入

当您在带有驱动程序磁盘的内核命令行上使用 inst.dd 选项启动 RHEL 安装时,控制台将无法显示用户输入。因此,应用程序似乎没有响应用户输入,并停止响应,但会显示使用户混淆的输出。但是,此行为不会影响功能,用户输入会在按 Enter 后被注册。

临时解决方案:要看到预期的结果,请忽略控制台中没有用户输入,并在完成添加输入后按 Enter 键。

Jira:RHEL-4737

因为在 %packages 部分中缺少具有 systemd 服务文件的软件包,因此 kickstart 安装失败

如果 Kickstart 文件使用 services --enabled=…​ 指令启用 systemd 服务,且包含指定服务文件的软件包没有包含在 %packages 部分中,则 RHEL 安装过程失败,并显示以下错误:

Error enabling service <name_of_the_service>

临时解决方案:将对应的软件包与服务文件包含在 Kickstart 的 %packages 部分中。因此,RHEL 安装完成,在安装过程中启用了预期的服务。

Jira:RHEL-9633[1]

默认不扩展根文件系统

当使用不包括 cloud-init 的基本容器镜像来使用 bootc-image-builder 创建 AMI 或 QCOW2 容器镜像时,根文件系统大小不会在启动时动态扩展到提供的虚拟磁盘的完整大小。

临时解决方案:应用以下可用选项之一:

  • 在镜像中包含 cloud-init
  • 在容器镜像中包含自定义逻辑以扩展根文件系统,例如:
/usr/bin/growpart /dev/vda 4
unshare -m bin/sh -c 'mount -o remount,rw /sysroot && xfs_growfs /sysroot'
  • 包括一个自定义逻辑,以为辅助文件(例如 /var/lib/containers)系统使用额外的空间。
注意

默认情况下,物理根存储挂载在 /sysroot 分区。

Jira:RHEL-33208

无法从签名的容器构建 ISO

尝试从 GPG 或简单签名的容器构建 ISO 磁盘镜像会导致错误,如下所示:

manifest - failed
Failed
Error: cannot run osbuild: running osbuild failed: exit status 1
2024/04/23 10:56:48 error: cannot run osbuild: running osbuild failed: exit status 1

这是因为系统无法获得镜像签名。

临时解决方案:您可以从容器镜像中删除签名,或构建一个派生的容器镜像。例如,要删除签名,您可以运行以下命令:

$ sudo skopeo copy --remove-signatures containers-storage:registry.redhat.io/rhel9/rhel-bootc:9.4 containers-storage:registry.redhat.io/rhel9/rhel-bootc:9.4
$ sudo podman run \
       --rm \
       -it \
       --privileged \
       --pull=newer \
       --security-opt label=type:unconfined_t \
       -v /var/lib/containers/storage:/var/lib/containers/storage \
       -v ~/images/iso:/output \
       quay.io/centos-bootc/bootc-image-builder \
       --type iso --local \
       registry.redhat.io/rhel9/rhel-bootc:9.4

要构建派生的容器镜像,并避免向其添加简单的 GPG 签名,请参阅 签名容器镜像 产品文档。

Jira:RHEL-34807

Azure 上标记为 LVM 的 RHEL 镜像需要调整默认布局

当在 Azure 上使用 system-reinstall-bootcbootc install 时,标记为 LVM 的 RHEL 镜像需要调整默认布局。

临时解决方案:使用标记为 RAW 的 RHEL 镜像。这不需要调整默认布局。

Jira:RHELDOCS-19945[1]

bootc-image-builder 不支持从私有注册中心构建镜像

目前,您无法使用 bootc-image-builder 构建来自私有注册中心的基本磁盘镜像。

临时解决方案:将私有 registry 复制到您的 localhost 中,然后使用以下参数构建镜像:

  • --local
  • localhost/<image name>:tag 作为镜像

例如,要构建镜像:

sudo podman run \
--rm \
-it \
--privileged \
--pull=newer \
--security-opt label=type:unconfined_t \
-v ./config.toml:/config.toml \
-v ./output:/output \
-v /var/lib/containers/storage:/var/lib/containers/storage \
registry.redhat.io/rhel9/bootc-image-builder:latest
--type qcow2 \
--local \
quay.io/<namespace>/<image>:<tag>

Jira:RHELDOCS-18720[1]

救援模式下的 SELinux autorelabel 可能导致循环重启

救援 模式下访问文件系统会触发 SELinux 在下次引导时自动标记文件系统,这将继续,直到 SELinux 在 permissive 模式下运行。因此,在退出 救援 模式后,系统可能会进入无限循环重启,因为它无法删除 /.autorelabel 文件。

临时解决方案:在下次引导时将 enforcing=0 添加到内核命令行来切换到 permissive 模式。在 救援模式 下访问文件系统时,系统会显示一条警告消息来作为预防措施,告知可能出现此问题。

Jira:RHEL-14005

主机名解析由于引导选项中加密的 DNS 和自定义 CA 而失败

当在内核命令行中使用 inst.repo=inst.stage2= 引导选项以及远程安装 URL、加密的 DNS 和 Kickstart 文件中的自定义 CA 证书时,安装程序会在处理 kickstart 文件前尝试下载 install.img stage2 镜像。因此,主机名解析失败,从而导致在成功获取 stage2 镜像前显示一些错误。

临时解决方案:在 kickstart 文件而不是内核命令行中定义安装源。

Jira:RHEL-80867

将设备与 LACP 绑定需要更长的时间才能正常工作,从而导致订阅失败

当使用内核命令行引导选项和 Kickstart 文件配置与 LACP 绑定的设备时,会在 initramfs 阶段创建连接,但在 Anaconda 中重新激活。因此,它会导致临时中断,从而通过 rhsm Kickstart 命令造成系统订阅失败。

临时解决方案:将 -no-activate 添加到 Kickstart 网络配置,以保持网络正常工作。因此,系统订阅成功完成。

Jira:RHELDOCS-19852[1]

services Kickstart 命令无法禁用 firewalld 服务

Anaconda 中的一个 bug 阻止 services --disabled=firewalld 命令在 Kickstart 中禁用 firewalld 服务。

临时解决方案 :改为使用 firewall --disabled 命令。因此,firewalld 服务被正确禁用。

Jira:RHEL-82566

ignoredisk 命令在 iscsi 命令时,Kickstart 安装会失败并显示未知磁盘错误

如果 iscsi 命令放在 ignoredisk 命令之前,则使用 kickstart 方法安装 RHEL 会失败。出现这个问题的原因是 iscsi 命令在命令解析过程中附加了指定的 iSCSI 设备,而 ignoredisk 命令同时解析设备规范。如果 ignoredisk 命令在 iscsi 命令附加之前引用了一个 iSCSI 设备名称,则安装会失败,并显示"unknown disk"错误。

临时解决方案:确保 iscsi 命令在 Kickstart 文件中被放置在 ignoredisk 命令之前,以引用 iSCSI 磁盘,并确保安装成功。

Jira:RHEL-13837

如果在使用 ostreecontainer 时没有创建 /boot 分区,则安装程序会失败

当使用 ostreecontainer Kickstart 命令安装可引导容器时,如果没有创建 /boot 分区,安装会失败。出现这个问题的原因是,安装程序需要一个专用的 /boot 分区来继续容器部署。

临时解决方案:确保在 Kickstart 文件中定义了一个 /boot 分区或者在安装过程中手动创建。

Jira:RHEL-66155

磁盘空间不足可能导致部署失败

在没有足够可用磁盘空间的软件包模式系统上部署 bootc 容器镜像可能会导致安装错误,并阻止系统引导。确保有足够的磁盘空间供镜像安装,并在部署前调整配置的逻辑卷。

Jira:RHELDOCS-19948[1]

Anaconda 在 s390xppc64le 构架上可能无法正常工作

除了已经支持的 x86_64 和 ARM 架构外,RHEL 的镜像模式支持 pp64les390x 架构。但是,Anaconda 可能在 s390x 和 ppc64le 构架上无法正常工作。

Jira:RHELDOCS-19496[1]

reboot --kexecinst.kexec 命令不提供可预测的系统状态

使用 reboot --kexec Kickstart 命令或 inst.kexec 内核引导参数执行 RHEL 安装不会提供与完全重启相同的可预期系统状态。因此,在不重启的情况下切换安装的系统可能会导致无法预计的结果。

请注意,kexec 功能已弃用,并将在以后的 Red Hat Enterprise Linux 版本中删除。

Jira:RHELDOCS-20471[1]

bootc 安装现在检查有足够的磁盘空间

在以前的版本中,由于在安装过程中可用空间不足,bootc 安装会失败,从而导致系统无法引导。在这个版本中,bootc 安装会在覆盖主机根文件系统前检查足够的磁盘空间。因此,在 bootc 安装过程中无法分配空间已被解决,确保系统正常引导。

Jira:RHEL-90381

10.2. 安全性

OpenSSL 不会检测 PKCS #11 令牌是否支持原始 RSA 或 RSA-PSS 签名的创建

TLS 1.3 协议需要支持 RSA-PSS 签名。如果 PKCS #11 令牌不支持原始 RSA 或 RSA-PSS 签名,如果密钥由 PKCS#11 令牌保存,则使用 OpenSSL 库的服务器应用程序将无法使用 RSA 密钥。因此,在上述场景中 TLS 通信会失败。

临时解决方案:将服务器和客户端配置为使用 TLS 版本 1.2 作为可用最高 TLS 协议版本。

Jira:RHELPLAN-50959[1]

OpenSSL 错误处理 PKCS #11 tokens 不支持原始 RSA 或 RSA-PSS 签名

OpenSSL 库不会检测到 PKCS #11 令牌的与键相关的功能。因此,当使用不支持原始 RSA 或 RSA-PSS 签名的令牌创建签名时,建立 TLS 连接会失败。

临时解决方案:在 /etc/pki/tls/openssl.cnf 文件的 crypto_policy 部分末尾的 .include 行后面添加以下行:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
MaxProtocol = TLSv1.2

因此,可以在描述的场景中建立 TLS 连接。

Jira:RHELPLAN-48241[1]

使用特定语法,scp 会清空复制到其自身的文件

scp 实用程序从安全复制协议 (SCP) 改为更安全的 SSH 文件传输协议 (SFTP)。因此,将文件从位置复制到同一位置,从而擦除文件内容。此问题会产生以下语法:

scp localhost:/myfile localhost:/myfile

临时解决方案:不要使用此语法将文件复制到与源位置相同的目标。

这个问题已针对以下语法解决:

  • scp /myfile localhost:/myfile
  • scp localhost:~/myfile ~/myfile

Jira:RHELPLAN-113842[1]

OSCAP Anaconda 附加组件不会在图形安装中获取定制的配置文件

OSCAP Anaconda 附加组件不提供一个选项,来在 RHEL 图形安装中选择或取消选择安全配置文件的定制。从 RHEL 8.8 开始,当从存档或 RPM 软件包安装时,附加组件不会考虑定制。因此,安装会显示以下出错信息,而不是获取 OSCAP 定制的配置文件:

There was an unexpected problem with the supplied content.

临时解决方案:您必须在 Kickstart 文件的 %addon org_fedora_oscap 部分中指定路径,例如:

xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml
tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml

因此,您只能将用于 SCAP 定制的配置文件的图形安装与相应的 Kickstart 规格一起使用。

Jira:RHEL-1824

Ansible 补救需要额外的集合

ansible-core 软件包替换 Ansible Engine 时,RHEL 订阅提供的 Ansible 模块的列表会减少。因此,运行使用包含在 scap-security-guide 软件包中的 Ansible 内容的补救需要来自 rhc-worker-playbook 软件包的集合。

对于 Ansible 补救,请执行以下步骤:

  1. 安装所需的软件包:

    # dnf install -y ansible-core scap-security-guide rhc-worker-playbook
  2. 进到 /usr/share/scap-security-guide/ansible 目录:

    # cd /usr/share/scap-security-guide/ansible
  3. 运行使用环境变量的相关 Ansible playbook,这些变量定义了到额外 Ansible 集合的路径:

    # ANSIBLE_COLLECTIONS_PATH=/usr/share/rhc-worker-playbook/ansible/collections/ansible_collections/ ansible-playbook -c local -i localhost, rhel9-playbook-cis_server_l1.yml

    cis_server_l1 替换为您要修复系统的配置文件的 ID。

因此,Ansible 内容会被正确处理。

注意

rhc-worker-playbook 中提供的集合的支持仅限于启用 scap-security-guide 中提供的 Ansible 内容。

Jira:RHEL-1800

Keylime 不接受串联的 PEM 证书

当 Keylime 将证书链作为 PEM 格式的、串联在一个文件中的多个证书接收时,keylime-agent-rust Keylime 组件在签名验证过程中不能正确地使用所有提供的证书,导致 TLS 握手失败。因此,客户端组件(keylime_verifierkeylime_tenant)无法连接到 Keylime 代理。

临时解决方案:只使用一个证书而不是多个证书。

Jira:RHELPLAN-157225[1]

Keylime 拒绝其摘要以反斜杠开头的运行时策略

生成运行时策略的当前脚本 create_runtime_policy.sh,使用 SHA 校验函数,如 sha256sum ,来计算文件摘要。但是,当输入的文件名包含反斜杠或 \n 时,校验和函数会在其输出中的摘要前添加一个反斜杠。在这种情况下,生成的策略文件的格式不正确。提供错误格式的策略文件时,Keylime 租户会产生以下或类似错误消息:me.tenant - ERROR - Response code 400: Runtime policy is malformat

临时解决方案:输入以下命令从格式策略文件中手动删除反斜杠: sed -i 's/^\\//g' <malformed_file_name>

Jira:RHEL-11867[1]

更新后,Keylime 代理拒绝来自验证器的请求

当 Keylime 代理的 API 版本号(keylime-agent-rust)已更新时,代理会拒绝使用不同版本的请求。因此,如果 Keylime 代理被添加到验证器中,然后被更新,则验证器会尝试使用旧的 API 版本联系代理。代理拒绝此请求并使认证失败。

临时解决方案:在更新代理(keylime-agent-rust)前更新验证器(keylime-verifier)。因此,当代理被更新时,verifier 会检测 API 更改,并相应地更新其存储的数据。

Jira:RHEL-1518[1]

trustdb 中缺失的文件导致拒绝 fapolicyd

当使用 Ansible DISA STIG 配置文件安装了 fapolicyd 时,一个竞争条件导致 trustdb 数据库与 rpmdb 数据库不同步。因此,trustdb 中缺失的文件导致在系统上被拒绝。

临时解决方案:重启 fapolicyd 或再次运行 Ansible DISA STIG 配置集。

Jira:RHEL-24345[1]

fapolicyd 工具错误地允许执行更改的文件

在对文件进行任何更改后,文件的 IMA 哈希应该正确更新,fapolicyd 应该阻止更改的文件的执行。但是,这不会因为 IMA 策略设置与通过 evctml 程序哈希的文件中的差异而发生。因此,IMA 哈希没有在更改的文件的扩展属性中被更新。因此,fapolicyd 错误地允许更改的文件的执行。

Jira:RHEL-520[1]

使用 MLDSA-87 签名的 RPM 软件包无法在 FIPS 模式中安装

post-quantum 加密(PQC)算法没有 FIPS 验证,且在 FIPS 供应商中不可用。这会导致 MLDSA-87 PQC 密钥导入到 RPM 数据库中,PQC 签名验证在 FIPS 模式下失败。

临时解决方案:不要启用 DNF 插件在 FIPS 模式中支持 PQC 签名。因此,系统会通过典型的签名验证 FIPS 模式中的软件包。

Jira:RHEL-111478[1]

Openssl 不再创建 X.509 v1 证书

在 RHEL 9.5 中引入 OpenSSL TLS 工具包 3.2.1 后,您无法再使用 openssl CA 工具创建 X.509 版本 1 格式的证书。X.509 v1 格式不符合当前的 Web 要求。

Jira:RHEL-40605

OpenSSH 不再在身份验证之前记录超时

OpenSSH 在验证 $IP port $PORT 之前不会将超时记录到日志中。这可能很重要,因为 Fail2Ban 入侵防御守护进程和类似的系统在其 mdre-ddos 正则表达式中使用这些日志记录,并且不再禁止尝试此类攻击的客户端 IP。目前对此问题还没有已知的临时解决方案。

Jira:RHEL-45727

更新 NSS 数据库密码会破坏 ML-DSA seed

生成 ML-DSA 密钥以 seed 开头,这足以派生该密钥。但是,也可以扩展密钥来加快后续操作。如果您在 NSS 数据库中有 ML-DSA 密钥,要么生成或导入,则扩展格式和 seed 可能存储。由于 NSS 如何处理数据库重新加密,如果更改了数据库密码,则不会更新 seed 属性来容纳新密码,并且其值将永久丢失,即使了解之前的密码也是如此。

要临时解决这个问题,请在更新密码前导出密钥并在更新后重新导入它。

Jira:RHEL-127671[1]

默认 SELinux 策略允许无限制的可执行文件使其堆栈可执行

SELinux 策略中的 selinuxuser_execstack 布尔值的默认状态是 on,这意味着无限制的可执行文件可以使其堆栈为可执行。可执行文件不应该使用这个选项,这通常代表开发的可执行代码的质量较差,或可能存在安全攻击的风险。但是,由于需要与其他工具、软件包和第三方产品保持兼容,红帽无法更改默认策略中的这个布尔值。如果您的环境没有此类兼容性问题,请使用 setsebool -P selinuxuser_execstack off 命令在您的本地策略中将这个布尔值设置为 off。

Jira:RHELPLAN-115609[1]

STIG 配置文件中的 SSH 超时规则配置了不正确的选项

对 OpenSSH 的更新会影响以下 Defense Information Systems Agency Security Technical Implementation Guide (DISA STIG) 配置集中的规则:

  • DISA STIG for RHEL 9 (xccdf_org.ssgproject.content_profile_stig)
  • DISA STIG with GUI for RHEL 9 (xccdf_org.ssgproject.content_profile_stig_gui)

在每个配置集中,以下两条规则会受到影响:

Title: Set SSH Client Alive Count Max to zero
CCE Identifier: CCE-90271-8
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_keepalive_0

Title: Set SSH Idle Timeout Interval
CCE Identifier: CCE-90811-1
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_idle_timeout

当应用到 SSH 服务器时,每个规则都会配置一个选项(ClientAliveCountMaxClientAliveInterval),其行为不再像之前一样。因此,当 OpenSSH 达到这些规则配置的超时时,OpenSSH 不再断开空闲的 SSH 用户。

临时解决方案:这些规则已从 DISA STIG for RHEL 9 和 DISA STIG with GUI for RHEL 9 配置集中临时删除,直到开发出解决方案为止。

Jira:RHELPLAN-107318[1]

GnuPG 错误地允许使用 SHA-1 签名,即使通过 crypto-policies 禁止使用 SHA-1 签名

无论系统范围的加密策略中定义的设置如何,GNU Privacy Guard(GnuPG)加密软件可以创建和验证使用 SHA-1 算法的签名。因此,您可以在 DEFAULT 加密策略中将 SHA-1 用于加密目的,这与这个不安全算法的系统范围弃用没有一致的。

临时解决方案:不要使用涉及 SHA-1 的 GnuPG 选项。因此,您将使用不安全的 SHA-1 签名来防止 GnuPG 降低默认的系统安全性。

Jira:RHELPLAN-117566[1]

OpenSCAP 内存消耗问题

在内存有限的系统上,OpenSCAP 扫描程序可能过早停止,或者可能没有生成结果文件。要临时解决这个问题,您可以自定义扫描配置文件,以取消选择涉及递归整个 / 文件系统的规则:

  • rpm_verify_hashes
  • rpm_verify_permissions
  • rpm_verify_ownership
  • file_permissions_unauthorized_world_writable
  • no_files_unowned_by_user
  • dir_perms_world_writable_system_owned
  • file_permissions_unauthorized_suid
  • file_permissions_unauthorized_sgid
  • file_permissions_ungroupowned
  • dir_perms_world_writable_sticky_bits

临时解决方案:请参阅 相关的知识库文章

Jira:RHELPLAN-145263[1]

在 kickstart 安装过程中修复与服务相关的规则可能会失败

在 kickstart 安装过程中,OpenSCAP 工具有时会错误地显示服务的 enabledisable 状态补救不需要。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。

临时解决方案:您可以在 kickstart 安装后扫描并修复系统。这可以解决与服务相关的问题。

Jira:RHELPLAN-44202[1]

FIPS:OSPP 主机的互操作性由于 CNSA 1.0 受到了影响

OSPP 子策略已与 Commercial National Security Algorithm (CNSA) 1.0 一致。这在以下主要方面影响了使用 FIPS:OSPP 策略-子策略组合的主机的互操作性:

  • 最小 RSA 密钥大小被强制为 3072 位。
  • 算法协商不再支持 AES-128 密码、secp256r1 椭圆曲线和 FFDHE-2048 组。

Jira:RHEL-2735[1]

SELinux 策略中缺少规则阻止了对 SQL 数据库的权限

SELinux 策略中缺少规则阻止了连接到 SQL 数据库。因此,FIDO Device Onboard (FDO)服务 fdo-manufacturing-server.servicefdo-owner-onboarding-server.servicefdo-rendezvous-server.service 无法连接到 FDO 数据库,如 PostgreSQL 和 SQLite。因此,系统无法通过使用支持凭证和其他参数的数据库(如存储所有权凭证)来启动 FDO 。

临时解决方案:执行以下步骤:

  1. 创建一个名为 local_fdo_update.cil 的新文件,并输入缺少的 SELinux 策略规则:

    (allow fdo_t etc_t (file (write)))
    (allow fdo_t fdo_conf_t (file (append create rename setattr unlink write )))
    (allow fdo_t fdo_var_lib_t (dir (add_name remove_name write )))
    (allow fdo_t fdo_var_lib_t (file (create setattr unlink write )))
    (allow fdo_t krb5_keytab_t (dir (search)))
    (allow fdo_t postgresql_port_t (tcp_socket (name_connect)))
    (allow fdo_t sssd_t (unix_stream_socket (connectto)))
    (allow fdo_t sssd_var_run_t (sock_file (write)))
  2. 安装策略模块软件包:

    # semodule -i local_fdo_update.cil

因此,FDO 可以连接到 PostgreSQL 数据库,并修复 /var/lib/fdo/ 上与 SQLite 权限相关的问题,其中 SQLite 数据库文件应该位于此目录中。

Jira:RHEL-28814[1]

rpm-sequoia 的 PQC 始终在 crypto-policies中启用

在 RHEL 10.1 中,如果系统范围的加密策略中禁用了用于签名的算法之一,rpm-sequoia 无法验证双签名的 RPM 软件包。这个问题在禁用 post-quantum (PQ)算法的系统中很常见,且无法安装使用经典和 PQ 加密签名的软件包。

为了防止破坏系统,rpm-sequoia 的 PQ 算法在 加密策略级别 被硬编码。因此,无论 crypto-policies 中的任何设置是什么,rpm-sequoia 的 PQ 算法都会被启用。

Jira:RHEL-112697

10.3. 软件管理

在本地仓库上运行 createrepo_c 会产生重复的 repodata 文件

当您在本地存储库上运行 createrepo_c 命令时,它会产生 repodata 文件的重复副本,其中一个副本是压缩的,另一个副本不是。

临时解决方案:没有可用的临时解决方案,但可以安全地忽略重复的文件。createrepo_c 命令会产生重复的副本,因为其他工具中的要求和差异依赖于使用 createrepo_c 创建的存储库。

Jira:RHELPLAN-112860[1]

在通过升级更改其架构的软件包时,安全 DNF 升级会失败

BZ#2108969, 的补丁(通过 RHBA-2022:8295 公共提供)存在以下的回归问题:对于通过升级使其架构更改为 noarch 或从其更改,则使用 DNF 升级安全过滤器会失败。因此,它可以使系统处于存在安全漏洞的状态。

要临时解决这个问题,执行没有安全过滤器的常规升级。

Jira:RHELPLAN-128381[1]

10.4. Shell 和命令行工具

设置控制台 keymap 在最小安装上需要 libxkbcommon

在 RHEL 9 中,某些 systemd 库依赖项已从动态链接转换为动态加载,以便您的系统在运行时打开并使用库(当它们可用时)。有了这个更改,除非您安装必要的库,否则无法使用依赖于此类库的功能。这也会影响在最小安装的系统上设置键盘布局。因此,localectl --no-convert set-x11-keymap gb 命令会失败。

临时解决方案:安装 libxkbcommon 库:

# dnf install libxkbcommon

Jira:RHEL-6105

sysstat 软件包中的 %vmeff 指标显示不正确的值

sysstat 软件包提供 %vmeff 指标来测量页面回收效率。sar -B 命令返回的 %vmeff 列的值不正确,因为 sysstat 不会解析后续内核版本提供的所有相关的 /proc/vmstat 值。

临时解决方案:您可以从 /proc/vmstat 文件中手动计算 %vmeff 值。详情请查看 为什么在 RHEL 8 和 RHEL 9 中 sar (1) 工具报告 %vmeff 值超过 100 % ?

Jira:RHEL-12009

服务位置协议(SLP)易受到通过 UDP 的攻击

OpenSLP 为本地区域网络中的应用程序提供动态配置机制,如打印机和文件服务器。但是,SLP 会受到通过连接到互联网的系统上的 UDP 的反射性拒绝服务放大攻击。SLP 允许未经身份验证的攻击者注册新服务,而不受由 SLP 实现设置的限制。通过使用 UDP 和欺骗源地址,攻击者可以请求服务列表,在欺骗地址上创建拒绝服务。

要防止外部攻击者访问 SLP 服务,请在不受信任的网络上运行的所有系统上禁用 SLP,比如那些直接连接到互联网的系统。

临时解决方案:配置防火墙以阻止或过滤 UDP 和 TCP 端口 427 上的流量。

Jira:RHEL-6995[1]

启用了安全引导的 UEFI 系统上的 ReaR 救援镜像无法使用默认设置引导

使用 rear mkrescuerear mkbackup 命令创建 ReaR 镜像失败,并显示以下信息:

grub2-mkstandalone may fail to make a bootable EFI image of GRUB2 (no /usr/*/grub*/x86_64-efi/moddep.lst file)
(...)
grub2-mkstandalone: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.

缺少的文件是 grub2-efi-x64-modules 软件包的一部分。如果您安装此软件包,则会成功创建救援镜像,且没有任何错误。当启用了 UEFI 安全引导时,救援镜像无法引导,因为它使用未签名的引导装载程序。

临时解决方案:在 /etc/rear/local.conf/etc/rear/site.conf ReaR 配置文件中添加以下变量:

UEFI_BOOTLOADER=/boot/efi/EFI/redhat/grubx64.efi
SECURE_BOOT_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi

使用推荐的临时解决方案,即使在没有 grub2-efi-x64-modules 软件包的系统上也可以成功生成镜像,它可在启用了安全引导的系统上启动。另外,在系统恢复过程中,恢复的系统的引导加载程序被设置为 EFI shim 引导装载程序。

有关 UEFI安全引导shim 引导装载程序 的更多信息,请参阅 UEFI:引导系统时会发生什么 知识库文章。

Jira:RHELDOCS-18064[1]

sariostat 工具产生的 %util 列无效

当您使用 sariostat 工具收集系统使用率统计时,sariostat 产生的 %util 列可能包含无效的数据。

Jira:RHEL-26275[1]

RHEL 9 中不提供 lsb-release 二进制文件

/etc/os-release 中的信息之前可以通过调用 lsb-release 二进制文件得到。此二进制文件包含在 redhat-lsb 软件包中,该软件包已在 RHEL 9 中删除。现在,您可以通过读取 /etc/os-release 文件来显示操作系统的信息,如分发、版本、代码名和相关元数据。此文件由红帽提供,对该文件的任何更改都会被 redhat-release 软件包的更新所覆盖。文件的格式是 KEY=VALUE,您可以安全地为 shell 脚本提供数据。

Jira:RHELDOCS-16427[1]

10.5. 基础架构服务

libotr 与 FIPS 不兼容

libotr 库和非记录(OTR)消息的工具包为即时消息会话提供了端到端加密。但是,由于其使用了 gcry_pk_sign()gcry_pk_verify() 函数,libotr 库不符合联邦信息处理标准(FIPS)。因此,您无法在 FIPS 模式下使用 libotr 库。

Jira:RHELPLAN-122108[1]

为 MariaDB 和 MySQL 使用不正确的 Perl 数据库驱动程序可能会导致意外的结果

MariaDB 数据库是 MySQL 的一个分叉。随着时间的推移,这些服务独立开发,且不再完全兼容。这些差异也会影响 Perl 数据库驱动程序。因此,如果您在 Perl 应用程序使用 DBD::mysql 驱动程序连接到 MariaDB 数据库,或者使用 DBD::MariaDB 驱动程序连接到 MySQL 数据库,则操作可能会导致意外的结果。例如,驱动程序可以从读操作中返回不正确的数据。要避免这样的问题,请在应用程序中使用与数据库服务匹配的 Perl 驱动程序。

红帽只支持以下场景:

  • MariaDB 数据库的 Perl DBD::MariaDB
  • MySQL 数据库的 Perl DBD::mysql 驱动程序

请注意,RHEL 8 仅包含 DBD::mysql 驱动程序。如果您计划升级到 RHEL 9,然后升级到 RHEL 10,且您的应用程序使用 MariaDB 数据库,请在升级后安装 perl-DBD-MariaDB 软件包,并修改应用程序以使用 DBD::MariaDB 驱动程序。

详情请查看红帽知识库解决方案 支持 Perl db 驱动程序的 MariaDB/MySQL 跨数据库连接

Jira:RHELDOCS-19728[1]

默认情况下,在 IBM Z 上运行的虚拟机无法使用热插内存

RHEL 提供了默认的 udev 规则,当您使用 virtio-mem 的虚拟机(VM)热插内存时,会自动配置内存。但是,当前的 udev 规则不包括在 IBM Z 上运行的虚拟机。因此,在热插内存到使用 virtio-mem 的 IBM Z 上运行的虚拟机后,虚拟机中不会立即提供内存。

要临时解决这个问题,请在虚拟机中设置 memhp_default_state=online 内核参数并重启它。例如:

# grubby --update-kernel=ALL --args=memhp_default_state=online

因此,虚拟机中提供了热插内存。

Jira:RHEL-92781

10.6. 网络

KTLS 不支持将 TLS 1.3 卸载到 NIC

内核传输层安全(kTLS)不支持将 TLS 1.3 卸载到 NIC。因此,即使 NIC 支持 TLS 卸载,软件加密也会与 TLS 1.3 一起使用。

临时解决方案:如果需要卸载,请禁用 TLS 1.3。因此,您只能卸载 TLS 1.2。当使用 TLS 1.3 时,性能较低,因为无法卸载 TLS 1.3。

Jira:RHELPLAN-96004[1]

更新会话密钥失败会导致连接中断

内核传输层安全(kTLS)协议不支持更新会话密钥,这些密钥由对称密码使用。因此,用户无法更新密钥,从而导致连接中断。

临时解决方案:禁用 kTLS。因此,解决这一问题,可以成功更新会话密钥。

Jira:RHELPLAN-99859[1]

使用 ifcfg 文件重命名网络接口失败

在 RHEL 9 中,默认情况下不会安装 initscripts 软件包。因此,使用 ifcfg 文件重命名网络接口会失败。

临时解决方案:要解决这个问题,红帽建议您使用 udev 规则或链接文件来重命名接口。详情请查看 Consistent 网络接口设备命名systemd.link(5) man page。

如果您无法使用推荐的解决方案之一,请安装 initscripts 软件包。

Jira:RHELPLAN-100926[1]

默认情况下不安装 initscripts 软件包

默认情况下,不会安装 initscripts 软件包。因此,ifupifdown 工具不可用。

临时解决方案:作为替代方案,使用 nmcli connection upnmcli connection down 命令来启用和禁用连接。如果这个替代方法无法正常工作,请报告这个问题并安装 NetworkManager-initscripts-updown 软件包,该软件包为 ifupifdown 工具提供了一个 NetworkManager 解决方案。

Jira:RHELPLAN-121205[1]

iwl7260-firmware 会导致 Intel Wi-Fi 6 AX200、AX210 和 Lenovo ThinkPad P1 Gen 4 上的 Wi-Fi 问题

如果您将 iwl7260-firmwareiwl7260-wifi 驱动程序更新至 RHEL 9.1 或更高版本提供的版本,则硬件可能会进入不正确的状态,并错误地报告其状态。因此,Intel Wi-Fi 6 卡可能无法正常工作,并显示以下出错信息:

kernel: iwlwifi 0000:09:00.0: Failed to start RT ucode: -110
kernel: iwlwifi 0000:09:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms)
kernel: iwlwifi 0000:09:00.0: Failed to run INIT ucode: -110

临时解决方案:未确认的解决方法是完全关闭系统,然后再将其打开。不要执行重启。

Jira:RHELPLAN-134771[1]

在 PF 重置过程中出现 DPLL 稳定性的问题

Digital Phase-Locked Loop (DPLL)系统遇到了一些问题,包括未初始化的互斥锁使用情况和 pin 阶段调整的错误处理,特别是在物理功能(PF)重置过程中。这些问题导致 DPLL 和 pin 配置的不稳定的管理,导致数据状态不一致和连接管理不善。

临时解决方案 :要解决这个问题,mutexes 被正确初始化,在 PF 重置过程中更新 pin 阶段调整、DPLL 数据和连接状态的机制已被修正。因此,DPLL 系统现在可以在重置过程中可靠地执行,并具有准确的阶段调整和一致的连接状态,提高了时钟同步的整体稳定性。

Jira:RHEL-36283[1]

10.7. 内核

当从 4k 迁移到 64k 页大小内核时,依赖内核页大小的客户应用程序可能需要更新

RHEL 与 4k 和 64k 页大小内核都兼容。当从 4k 迁移到 64k 页大小内核时,依赖 4k 内核页大小的客户应用程序可能需要更新。已知的实例包括 jemalloc 和依赖的应用程序。

jemalloc 内存分配器库对系统运行时环境中使用的页大小敏感。库可以构建成与 4k 和 64k 页大小内核兼容,例如,当使用 --with-lg-page=16env JEMALLOC_SYS_WITH_LG_PAGE=16 配置时(用于 jemallocator Rust crate)。因此,运行时环境的页大小与编译依赖于 jemalloc 的二进制文件时出现的页大小之间可能会出现不匹配。因此,使用基于 jemalloc 的应用程序会触发以下错误:

<jemalloc>: Unsupported system page size

临时解决方案: 要避免这个问题,请使用以下方法之一:

  • 使用合适的构建配置或环境选项来创建 4k 和 64k 页大小兼容二进制文件。
  • 在引导到最后的 64k 内核和运行时环境后,构建任何使用 jemalloc 的用户空间软件包。

例如,您可以构建 fd-find 工具,该工具也通过 cargo Rust 软件包管理器使用 jemalloc。在最后的 64k 环境中,输入 cargo 命令触发所有依赖项的新构建,以解决页大小中的不匹配:

# cargo install fd-find --force

Jira:RHELPLAN-147783[1]

使用 dnf 升级到最新的实时内核不会并行安装多个内核版本

使用 dnf 软件包管理器安装最新的实时内核需要解决软件包依赖,来同时保留新的和当前的内核版本。默认情况下,dnf 在升级过程中删除旧的 kernel-rt 软件包。

临时解决方案:将当前的 kernel-rt 软件包添加到 /etc/yum.conf 配置文件中的 installonlypkgs 选项,例如 installonlypkgs=kernel-rt

installonlypkgs 选项将 kernel-rt 附加到 dnf 使用的默认列表中。installonlypkgs 指令中列出的软件包不会被自动删除,因此支持多个内核版本来同时安装。

请注意,安装了多个内核是一种在使用新内核版本时具有回退选项的方法。

Jira:RHELPLAN-153123[1]

默认情况下,Delay Accounting 功能不会显示 SWAPINIO% 统计列

Delayed Accounting 功能与早期版本不同,它们会被默认禁用。因此,iotop 应用程序不显示 SWAPINIO% 统计列,并显示以下警告:

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO%

Delay Account 功能使用 taskstats 接口,为属于线程组的所有任务或线程提供延迟统计。当任务等待 kernel 资源可用时,会延迟执行,例如:等待空闲 CPU 运行的任务。统计有助于设置任务的 CPU 优先级、I/O 优先级和 rss 限制值。

临时解决方案:您可以在运行时或引导时启用 delayacct 引导选项。

  • 要在运行时启用 delayacct,请输入:

    echo 1 > /proc/sys/kernel/task_delayacct

    请注意,这个命令可启用系统范围功能,但只适用于您在运行此命令后启动的任务。

  • 要在引导时永久启用 delayacct,请使用以下步骤之一:

因此,iotop 应用程序会显示 SWAPINIO% 统计列。

Jira:RHELPLAN-135779[1]

具有大核数的系统上实时内核的硬件认证可能需要传递 skew-tick=1 引导参数

具有大量插槽和大核数的大型或中型系统可能会因为对 xtime_lock(其在计时系统中使用)的锁争用而遇到延迟峰值。因此,硬件认证中的延迟峰值和延迟可能会在多处理系统上发生。

临时解决方案:您可以通过添加 skew_tick=1 引导参数来偏移每个 CPU 的计时器选择,以便在不同的时间启动。

要避免锁冲突,请启用 skew_tick=1

  1. 使用 grubby 启用 skew_tick=1 参数。

    # grubby --update-kernel=ALL --args="skew_tick=1"
  2. 重启以使更改生效。
  3. 通过显示您在启动过程中传递的内核参数来验证新设置。

    cat /proc/cmdline

请注意,启用 skew_tick=1 会导致功耗的大量增加,因此只有在运行延迟敏感实时工作负载时才必须启用它。

Jira:RHEL-9318[1]

kdump 机制无法捕获 LUKS 加密目标上的 vmcore 文件

当在使用 Linux Unified Key Setup(LUKS)加密分区的系统中运行 kdump 时,系统需要特定的可用内存。当可用内存小于所需内存量时,systemd-cryptsetup 服务将无法挂载分区。因此,第二个内核无法捕获 LUKS 加密目标上的崩溃转储文件。

临时解决方案:查询 推荐的 crashkernel 值,并将内存大小逐渐增加到适当的值。推荐的 crashkernel 值 可作为设置所需内存大小的参考。

  1. 打印估计的崩溃内核值。

    # kdumpctl estimate
  2. 通过增加 crashkernel 值来配置所需的内存量。

    # grubby --args=crashkernel=652M --update-kernel=ALL
  3. 重启系统以使更改生效。

    # reboot

因此,kdump 在带有 LUKS 加密分区的系统上可以正常工作。

Jira:RHEL-11196[1]

kdump 服务无法在 IBM Z 系统中构建 initrd 文件

在 64 位 IBM Z 系统中,当 znet 相关配置信息(如 s390-subchannels )位于不活跃 NetworkManager 连接配置集时,kdump 服务无法加载初始 RAM 磁盘 (initrd)。因此,kdump 机制会失败并显示以下错误:

dracut: Failed to set up znet
kdump: mkdumprd: failed to make kdump initrd

作为临时解决方案,请使用以下解决方案之一:

  • 通过重新使用具有 znet 配置信息的连接配置集来配置网络绑定或桥接:

    $ nmcli connection modify enc600 master bond0 slave-type bond
  • znet 配置信息从不活跃连接配置集复制到活跃连接配置集中:

    1. 运行 nmcli 命令查询 NetworkManager 连接配置集:

      # nmcli connection show
      
      NAME                       UUID               TYPE   Device
      
      bridge-br0           ed391a43-bdea-4170-b8a2 bridge   br0
      bridge-slave-enc600  caf7f770-1e55-4126-a2f4 ethernet enc600
      enc600               bc293b8d-ef1e-45f6-bad1 ethernet --
    2. 使用不活跃连接中的配置信息更新活跃的配置集:

      #!/bin/bash
       inactive_connection=enc600
       active_connection=bridge-slave-enc600
       for name in nettype subchannels options; do
       field=802-3-ethernet.s390-$name
       val=$(nmcli --get-values "$field"connection show "$inactive_connection")
       nmcli connection modify "$active_connection" "$field" $val"
       done
    3. 重启 kdump 服务以使更改生效:

      # kdumpctl restart

Jira:RHELPLAN-115732[1]

kmod 中的 weak-modules 不能与模块间依赖一起工作

kmod 软件包提供的 weak-modules 脚本决定了哪些模块与安装的内核 kABI 兼容。但是,在检查模块的内核兼容性时,weak-modules 按照构建它们的内核的从高到低版本来处理模块符号依赖项。因此,针对不同内核版本构建的具有相互依赖关系的模块可能会被解释为不兼容,因此 weak-modules 脚本不能在此场景下工作。

临时解决方案:在安装新内核前,针对最新的库存内核构建或放置额外的模块。

Jira:RHELPLAN-126922[1]

Intel® i40e 适配器在 IBM Power10 上永久失败

i40e 适配器在 IBM Power10 系统上遇到 I/O 错误时,增强的 I/O 错误处理(EEH)内核服务会触发网络驱动程序的重置和恢复。 但是,EEH 重复报告 I/O 错误,直到 i40e 驱动程序达到预定义的最大 EEH 冻结为止。因此,EEH 会导致设备永久失败。 

Jira:RHEL-15404[1]

dkms 使用在 64 位 ARM CPU 上正确编译的驱动程序对程序失败提供不正确的警告

动态内核模块支持(dkms)工具无法识别适用于 4 KB 和 64 KB 页大小内核的 64 位 ARM CPU 的内核头文件。因此,当执行了内核更新,且 kernel-64k-devel 软件包未安装时,dkms 会提供一条有关为什么程序在正确编译的驱动程序上失败的错误警告。

临时解决方案:安装 kernel-headers 软件包,其中包含两种类型的 ARM CPU 架构的头文件,且不特定于 dkms 及其要求。

Jira:RHEL-25967[1]

当启用了 io_uring 时,IBM Power 系统(ppc64le)上遇到内核 panic

在某些情况下,ppc64le 系统在使用 io_uring 内核参数时遇到内核 panic,因为读的 input-output 操作。因此,ppc64le 会停止工作,需要系统重启。数据可能会在崩溃过程中丢失。

临时解决方案:在引导时通过添加以下内核参数来禁用 io_uring 功能:

module.builtin=io_uring=0

Jira:RHEL-28702[1]

10.8. 文件系统和存储

NVMe/TCP 不支持设备映射器多路径

使用带有 nvme-tcp 驱动程序的设备映射器多路径可能会导致 Call Trace 警告和系统不稳定。要临时解决这个问题,NVMe/TCP 用户必须启用原生 NVMe 多路径,且不能在 NVMe 中使用 device-mapper-multipath 工具。

默认情况下,RHEL 9 中启用了原生 NVMe 多路径。如需更多信息,请参阅在 NVMe 设备 上启用多路径

Jira:RHELPLAN-105944[1]

blk-availability systemd 服务停用了复杂的设备堆栈

systemd 中,默认的块停用代码并不总是正确处理虚拟块设备的复杂堆栈。在一些配置中,虚拟设备在关闭过程中可能无法被删除,这会导致记录错误信息。

临时解决方案:执行以下命令取消激活复杂的块设备堆栈:

# systemctl enable --now blk-availability.service

因此,复杂虚拟设备堆栈会在关闭过程中被正确停用,且不会生成错误消息。

Jira:RHELPLAN-99108[1]

对于启用了配额的情况下挂载的 XFS 文件系统,不再可能禁用配额记帐

从 RHEL 9.2 开始,无法在已挂载的启用了配额的 XFS 文件系统上禁用配额记帐。

临时解决方案:删除 quota 选项,通过重新挂载文件系统来禁用配额核算。

Jira:RHELPLAN-145001[1]

对 NVMe 设备的 udev 规则更改

对 NVMe 设备有一个 udev 规则更改,即添加了 OPTIONS="string_escape=replace" 参数。如果您设备的序列号前面有空格,则这会导致某些厂商的对按 id 命名的磁盘进行更改。

Jira:RHELPLAN-154195[1]

不能在 Kickstart 文件中可靠地使用 NVMe/FC 设备

在解析或执行 Kickstart 文件的预脚本时,NVMe/FC 设备可能不使用,这会导致 Kickstart 安装失败。

临时解决方案:将引导参数更新为 inst.wait_for_disks=30。这个选项会导致 30 秒的延迟,应为 NVMe/FC 设备提供充足的时间进行连接。使用这个临时解决方案以及及时连接的 NVMe/FC 设备,Kickstart 安装可以正常进行。

Jira:RHEL-8164[1]

在使用 qedi 驱动程序时内核 panic

在使用 qedi iSCSI 驱动程序时,操作系统引导后内核 panics。要临时解决这个问题,请向内核引导命令行中添加 kfence.sample_interval=0 来禁用 kfence 运行时内存错误检测器功能。

Jira:RHEL-8466[1]

vdo 已安装时,基于 ARM 的系统无法使用 64k 页大小内核进行更新

在安装 vdo 软件包过程中,RHEL 安装 kmod-kvdo 软件包和一个使用 4k 页大小作为依赖项的内核。因此,从 RHEL 9.3 更新至 9.x 失败,因为 kmod-kvdo 与 64k 内核冲突。

临时解决方案:在尝试更新前删除 vdo 软件包及其依赖项。

Jira:RHEL-8354

即使对 qedf 适配器,lldpad 也是自动启用

当使用 QLogic Corp 时。FastLinQ QL45000 系列 10/25/40/50GbE,FCOE 控制器在运行 RHV 的系统上自动启用 lldpad 守护进程。因此,I/O 操作会停止并显示错误,例如 [qedf_eh_abort:xxxx]:1: Aborting io_req=ff5d85a9dcf3xxxx

临时解决方案: DisableLink Layer Discovery Protocol (LLDP),然后为可在 vdsm 配置级别上设置的接口启用它。更多信息,请参阅 https://access.redhat.com/solutions/6963195

Jira:RHEL-8104[1]

当启用了 iommu 时系统无法引导

当在使用 BNX2I 适配器的 AMD 平台上启用输入输出内存管理单元(IOMMU)时,系统无法引导,并显示 Direct Memory Access Remapping (DMAR)timeout 错误。

临时解决方案:使用内核命令行选项 iommu=off 前禁用 IOMMU。因此,系统可以引导,没有任何错误。

Jira:RHEL-25730[1]

10.9. 高可用性和集群

删除 IPsrcaddr 资源中 IPv6 地址的重复的路由条目

在 Red Hat Enterprise Linux 9.4 及更早版本中,当您为 IPsrcaddr 资源指定一个 IPv6 地址时,IPsrcaddr 资源代理会在指标用于子网时,使用不同的指标创建一个重复的路由。例如,当 NetworkManager 在 IPv6 子网上创建另一个 IP 地址时会出现这种情况。在这种情况下,IPsrcaddr 资源无法启动,因为有多个与 IP 地址匹配的资源。从 Red Hat Enterprise Linux 9.5 开始,IPsrcaddr 资源代理在现有路由可用时指定该路由的指标,且第二个路由没有创建。但是,如果您在此升级之前创建了一个使用 IPv6 地址的 IPaddr2 IPv6 资源,则您必须重启系统来删除重复的路由条目。

Jira:RHEL-32265[1]

10.10. 动态编程语言、网页和数据库服务器

RHEL 9 中不默认安装 chkconfig 软件包

RHEL 9 中不默认安装 chkconfig 软件包(更新和查询系统服务运行级别信息)。

要管理服务,请使用 systemctl 命令或手动安装 chkconfig 软件包。

有关 systemd 的更多信息,请参阅 systemd 简介。有关如何使用 systemctl 实用程序的步骤,请参阅使用 systemctl 管理系统服务

Jira:RHELPLAN-112043[1]

python3.11-lxml 不提供 lxml.isoschematron 子模块

python3.11-lxml 软件包不与 lxml.isoschematron 子模块一起分发,因为它不是开源许可证。子模块实现 ISO 架构支持。作为替代方案,lxml.etree.Schematron 类种提供了 pre-ISO-Schematron 验证。python3.11-lxml 软件包的其余内容不受影响。

Jira:RHELPLAN-143480[1]

MySQLMariaDB 中的 --ssl-fips-mode 选项不会改变 FIPS 模式

RHEL 中 MySQLMariaDB 中的 --ssl-fips-mode 选项与上游中的工作方式不同。

在 RHEL 9 中,如果您使用 --ssl-fips-mode 作为 mysqldmariadbd 守护进程的参数,或者在 MySQLMariaDB 服务器配置文件中使用 ssl-fips-mode,则 --ssl-fips-mode 不会更改这些数据库服务器的 FIPS 模式。

相反:

  • 如果将 --ssl-fips-mode 设为 ON,则 mysqldmariadbd 服务器守护进程不会启动。
  • 如果您在启用了 FIPS 的系统上将 --ssl-fips-mode 设为 OFF,则 mysqldmariadbd 服务器守护进程仍然在 FIPS 模式下运行。

这是预期的,因为应该为整个 RHEL 系统启用或禁用 FIPS 模式,而不是为特定组件。

因此,不要在 RHEL 中的 MySQLMariaDB 中使用 --ssl-fips-mode 选项。相反,请确保在整个 RHEL 系统上启用 FIPS 模式:

  • 最好安装启用了 FIPS 模式的 RHEL。在安装过程中启用 FIPS 模式可确保系统使用 FIPS 批准的算法生成所有的密钥,并持续监控测试。有关在 FIPS 模式下安装 RHEL 的详情,请参考 在 FIPS 模式下安装系统
  • 或者,您可以按照 将系统切换成 FIPS 模式 中的流程,为整个 RHEL 系统切换 FIPS 模式。

Jira:RHELPLAN-92864[1]

Git 无法从具有潜在不安全所有权的存储库克隆或获取

为了防止远程代码执行并缓解 CVE-2024-32004,在 Git 中引入了更严格的所有权检查以克隆本地存储库。有了此更新,Git 将具有潜在不安全所有权的本地存储库视为可疑的存储库。

因此,如果您试图通过 git-daemon 从本地托管的存储库克隆,且您不是存储库的所有者,则 Git 返回一条有关可疑的所有者的安全警报,且无法从存储库克隆或获取。

临时解决方案:通过执行以下命令将存储库标记为安全:

git config --global --add safe.directory /path/to/repository

Jira:RHELDOCS-18435[1]

10.11. 编译器和开发工具

bindunbound 都禁用基于 SHA-1- 的签名验证

bindunbound 组件禁用所有 RSA/SHA1(算法 5)和 RSASHA1-NSEC3-SHA1(算法号 7)签名,且签名的 SHA-1 用法在 DEFAULT 系统范围的加密策略中受到限制。

因此,某些 DNSSEC 记录使用 SHA-1、RSA/SHA1 和 RSASHA1-NSEC3-SHA1 摘要算法无法验证在 Red Hat Enterprise Linux 9 中,受影响的域名会存在安全漏洞。

要临时解决这个问题,升级到不同的签名算法,如 RSA/SHA-256 或 elliptic curve 键。

有关受影响和存在安全漏洞的顶级域的信息和列表,请参阅使用 RSASHA1 签名的 DNSSEC 记录失败来验证 解决方案。

Jira:RHELPLAN-117492[1]

如果在多个区域中使用相同的可写区域文件,named 无法启动

BIND 不允许在多个区域中具有相同的可写区域文件。因此,如果配置包含多个区域,它们共享到可由 named 服务修改的文件的路径,则 named 无法启动。

临时解决方案:使用 in-view 子句在多个视图之间共享一个区域,并确保为不同的区域使用不同的路径。例如,在路径中包含视图名称。

请注意,可写的区域文件通常在带有允许的动态更新的区域、DNSSEC 维护的次要区域或区域中使用。

Jira:RHELPLAN-90604[1]

10.12. 身份管理

必须在 RHEL 9 客户端上设置 DEFAULT:SHA1 子策略,以使 PKINIT 能够针对 AD KDC 工作

RHEL 9 中已弃用了 SHA-1 摘要算法,对初始验证的公共密钥加密的 CMS 消息现在使用更强大的 SHA-256 算法进行签名。

但是,Active Directory (AD) Kerberos Distribution Center (KDC) 仍然使用 SHA-1 摘要算法为 CMS 信息签名。因此,RHEL 9 Kerberos 客户端无法通过对 AD KDC 使用 PKINIT 来验证用户。

临时解决方案:使用以下命令在 RHEL 9 系统上启用对 SHA-1 算法的支持:

 # update-crypto-policies --set DEFAULT:SHA1

Jira:RHELPLAN-114497[1]

如果 RHEL 9 Kerberos 代理与非 RHEL 9 的非 AD Kerberos 代理进行通信,则用户的 PKINIT 身份验证会失败

如果 RHEL 9 Kerberos 代理(客户端或 Kerberos 分发中心(KDC) 与不是 Active Directory (AD) 代理的非 RHEL-9 Kerberos 代理交互,则用户的 PKINIT 身份验证会失败。

临时解决方案:执行以下操作之一:

  • 将 RHEL 9 代理的加密策略设为 DEFAULT:SHA1 以允许 SHA-1 签名的验证:

    # update-crypto-policies --set DEFAULT:SHA1
  • 更新非 RHEL-9 和非 AD 代理,以确保它不使用 SHA-1 算法为 CMS 数据签名。因此,将您的 Kerberos 客户端或 KDC 软件包更新至使用 SHA-256 而不是 SHA-1 的版本:

    • CentOS 9 Stream: krb5-1.19.1-15
    • RHEL 8.7: krb5-1.18.2-17
    • RHEL 7.9: krb5-1.15.1-53
    • Fedora Rawhide/36: krb5-1.19.2-7
    • Fedora 35/34:krb5-1.19.2-3

因此,用户的 PKINIT 身份验证可以正常工作。

请注意,对于其他操作系统,这是 krb5-1.20 版本,可确保代理使用 SHA-256 而不是 SHA-1 为 CMS 数据进行签名。

另请参阅 必须在 RHEL 9 客户端上设置 DEFAULT:SHA1 子策略,以使 PKINIT 能够针对 AD KDC 工作

Jira:RHEL-4875

AD 信任的 FIPS 支持需要 AD-SUPPORT 加密子策略

Active Directory(AD)使用 AES SHA-1 HMAC 加密类型,默认情况下在 RHEL 9 上不允许 FIPS 模式。如果要使用带有 AD 信任的 RHEL 9 IdM 主机,请在安装 IdM 软件前支持 AES SHA-1 HMAC 加密类型。

由于 FIPS 合规性是一个涉及技术和机构协议的过程,因此,请在启用 AD-SUPPORT 子策略前咨询 FIPS 审核员,以允许采取技术措施支持 AES SHA-1 HMAC 加密类型,然后安装 RHEL IdM:

 # update-crypto-policies --set FIPS:AD-SUPPORT

Jira:RHELPLAN-113281[1]

FIPS 模式下的 IdM 不支持使用 NTLMSSP 协议来建立双向跨林信任

在活动目录(AD)和启用了 FIPS 模式的身份管理(IdM)之间建立双向跨林信任会失败,因为新技术局域网管理器安全支持提供程序 (NTLMSSP)身份验证不符合 FIPS。FIPS 模式下的 IdM 不接受在尝试验证时 AD 域控制器所使用的 RC4 NTLM 哈希。

Jira:RHEL-12154[1]

将 FIPS 模式下的 RHEL 9 副本添加到用 RHEL 8.6 或更早版本初始化的 FIPS 模式下的 IdM 部署会失败

略旨在遵守 FIPS 140-3 的默认 RHEL 9 FIPS 加密策不允许使用 AES HMAC-SHA1 加密类型的密钥派生功能,如 5.1 章节 RFC3961 所定义的。

当在 FIPS 模式下将 RHEL 9 身份管理(IdM)副本添加到 FIPS 模式下的 RHEL 8 IdM 环境(其中,第一个服务器安装在 RHEL 8.6 系统或更早的版本上)中时,这个约束是一个阻止因素。这是因为在 RHEL 9 和之前的 RHEL 版本之间没有通用的加密类型,它们通常使用 AES HMAC-SHA1 加密类型,但不使用 AES HMAC-SHA2 加密类型。

您可以通过在服务器上输入以下命令来查看 IdM 主密钥的加密类型:

# kadmin.local getprinc K/M | grep -E '^Key:'

如需更多信息,请参阅 AD 域用户无法登录到与符合 FIPS 的环境 KCS 解决方案。

Jira:RHEL-4888

在线备份和在线自动成员重建任务可能获得两个锁,从而导致死锁

如果在线备份和在线成员性重建任务尝试以相反的顺序获取相同的两个锁,则可能会导致无法恢复的死锁,需要您停止和重启服务器。要临时解决这个问题,请不要并行启动在线备份和在线自动成员重建任务。

Jira:RHELDOCS-18065[1]

使用 RHEL 9.2 及更新的 IdM 服务器在 FIPS 模式下安装 RHEL 7 IdM 客户端由于 EMS 强制而失败

对于启用了 FIPS 的 RHEL 9.2 及更新系统上的 TLS 1.2 连接,TLS Extended Master Secret (EMS)扩展(RFC 7627)现在是强制的。这符合 FIPS-140-3 要求。但是,RHEL 7.9 及较低版本中提供的 openssl 版本不支持 EMS。因此,使用在 RHEL 9.2 及更新版本上运行的启用了 FIPS 的 IdM 服务器安装 RHEL 7 身份管理(IdM)客户端会失败。

临时解决方案:如果在安装 IdM 客户端前将主机升级到 RHEL 8,则在 FIPS 加密策略之上应用 NO-ENFORCE-EMS 子策略来删除 RHEL 9 服务器上的 EMS 用法的要求:

# update-crypto-policies --set FIPS:NO-ENFORCE-EMS

请注意,这个删除不符合 FIPS 140-3 要求。因此,您可以建立并接受不使用 EMS 的 TLS 1.2 连接,RHEL 7 IdM 客户端的安装可以成功。

Jira:RHEL-4955

Heimdal 客户端无法针对 RHEL 9 KDC 使用 PKINIT 来验证用户

默认情况下,Heimdal Kerberos 客户端通过使用 Modular Exponential (MODP) Diffie-Hellman Group 2 用于互联网密钥交换 (IKE) 启动 IdM 用户的 PKINIT 身份验证。但是,RHEL 9 上的 MIT Kerberos 分配中心 (KDC) 仅支持 MODP 组 14 和 16。

因此,pre-autentication 请求会失败并显示 krb5_get_init_creds: PREAUTH_FAILED 错误,在 RHEL MIT KDC 中 不接受 Key 参数

临时解决方案:确保 Heimdal 客户端使用 MODP Group 14。将客户端配置文件的 libdefaults 部分中的 pkinit_dh_min_bits 参数设置为 1759:

[libdefaults]
pkinit_dh_min_bits = 1759

因此,Heimdal 客户端可以针对 RHEL MIT KDC 完成 PKINIT 预验证。

Jira:RHELDOCS-19846[1]

10.13. SSSD

ldap_id_use_start_tls 选项使用默认值时的潜在风险

当使用没有 TLS 的 ldap:// 进行身份查找时,可能会对攻击向量构成风险。特别是中间人(MITM)攻击,例如,攻击者可以通过更改 LDAP 搜索中返回的对象的 UID 或 GID 来冒充用户。

目前,强制 TLS 的 SSSD 配置选项 ldap_id_use_start_tls 默认为 false。确保您的设置在可信环境中操作,并决定对 id_provider = ldap 使用未加密的通信是否是安全的。注意 id_provider = adid_provider = ipa 不受影响,因为它们使用 SASL 和 GSSAPI 保护的加密连接。

如果使用未加密的通信不安全,请在 /etc/sssd/sssd.conf 文件中将 ldap_id_use_start_tls 选项设置为 true 来强制使用 TLS。计划在以后的 RHEL 版本中更改的默认行为。

Jira:RHELPLAN-155168[1]

如果组大小超过 1500 个成员,则 SSSD 会检索不完整的成员列表

在 SSSD 与活动目录集成的过程中,当组大小超过 1500 个成员时,SSSD 会检索不完整的组成员列表。出现这个问题是因为活动目录的 MaxValRange 策略(其限制单个查询中可检索的成员的数量)默认被设置为 1500。

临时解决方案:更改活动目录中的 MaxValRange 设置,以容纳更大的组大小。

Jira:RHELDOCS-19603[1]

SSSD 可正确注册 DNS 名称

在以前的版本中,如果 DNS 被错误建立,第一次尝试注册 DNS 名称时,SSSD 总是失败。

临时解决方案:此更新提供了一个新的参数 dns_resolver_use_search_list。设置 dns_resolver_use_search_list = false,以避免使用 DNS 搜索列表。

Jira:RHELPLAN-44204[1]

10.14. 桌面

升级到 RHEL 9 后,VNC 没有运行

从 RHEL 8 升级到 RHEL 9 后,VNC 服务器无法启动,即使之前启用它。

临时解决方案:在系统升级后手动启用 vncserver 服务:

# systemctl enable --now vncserver@:port-number

现在,每个系统引导后都会启用 VNC 并按预期启动。

Jira:RHELPLAN-114314[1]

用户创建屏幕没有响应

当使用图形用户界面安装 RHEL 时,用户创建屏幕没有响应。因此,在安装过程中创建用户更为困难。

临时解决方案:使用以下解决方案之一创建用户:

  • 在 VNC 模式下运行安装并重新定义 VNC 窗口的大小。
  • 完成安装过程后创建用户。

Jira:RHEL-11924[1]

xorg -configure 无法在虚拟机上创建 Xorg 配置文件

运行 xorg -configure 以在虚拟机上创建 Xorg 配置文件会失败,因为缺少配置的设备。此问题会导致配置失败。要临时解决这个问题,请根据 Xorg 文档中介绍的指南手动构建 xorg.conf 文件,或使用扩展显示识别数据(EDID)覆盖到 Teak 显示分辨率等替代机制。有了这个临时解决方案,Xorg 服务器可以使用正确的配置。

Jira:RHELDOCS-20196[1]

WebKitGTK 无法在 IBM Z 上显示网页

当尝试在 IBM Z 架构上显示网页时,WebKitGTK 网页浏览器引擎会失败。网页保持空白,WebKitGTK 进程意外终止。

因此,您无法使用那些使用 WebKitGTK 的应用程序的某些功能来显示网页,如下所示:

  • Evolution 邮件客户端
  • GNOME 在线帐户设置
  • GNOME 帮助应用程序

Jira:RHEL-4157

10.15. 图形基础结构

NVIDIA 驱动程序可能会恢复到 X.org

在某些情况下,专有 NVIDIA 驱动程序会禁用 Wayland 显示协议并恢复到 X.org 显示服务器:

  • 如果 NVIDIA 驱动程序的版本低于 470。
  • 如果系统是使用混合图形的笔记本电脑。
  • 如果您还没有启用所需的 NVIDIA 驱动程序选项。

另外,启用 Wayland,但如果 NVIDIA 驱动程序的版本低于 510,则桌面会话默认使用 X.org。

Jira:RHELPLAN-119001[1]

使用 NVIDIA 在 Wayland 上无法使用 night Light

当您的系统上启用了专有 NVIDIA 驱动程序时,Wayland 会话将无法使用 GNOME 的 Night Light 功能。NVIDIA 驱动程序目前不支持 Night Light

Jira:RHELPLAN-119852[1]

x.org 配置工具无法在 Wayland 下工作

用于操作屏幕的 x.org 实用程序无法在 Wayland 会话中工作。值得注意的是,xrandr 实用程序无法在 Wayland 下工作,因为其处理、解析、轮转和布局的不同方法。

Jira:RHELPLAN-121049[1]

10.16. Web 控制台

RHEL web 控制台中的 VNC 控制台无法在 ARM64 上正常工作

目前,当您在 ARM64 架构上的 RHEL web 控制台中导入虚拟机(VM),然后您尝试在 VNC 控制台中与其进行交互时,控制台不会对您的输入做出反应。

另外,当您在 ARM64 架构上的 web 控制台中创建虚拟机时,VNC 控制台不会显示您输入的最后几行。

Jira:RHEL-31993[1]

10.17. Red Hat Enterprise Linux 系统角色

如果 firewalld.service 被屏蔽,使用 firewall RHEL 系统角色会失败

如果在 RHEL 系统上屏蔽了 firewalld.service,则 firewall RHEL 系统角色会失败。

临时解决方案: 取消屏蔽 firewalld.service

systemctl unmask firewalld.service

Jira:RHELPLAN-133165[1]

PostgreSQL、MariaDB 和 MySQL 在镜像模式中无法使用 RHEL

PostgreSQL、MariaDB 和 MySQL 数据库管理系统不使用 sysusers.d 目录来填充用户和工作目录。MariaDB 和 MySQL 也不使用 mtc .d 目录。因此,数据库用户可能会缺失,并且数据库系统无法初始化,因为缺少其工作目录。当前没有解决此问题的方法。

Jira:RHELDOCS-21366[1]

无法使用环境名称注册系统

当在 rhc_environment 中指定环境名称时,rhc 系统角色注册系统失败。

临时解决方案:在注册时使用环境 ID 而不是环境名称。

Jira:RHEL-1172

在高可用性模式下作为 SELinux 限制的应用程序运行 Microsoft SQL Server 2022 无法工作

RHEL 9.4 及更高版本上的 Microsoft SQL Server 2022 支持作为 SELinux 限制的应用程序来运行。但是,由于 Microsoft SQL Server 中的限制,将服务作为 SELinux 限制的应用程序来运行在高可用性模式下无法工作。

临时解决方案:如果您需要服务高度可用,您可以运行 Microsoft SQL Server 作为未限制的应用程序。

请注意,在使用 mssql RHEL 系统角色安装此服务时,这个限制也会影响安装 Microsoft SQL Server。

Jira:RHELDOCS-17719[1]

10.18. 虚拟化

在某些情况下,通过 https 或 ssh 安装虚拟机会失败

目前,当尝试通过 https 或 ssh 连接从 ISO 源安装客户机操作系统时,virt-install 工具会失败 - 例如使用 virt-install --cdrom https://example/path/to/image.iso。上述操作意外中止,并显示 internal error: process exited while connecting to monitor 消息,而不是创建虚拟机(VM)。

同样,使用 RHEL 9 web 控制台安装客户机操作系统失败,如果使用了 https 或 ssh URL,或 Download OS 功能,则会显示 Unknown driver 'https' 错误。

临时解决方案:在主机上安装 qemu-kvm-block-curlqemu-kvm-block-ssh 来启用 https 和 ssh 协议支持。或者,使用不同的连接协议或不同的安装源。

Jira:RHELPLAN-99854[1]

在虚拟机中使用 NVIDIA 驱动程序会禁用 Wayland

目前,NVIDIA 驱动程序与 Wayland 图形会话不兼容。因此,使用 NVIDIA 驱动程序的 RHEL 客户机操作系统会自动禁用 Wayland 并加载 Xorg 会话。这主要在以下情况下发生:

  • 当您通过 NVIDIA GPU 设备传递给 RHEL 虚拟机(VM)
  • 当您为 RHEL 虚拟机分配 NVIDIA vGPU mediated 设备

当前没有解决此问题的方法。

Jira:RHELPLAN-117234[1]

在 Nutanix AHV 中使用 LVM 克隆或恢复 RHEL 9 虚拟机会导致非 root 分区消失

当在 Nutanix AHV 虚拟机监控程序上托管的虚拟机中运行 RHEL 9 客户机操作系统时,从快照中恢复虚拟机或克隆虚拟机目前会导致虚拟机中的非 root 分区在虚拟机中使用逻辑卷管理(LVM)时消失。因此,会出现以下问题:

  • 从快照恢复虚拟机后,虚拟机无法引导,而是进入紧急模式。
  • 通过克隆创建的虚拟机无法引导,而是进入紧急模式。

要临时解决这个问题,在虚拟机的紧急模式下执行以下操作:

  1. 删除 LVM 系统设备文件:

    # rm /etc/lvm/devices/system.devices
  2. 重新创建 LVM 设备设置:

    # vgimportdevices -a
  3. 重启虚拟机

这样,克隆或恢复的虚拟机可以正确引导。

另外,为了避免这个问题发生,请在克隆虚拟机或创建虚拟机快照前进行以下操作:

  1. 取消注释 /etc/lvm/lvm.conf 文件中的 use_devicesfile = 0 行。
  2. 重新生成 initramfs。要做到这一点,使用虚拟机中的以下步骤,并将 &lt ;kernelVersion > 替换为您要重建的内核的完整版本。

    1. 备份当前的 initramfs 配置:

      # cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bak
    2. 构建 initramfs

      # dracut -f /boot/initramfs-<kernelVersion>.img  <kernelVersion>
  3. 重启虚拟机以验证引导是否成功。

Jira:RHELPLAN-114103[1]

在 AMD Milan 系统上有时无法提供 Milan VM CPU 类型

在某些 AMD Milan 系统上,默认在 BIOS 中禁用了增强 REP MOVSB(erms)和 Fast Short REP MOVSB(fsrm)功能标记。因此,在这些系统上可能无法使用 Milan CPU 类型。另外,载具有不同功能标志设置的 Milan 主机之间的虚拟机实时迁移可能会失败。

临时解决方案:在主机的 BIOS 中手动打开 ermsfsrm

Jira:RHELPLAN-119655[1]

带有故障切换设置的 hostdev 接口在热拔后无法进行热插

从正在运行的虚拟机(VM)中删除带有故障切换配置的 hostdev 网络接口后,该接口目前无法重新连接到同一正在运行的虚拟机。当前没有解决此问题的方法。

Jira:RHEL-7337

带有故障切换 VF 的虚拟机实时复制迁移失败

目前,如果虚拟机使用启用了虚拟功能(VF)故障转移功能的设备,则试图对一个正在运行的虚拟机(VM)进行 post-copy 迁移会失败。

临时解决方案: 使用标准迁移类型,而不是复制后迁移。

Jira:RHEL-7335

主机网络无法在实时迁移过程中 ping 使用 VF 的虚拟机

当使用配置的虚拟功能 (VF) 实时迁移虚拟机时,如使用虚拟 SR-IOV 软件的虚拟机,虚拟机的网络不对其它设备看到,如 ping 之类的命令无法访问虚拟机。完成迁移后,问题将不再发生。

Jira:RHEL-7336

禁用 AVX 会导致虚拟机无法引导

在使用具有高级向量扩展(AVX)支持的 CPU 的主机上,尝试引导明确禁用 AVX 的虚拟机当前会失败,并触发虚拟机中的内核 panic。当前没有解决此问题的方法。

Jira:RHELPLAN-97394[1]

迁移的 IdM 用户可能会因为不匹的域 SID 而无法登录

如果您使用 ipa migrate-ds 脚本将用户从一个 IdM 部署迁移到另一个,则这些用户可能会在使用 IdM 服务时有问题,因为它们之前存在的安全标识符(SID)没有当前 IdM 环境的域 SID。例如,这些用户可以使用 kinit 工具检索 Kerberos 票据,但不能登录。

临时解决方案:请参阅以下知识库文章: Migrated IdM 用户因为不匹配的域 SID 而无法登录

Jira:RHELPLAN-109613[1]

在网络接口重置后,Windows VM 无法获取 IP 地址

有时,Windows 虚拟机在自动网络接口重置后无法获取 IP 地址。因此,虚拟机无法连接到网络。

临时解决方案:在 Windows 设备管理器中禁用和重新启用网络适配器驱动程序。

Jira:RHEL-11366

Windows Server 2016 虚拟机有时会在热插拔 vCPU 后停止工作

目前,将 vCPU 分配给运行 Windows Server 2016 客户机操作系统的虚拟机(VM)可能会导致各种问题,如虚拟机意外终止、变得没有响应或重启。当前没有解决此问题的方法。

Jira:RHELPLAN-63771[1]

在具有 NVIDIA passthrough 设备的虚拟机上的冗余错误消息

使用带有 RHEL 9.2 及更新版本的操作系统的 Intel 主机机器时,带有直通 NVDIA GPU 设备的虚拟机(VM)会频繁地记录以下错误信息:

Spurious APIC interrupt (vector 0xFF) on CPU#2, should never happen.

但是,这个错误消息不会影响虚拟机的功能,可以忽略。详情请查看 红帽知识库

Jira:RHELPLAN-141042[1]

在主机上重启 OVS 服务可能会阻止在其上运行的虚拟机的网络连接

当 Open vSwitch (OVS)服务在主机上重启时或崩溃时,在此主机上运行的虚拟机(VM)无法恢复网络设备的状态。因此,虚拟机可能无法完全接收数据包。

此问题只会影响在 virtio 网络堆栈中使用压缩 virtqueue 格式的系统。

临时解决方案:使用 virtio 网络设备定义中的 packed=off 参数来禁用压缩的 virtqueue。当禁用压缩的 virtqueue 时,网络设备的状态在某些情况下可以从 RAM 中恢复。

Jira:RHEL-333

恢复中断的复制后虚拟机迁移可能会失败

如果虚拟机(VM)的复制后迁移中断,然后在同一传入端口上立即恢复,则迁移可能会失败,并显示以下错误 Address already in use

临时解决方案:在恢复后复制迁移或切换到另一个端口进行迁移恢复前至少等待 10 秒。

Jira:RHEL-7096

NUMA 节点映射在 AMD EPYC CPU 上无法正常工作

QEMU 无法正确处理 AMD EPYC CPU 上的 NUMA 节点映射。因此,如果使用 NUMA 节点配置,具有这些 CPU 的虚拟机(VM)的性能可能会受到负面影响。另外,虚拟机在启动过程中会显示类似如下的警告。

sched: CPU #4's llc-sibling CPU #3 is not on the same node! [node: 1 != 0]. Ignoring dependency.
WARNING: CPU: 4 PID: 0 at arch/x86/kernel/smpboot.c:415 topology_sane.isra.0+0x6b/0x80

临时解决方案:不要将 AMD EPYC CPU 用于 NUMA 节点配置。

Jira:RHELPLAN-150884[1]

PCIe ATS 设备无法在 Windows 虚拟机上工作

当您在带有 Windows 客户机操作系统的虚拟机的 XML 配置中配置 PCIe 地址转换服务(ATS)设备时,在引导虚拟机后,客户机不会启用 ATS 设备。这是因为 Windows 目前不支持 virtio 设备上的 ATS。

如需更多信息,请参阅 红帽知识库

Jira:RHELPLAN-118495[1]

virsh blkiotune --weight 命令无法设置正确的 cgroup I/O 控制器值

目前,使用 virsh blkiotune --weight 命令设置 VM 权重无法按预期工作。该命令无法在 cgroup I/O 控制器接口文件中设置正确的 io.bfq.weight 值。目前还没有临时解决方案。

Jira:RHELPLAN-83423[1]

启动带有 NVIDIA A16 GPU 的虚拟机有时会导致主机 GPU 停止工作

目前,如果您启动了一个使用 NVIDIA A16 GPU 直通设备的虚拟机,在某些情况下,主机系统上的 NVIDIA A16 GPU 物理设备会停止工作。

要临时解决这个问题,请重新 hypervisor ,并将 GPU 设备的 reset_method 设置为 bus

# echo bus > /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
# cat /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
bus

详情请查看 红帽知识库

Jira:RHEL-7212[1]

Windows 虚拟机可能会因为存储错误而变得无响应

在使用 Windows 客户机操作系统的虚拟机上,在高 I/O 负载下,系统在某些情况下会变得无响应。当发生这种情况时,系统会记录一个 viostor Reset to device, \Device\RaidPort3, was issued 错误。当前没有解决此问题的方法。

Jira:RHEL-1609[1]

在引导时,带有某些 PCI 设备的 Windows 10 虚拟机可能会变得无响应

目前,如果将具有本地磁盘后端的 virtio-win-scsi PCI 设备被附加到虚拟机,则使用 Windows 10 客户机操作系统的虚拟机(VM)会在启动过程中变得无响应。

临时解决方案:在启用了 multi_queue 选项的情况下引导虚拟机。

Jira:RHEL-1084[1]

具有内存气球设备集的 Windows 11 虚拟机在重启过程中可能会意外关闭

目前,重新引导使用 Windows 11 客户机操作系统和内存 balloon 设备的虚拟机(VM)在某些情况下会失败,并显示 DRIVER POWER STAT FAILURE 蓝屏错误。

Jira:RHEL-935[1]

virtio balloon 驱动程序有时在 Windows 10 和 Windows 11 虚拟机上无法工作

在某些情况下,virtio-balloon 驱动程序在使用 Windows 10 或 Windows 11 客户机操作系统的虚拟机(VM)上无法正常工作。因此,此类虚拟机可能无法有效地使用其分配的内存。

Jira:RHEL-12118

virtio 文件系统在 Windows 虚拟机中性能不佳

目前,当在使用 Windows 客户机操作系统的虚拟机(VM)上配置了 virtio 文件系统(virtiofs)时,虚拟机中的 virtiofs 性能比使用 Linux 客户机的虚拟机中的性能要差的多。当前没有解决此问题的方法。

Jira:RHEL-1212[1]

在 Windows 虚拟机上热拔存储设备可能会失败

在使用 Windows 客户机操作系统的虚拟机(VM)上,当虚拟机运行时删除存储设备(也称为设备热拔)在某些情况下会失败。因此,存储设备一直附加在虚拟机上,磁盘管理器服务可能会变得无响应。当前没有解决此问题的方法。

Jira:RHEL-869

将 CPU 热插到 Windows 虚拟机可能会导致系统失败

当将最大数量的 CPU 热插到启用了巨页的 Windows 虚拟机(VM)时,客户机操作系统可能会崩溃,并显示以下 停止错误

PROCESSOR_START_TIMEOUT

当前没有解决此问题的方法。

Jira:RHEL-1220

在 Windows 虚拟机上更新 virtio 驱动程序可能会失败

当在 Windows 虚拟机(VM)上更新 KVM 半虚拟化(virtio)驱动程序时,更新可能会导致鼠标停止工作,可能无法对新安装的驱动程序签名。当通过从 virtio-win-guest-tools 软件包(其是 virtio-win.iso 文件的一部分)安装来更新 virtio 驱动程序时,此问题会发生。

临时解决方案:使用 Windows 设备管理器更新 virtio 驱动程序。

Jira:RHEL-574[1]

在使用 vhost-kernel的虚拟机中无法更改 TX 队列大小

目前,您无法在使用 vhost-kernel 作为 virtio 网络驱动程序的后端的 KVM 虚拟机(VM)上设置 TX 队列大小。因此,您只能对 TX 队列使用默认值 256 ,这可能会阻止您优化虚拟机网络吞吐量。当前没有解决此问题的方法。

Jira:RHEL-1138[1]

虚拟机在 AMD EPYC 型号上错误地报告 spec_rstack_overflow 参数的 vulnerable 状态

当您引导主机时,它不会检测 spec_rstack_overflow 参数中的任何漏洞。查询日志中的参数,它显示消息:

# cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
Mitigation: Safe RET

在同一主机上引导虚拟机后,虚拟机在 spec_rstack_overflow 参数中检测到一个漏洞。当查询日志中的参数时,它显示消息:

# cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
Vulnerable: Safe RET, no microcode

但是,这是一个假的警告消息,您可以忽略虚拟机中 /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow 文件的状态。

Jira:RHEL-17614[1]

链接状态在虚拟机上显示 up,即使当 e1000eigb 型号接口的状态为 down

在引导虚拟机前,为 e1000igb 型号网络接口的以太网链接状态设置为 down。尽管如此,在虚拟机引导后,网络接口保持 up 状态,因为当您将以太网链接状态设置为 down ,然后停止并启动虚拟机时,它会自动设置回 up。因此,不能保持网络接口的正确状态。

临时解决方案:使用以下命令将网络接口状态设置为 down

# ip link set dev eth0 down

或者,您可以在虚拟机运行时尝试删除并重新添加此网络接口。

Jira:RHEL-21867

SeaBIOS 无法从具有 4096 个字节扇区大小的磁盘引导

当使用 SeaBIOS 从使用 4096 字节的逻辑或物理扇区大小的磁盘引导虚拟机时,引导磁盘没有显示为可用,引导虚拟机失败。要从这样的磁盘引导虚拟机,请使用 UEFI 而不是 SeaBIOS。

Jira:RHEL-7110

如果每个 CPU 使用超过 128 个核,则 Windows Server 2019 虚拟机在引导时会崩溃

当使用 Windows Server 2019 客户机操作系统的虚拟机在被配置为单个虚拟 CPU (vCPU)使用超过 128 个核时,其目前无法引导。虚拟机会在蓝屏上显示一个停止错误,而不是引导。

临时解决方案:每个 vCPU 使用少于 128 个内核。

Jira:RHELDOCS-18863[1]

带有 VBS 和 IOMMU 设备的 Windows 虚拟机无法引导

当您通过 qemu-kvm 工具引导一个启用了基于虚拟化安全性(VBS)的 Windows 虚拟机和一个输入输出内存管理单元(IOMMU)设备时,引导序列只显示引导屏幕,从而导致引导过程不完整。

临时解决方案:确保虚拟机域 XML 被配置为如下:

<features>
  <ioapic driver='qemu'/>
</features>
<devices>
<iommu model='intel'>
   <driver intremap='on' eim='off' aw_bits='48'/>
   <alias name='iommu0'/>
</iommu>
<memballoon model='virtio'>
   <alias name='balloon0'/>
   <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
   <driver iommu='on' ats='on'/>
</memballoon>
</devices>

否则,Windows 虚拟机无法引导。

Jira:RHEL-45585[1]

具有 5 级页面合并和大量内存的虚拟机有时无法启动

如果将 host-phys-bits-limit 参数设置为 49 或更多,则具有以下配置的虚拟机无法引导:

  • 虚拟机分配超过 1TB 内存
  • 虚拟机使用 5 级页面合并功能
  • 主机在其固件中使用系统管理模式(SMM)

相反,尝试引导虚拟机会失败并显示 ERROR: Out of aligned pages

临时解决方案:将 host-phys-bits-limit 参数设置为 48 或更少。

Jira:RHEL-82759

具有大量可引导数据磁盘的虚拟机可能无法启动

如果您试图启动具有大量可引导数据磁盘的虚拟机(VM),则虚拟机可能无法引导,并显示以下错误:Something has gone seriously wrong: import_mok_state() failed: Volume Full

临时解决方案:减少可引导数据磁盘的数量,并使用一个系统磁盘。要确保系统磁盘是引导顺序中的第一个,请将 boot order=1 添加到 XML 配置中系统磁盘的设备定义中。例如:

<disk type='file' device='disk'>
  <driver name='qemu' type='qcow2'/>
  <source file='/path/to/disk.qcow2'/>
  <target dev='vda' bus='virtio'/>
  <boot order='1'/>
</disk>

仅为系统磁盘设置引导顺序。

Jira:RHEL-68418

如果使用大量 vCPU 分配,Windows 2025 虚拟机会减慢

当分配有 32 个或更多 vCPU 时,Windows Server 2025 虚拟机(VM)在 Red Hat Enterprise Linux 主机上会减慢速度。因此,当虚拟机配置了大量 vCPU 时,Windows 虚拟机可能会在引导期间引导或卡住。

临时解决方案:您可以自行使用临时解决方案。使用少量 vCPU 引导虚拟机,以便在 Windows 服务器上禁用 plaformclock。在具有管理员特权的命令提示中,运行以下命令:

bcdedit /set useplatformclock no

然后,关闭虚拟机并使用所需的大量 vCPU 重新配置它。另外,请确保在再次启动大型虚拟机前启用 hv-time 选项。

Jira:RHEL-62742[1]

具有大内存的虚拟机无法在具有 AMD Genoa CPU 的 SEV-SNP 主机上引导

目前,虚拟机(VM)无法在使用第 4 代 AMD EPYC 处理器(也称为 Genoa),并启用了 Secure Nested Paging (SEV-SNP)功能的 AMD 安全加密虚拟化的主机上引导。虚拟机没有启动,而是发生了内核 panic。

Jira:RHEL-32892[1]

安装 VirtIO-Win 捆绑包不能被取消

目前,如果您在 Windows 客户机操作系统中从 VirtIO-Win 安装程序捆绑包开始安装 virtio-win 驱动程序,点安装过程中的 Cancel 按钮无法正确停止它。安装程序向导界面显示一个 "Setup Failed" 屏幕,但驱动程序安装了,且客户机的 IP 地址被重置了。

Jira:RHEL-53962,JIRA:RHEL-53965

在 hypervisor 启动类型设为 auto 的 Sapphire Rapids CPU 上运行的 Windows 虚拟机在重启后无法引导

如果您在运行在 Sapphire Rapids CPU 上的 Windows 虚拟机(VM)中将 hypervisor 启动类型设置为 auto,则虚拟机在重启后可能无法引导。例如,您可以使用 bcdedit /set hypervisorlaunchtype Auto 命令将 hypervisor 启动类型设置为 auto

临时解决方案:不要在 Windows 虚拟机中将 hypervisor 启动类型设置为 auto

Jira:RHEL-67699[1]

对具有 VBS 的 Windows 客户机热插拔 vCPU 和内存无法正常工作

目前,Windows Virtualization-based Security(VBS)与热插 CPU 和内存资源不兼容。因此,尝试将内存或 vCPU 附加到启用了 VBS 的运行的 Windows 虚拟机(VM)中,仅在客户机系统重启后将资源添加到虚拟机。 

Jira:RHEL-66229, Jira:RHELDOCS-19066

NetworkManager-wait-online.service 使用加速网络在 Azure 虚拟机上启动

当您使用加速网络功能(也称为单根输入输出虚拟化(SR-IOV))启动 Azure 平台的 Red Hat Enterprise Linux 虚拟机时,多个网络接口卡可能具有相同的 MAC 地址。因此,虚拟机可能无法从 DHCP 服务器获取 IP 地址,NetworkManager-wait-online.service 可能无法在引导时启动。

临时解决方案:不要安装 initscripts-rename-device 软件包,以便现有设备不会重命名到现有设备名称。

Jira:RHEL-79783[1]

现在,在启用了 FIPS 的系统上强制 Extended Master Secret TLS 扩展

随着 RHSA-2023:3722 公告的发布,在启用了 FIPS 的 RHEL 9 系统上,对 TLS 1.2 连接强制Extended Master Secret (EMS)扩展 (RFC 7627) 。这符合 FIPS-140-3 要求。TLS 1.3 不受影响。

不支持 EMS 或 TLS 1.3 的传统客户端现在无法连接到在 RHEL 9 和 10 上运行的 FIPS 服务器。同样,在 FIPS 模式中的 RHEL 9 和 10 客户端无法连接到只支持没有 EMS 的 TLS 1.2 的服务器。在实践中意味着这些客户端无法连接到 RHEL 6、RHEL 7 和非 RHEL 传统操作系统上的服务器。这是因为传统的 OpenSSL 1.0.x 版本不支持 EMS 或 TLS 1.3。

另外,如果 hypervisor 使用没有 EMS 的 TLS 1.2,则从启用了 FIPS 的 RHEL 客户端连接到 hypervisor (如 VMWare ESX)现在会失败,并显示 Provider routines::ems not enabled 错误。要临时解决这个问题,请更新 hypervisor 以支持带有 EMS 扩展的 TLS 1.3 或 TLS 1.2。对于 VMWare vSphere,这意味着版本 8.0 或更高版本。

如需更多信息,请参阅 Red Hat Enterprise Linux 9.2 及之后的版本强制使用 TLS 扩展"扩展 Master Secret "。

Jira:RHEL-13340[1]

10.19. 云环境中的 RHEL

如果 RHEL 实例是由 cloud-init 提供的,且使用 NFSv3 挂载条目配置的,则其在 Azure 上无法引导

目前,如果 VM 是由 cloud-init 工具提供的,且虚拟机的客户机操作系统在 /etc/fstab 文件中有 NFSv3 挂载条目,则在 Microsoft Azure 云平台上引导 RHEL 虚拟机(VM)会失败。当前没有解决此问题的方法。

Jira:RHELPLAN-120807[1]

当启用了 kmemleak 选项时,大型虚拟机可能无法引导到 debug 内核

当试图将 RHEL 9 虚拟机(VM)引导到 debug 内核时,如果机器内核使用 kmemleak=on 参数,则引导可能会失败,并显示以下错误。

Cannot open access to console, the root account is locked.
See sulogin(8) man page for more details.

Press Enter to continue.

这个问题主要影响大型虚拟机,因为它们在引导序列中花费了大量时间。

临时解决方案:编辑机器上的 /etc/fstab 文件,并在 /boot/boot/efi 挂载点中添加额外的超时选项。例如:

UUID=e43ead51-b364-419e-92fc-b1f363f19e49 /boot xfs defaults,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 0

UUID=7B77-95E7 /boot/efi vfat defaults,uid=0,gid=0,umask=077,shortname=winnt,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 2

Jira:RHELDOCS-16979[1]

在某些情况下,启用 Hyper-V 启蒙不会改进 CPU 优化

在使用 Windows 客户机操作系统的虚拟机(VM)上,在某些情况下启用 Hyper-V 启蒙不会导致在虚拟机的 CPU 使用率方面预期的改进。当前没有解决此问题的方法。

Jira:RHEL-17331[1]

当内存大小与内存块大小不匹配时,VMware 上的内存热插拔

目前,即使附加的内存的大小与单个内存块的大小不一致,也可以尝试热插到 VMware hypervisor 上的 RHEL 9 客户机。但是,以这种方式附加内存始终会失败,并显示 Block size unaligned 热插拔范围 错误。

临时解决方案:只有由客户机上配置的内存块大小的热插拔内存才会变为可见。要获取内存块大小,请使用 lsmem 命令。如需更多信息,请参阅 红帽知识库

Jira:RHEL-81748[1]

如果主机使用 AMD EPYC CPU 处理器,则 BIOS 或 UEFI 支持的 Hyper-V Windows Server 2016 虚拟机无法引导

使用启用了 Hyper-V 的设置,Hyper-V Windows Server 2016 虚拟机无法在 AMD EPYC CPU 主机上引导。

临时解决方案:检查以下日志消息:

kvm: Booting SMP Windows KVM VM with !XSAVES && XSAVEC.
If it fails to boot try disabling XSAVEC in the VM config.

尝试向 -cpu cmdline 中添加 xsavec=off 来引导 Hyper-V Windows Server 2016 虚拟机。

Jira:RHEL-38957[1]

在 Azure 机密虚拟机上 kdump 无法完成

当您在 Azure 机密虚拟机实例上的 Red Hat Enterprise Linux 虚拟机上出现内核崩溃时,在本例中为 DCv5 和 ECv5 系列,kdump 进程可能无法完成,虚拟机变得无响应。因此,在强制重启后,有一个 vmcore-incomplete 文件。

Jira:RHEL-70228[1]

10.20. 支持性

在 IBM Power Systems Little Endian 上运行 sos report 时超时

当在具有带有数百或数千个 CPU 的 IBM Power Systems,Little Endian 上运行 sos report 命令时,处理器插件会在收集 /sys/devices/system/cpu 目录的大量内容时达到默认的 300 秒超时时间。作为临时解决方案,请相应地增加插件的超时时间:

  • 对于一次性设置,请运行:
# sos report -k processor.timeout=1800
  • 对于永久性更改,请编辑 /etc/sos/sos.conf 文件的 [plugin_options] 部分:
[plugin_options]
# Specify any plugin options and their values here. These options take the form
# plugin_name.option_name = value
#rpm.rpmva = off
processor.timeout = 1800

示例值设为 1800。特定的超时值高度依赖于特定的系统。要适当地设置插件超时,您可以首先通过运行以下命令来估算收集一个没有超时的插件所需的时间:

# time sos report -o processor -k processor.timeout=0 --batch --build

Jira:RHELPLAN-51452[1]

10.21. 容器

UBI 镜像无法可重复生成

在使用以下参数调用同一组输入时,podman buildbuildah build 命令避免在构建之间出现不一致的情况:

  • --rewrite-timestamp
  • --source-date-epoch,这是您在启动构建时设置的等效构建参数或环境值。

要临时解决这个问题,使用-- rewrite-timestamp 和-- source-date- epoch 参数调用 podman buildbuildah build 命令,以最小化构建不一致的情况。此外,在 RUN 指令中调用的更新工具,以避免在 $SOURCE_DATE_EPOCH 环境变量设置时产生非确定输出。

有些工具或工具版本可能仍然会产生非确定的输出,您可能无法重复构建特定的镜像。

Jira:RHEL-62749

在较旧的容器镜像中运行 systemd 无法正常工作

在较旧的容器镜像(如 centos:7)中运行 systemd 将无法正常工作:

$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd
 Storing signatures
 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
 [!!!!!!] Failed to mount API filesystems, freezing.

临时解决方案 :使用以下命令:

# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd

Jira:RHELPLAN-96940[1]

FIPS bootc 镜像创建在启用了 FIPS 的主机上失败

由于 update-crypto-policies 软件包,使用启用了 FIPS 模式的 Podman 构建磁盘镜像失败,退出码为 3 :

# Enable the FIPS crypto policy
# crypto-policies-scripts is not installed by default in RHEL-10
RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS

临时解决方案:构建具有禁用了 FIPS 模式的 bootc 镜像。

Jira:RHELDOCS-19539

10.22. RHEL Lightspeed

命令行助手配置文件的更改不会立即应用

etc/xdg/command-line-assistant/config.toml 配置文件中进行更改时,命令行助手守护进程大约需要 30 秒时间来识别更改,而不是立即应用更改。命令行助手也缺少 重新加载 功能。

临时解决方案:按照以下步骤操作:

  1. 进行需要对 config.toml 配置文件的更改。
  2. 运行以下命令:
# systemctl restart clad

Jira:RHELDOCS-19734[1]

命令行助手无法验证 Satellite 服务器证书

命令行助手不会识别 Red Hat Satellite 服务器的 Satellite 证书颁发机构(CA)证书。Satellite CA 证书用于为使用和注册的主机发布和签署证书,由 Satellite 管理。因此,命令行助手无法建立与 Satellite 服务器的安全连接,这会阻止它正常工作。

临时解决方案:将 Satellite CA 证书复制到系统信任存储中,并更新 CA 信任数据库:

$ sudo cp /etc/rhsm/ca/katello /etc/pki/ca-trust/source/anchors/*
$ sudo update-ca-trust

Jira:RHELDOCS-21325[1]

第 11 章 可用的 BPF 功能

本章提供了此 Red Hat Enterprise Linux 9 版本中提供的 Berkeley Packet Filter (BPF)功能的完整列表。表包括以下列表:

本章包含 bpftool feature 命令自动生成的输出。

Expand
表 11.1. 系统配置和其他选项
选项value

unprivileged_bpf_disabled

2 (bpf() 系统调用限制为特权用户,管理员可以改变。)

bpf_jit_enable

1(启用)

bpf_jit_harden

1(启用)

bpf_jit_kallsyms

1(启用)

bpf_jit_limit

528482304

CONFIG_BPF

y

CONFIG_BPF_SYSCALL

y

CONFIG_HAVE_EBPF_JIT

y

CONFIG_BPF_JIT

y

CONFIG_BPF_JIT_ALWAYS_ON

y

CONFIG_DEBUG_INFO_BTF

y

CONFIG_DEBUG_INFO_BTF_MODULES

y

CONFIG_CGROUPS

y

CONFIG_CGROUP_BPF

y

CONFIG_CGROUP_NET_CLASSID

y

CONFIG_SOCK_CGROUP_DATA

y

CONFIG_BPF_EVENTS

y

CONFIG_KPROBE_EVENTS

y

CONFIG_UPROBE_EVENTS

y

CONFIG_TRACING

y

CONFIG_FTRACE_SYSCALLS

y

CONFIG_FUNCTION_ERROR_INJECTION

y

CONFIG_BPF_KPROBE_OVERRIDE

n

CONFIG_NET

y

CONFIG_XDP_SOCKETS

y

CONFIG_LWTUNNEL_BPF

y

CONFIG_NET_ACT_BPF

m

CONFIG_NET_CLS_BPF

m

CONFIG_NET_CLS_ACT

y

CONFIG_NET_SCH_INGRESS

m

CONFIG_XFRM

y

CONFIG_IP_ROUTE_CLASSID

y

CONFIG_IPV6_SEG6_BPF

y

CONFIG_BPF_LIRC_MODE2

n

CONFIG_BPF_STREAM_PARSER

y

CONFIG_NETFILTER_XT_MATCH_BPF

m

CONFIG_BPFILTER

n

CONFIG_BPFILTER_UMH

n

CONFIG_TEST_BPF

m

CONFIG_HZ

1000

bpf() syscall

可用

大型程序大小限制

可用

Bounded loop support

可用

ISA extension v2

可用

ISA extension v3

可用

Expand
表 11.2. 可用的程序类型和支持的帮助程序
程序类型可用的帮助程序

socket_filter

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

kprobe

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sched_cls

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_cgroup_id, bpf_get_current_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_skb_set_tstamp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_ipv4, bpf_tcp_raw_gen_syncookie_ipv6, bpf_tcp_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sched_act

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_cgroup_id, bpf_get_current_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_skb_set_tstamp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_ipv4, bpf_tcp_raw_gen_syncookie_ipv6, bpf_tcp_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

tracepoint

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

xdp

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_redirect, bpf_perf_event_output, bpf_csum_diff, bpf_get_current_task, bpf_get_numa_node_id, bpf_xdp_adjust_head, bpf_redirect_map, bpf_xdp_adjust_meta, bpf_xdp_adjust_tail, bpf_fib_lookup, bpf_get_current_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_strtol, bpf_strtoul, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_xdp_get_buff_len, bpf_xdp_load_bytes, bpf_xdp_store_bytes, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_tcp_raw_gen_syncookie_ipv4, bpf_tcp_raw_gen_syncookie_ipv6, bpf_tcp_raw_check_syncookie_ipv4, bpf_tcp_raw_check_syncookie_ipv6, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

perf_event

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_perf_prog_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_read_branch_records, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_get_attach_cookie, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_skb

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_skb_cgroup_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_sk_cgroup_id, bpf_sk_ancestor_cgroup_id, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sock

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_strncmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_in

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_push_encap, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_out

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_xmit

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_skb_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_skb_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_lwt_push_encap, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_criu64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_zFCP_output, bpf_xxxx_reserve, bpf_criu_submit, bpf_criu_submit, bpf_wagon_discard, bpf_ iwl_query, bpf_csum_level, bpf_categories_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_to_tcp_sock, bpf_criu_to_tcp_sock, bpf_ iwl_to_tcp_sock bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sock_ops

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_sock_map_update, bpf_getsockopt, bpf_sock_ops_cb_flags_set, bpf_sock_hash_update, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_wagon_output, bpf_categories_reserve, bpf_categories_submit, bpf_zFCP_discard, bpf_xxxx_query, bpf_ktime_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_wagon_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_request_sock, bpf_PROFILE_to_udp6_sock, bpf_load_hdr_opt, bpf_store_hdr_opt, bpf_reserve_hdr_opt, bpf_categories_hdr_opt, bpf_PROFILE_hdr_opt, bpf_reserve_hdr_opt, bpf_reserve_hdr_opt, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sk_skb

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_skb_load_bytes, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_adjust_room, bpf_sk_redirect_map, bpf_sk_redirect_hash, bpf_get_current_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_MAPPING_lookup_tcp, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_xxxx_output, bpf_probe_read_kernel_reserve, bpf_wagon_submit, bpf_ iwl_discard, bpf_ iwl_query, bpf_categories_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_to_tcp_sock, bpf_criu_to_tcp_sock, bpf_ iwl_to_tcp_sock bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_device

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_csum64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_categories_output, bpf_categories_reserve, bpf_numpy_submit, bpf_PROFILE_discard, bpf_PROFILE_query, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_frequency, bpf_for_each_map_elem, bpf_for_each_map_elem, bpf_ bpf_PROFILE, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_csum_from_mem, bpf_criu_reserve_PROFILE, bpf_unmarshal_submit_criu, bpf_numpy_discard_criu, bpf_categories_read, bpf_unmarshal_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_criu_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

sk_msg

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_msg_redirect_map, bpf_msg_apply_bytes, bpf_msg_cork_bytes, bpf_msg_pull_data, bpf_msg_redirect_hash, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_criu64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ktime_output, bpf_numpy_reserve, bpf_wagon_submit, bpf_ iwl_discard, bpf_ iwl_query, bpf_categories_to_tcp6_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_to_tcp_sock, bpf_criu_to_tcp_sock, bpf_ iwl_to_tcp_sock bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_PROFILE_ns, bpf_for_each_map_elem, bpf_numpy, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs,, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_PROFILE_reserve_zFCP, bpf_PROFILE_submit_numpy, bpf_PROFILE_discard_numpy, bpf_criu_discard_numpy, bpf_wagon_read, bpf_ProductShortName_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

raw_tracepoint

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sock_addr

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_getsockopt, bpf_bind, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_ CephFS_lookup_tcp, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_ PlacementRule64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_categories_output, bpf_categories_reserve, bpf_numpy_submit, bpf_PROFILE_discard, bpf_PROFILE_to_tcp6_sock, bpf_ iwl_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_sock, bpf_ iwl_to_tcp_sock, bpf_ , bpf_PROFILE_to_udp6_sock, bpf_PROFILE_setuptools, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_MAPPING_ns, bpf_for_each_map_elem, bpf_zFCP, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_PROFILE_to_unix_sock, bpf_loop, bpf_loopmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_2023_to_mptcp_sock, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem bpf_wagon_from_mem, bpf_numpy_reserve_criu, bpf_setuptools_submit_criu, bpf_categories_discard_criu, bpf_PROFILE_read, bpf_criu_write, bpf_wagon_data, bpf_ktime_get_tai_ns, bpf_user_mvapich_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lwt_seg6local

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_perf_event_output, bpf_skb_load_bytes, bpf_skb_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_seg6_store_bytes, bpf_lwt_seg6_adjust_srh, bpf_lwt_seg6_action, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_MAPPING64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_PROFILE_output, bpf_numpy_reserve, bpf_PROFILE_submit, bpf_PROFILE_discard, bpf_ktime_discard, bpf_PROFILE_query, bpf_wagon_to_tcp6_sock, bpf_categories_to_tcp_sock, bpf_categories_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_request_sock, bpf_PROFILE_to_udp6_sock, bpf_mvapich_mvapich, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_criu, bpf_ktime_get_setuptools_ns, bpf_for_each_map_elem, bpf_PROFILE, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_csum_to_unix_sock, bpf_loop, bpf_ iwlmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_criu_from_mem, bpf_criu_reserve_criu, bpf_categories_submit_ TOTP, bpf_PROFILE_discard_elem, bpf_categories_read, bpf_categories_read, bpf_unmarshal_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_categories_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

lirc_mode2

不支持

sk_reuseport

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_skb_load_bytes_relative, bpf_get_current_cgroup_id, bpf_sk_select_reuseport, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_xxxx_output, bpf_probe_read_kernel_reserve, bpf_wagon_submit, bpf_ iwl_discard, bpf_ iwl_query, bpf_wagon_PROFILE, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_criu, bpf_ktime_get_categories_ns, bpf_for_each_map_elem, bpf_per_cpu_ptr, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_from_mem, bpf_PROFILE_reserve_csum, bpf_2023_submit_numpy, bpf_map_submit_literal, bpf_wagon_discard_criu, bpf_ProductShortName_read, bpf_ iwl_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

flow_dissector

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_criu_output, bpf_categories_reserve, bpf_categories_submit, bpf_PROFILE_discard, bpf_PROFILE_query, bpf_PROFILE_to_tcp6_sock, bpf_criu_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_ iwl_to_tcp_request_sock, bpf_categories_to_udp6_sock, bpf_PROFILE_criu, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_categories_ns, bpf_for_each_map_elem, bpf_ProductShortName, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_ iwl_to_unix_sock, bpf_loop, bpf_framemp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_categories_to_mptcp_sock, bpf_PROFILE_from_mem, bpf_PROFILE_reserve_PROFILE, bpf_criu_submit_PROFILE, bpf_PROFILE_discard_criu, bpf_PROFILE_read, bpf_PROFILE_write, bpf_PROFILE_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sysctl

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sysctl_get_name, bpf_sysctl_get_current_value, bpf_sysctl_get_new_value, bpf_sysctl_set_new_value, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_MAPPING64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_PROFILE_output, bpf_numpy_reserve, bpf_PROFILE_submit, bpf_PROFILE_discard, bpf_ktime_discard, bpf_unmarshal_query, bpf_ iwl_numpy, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_PROFILE, bpf_ktime_get_categories_ns, bpf_for_each_map_elem, bpf_PROFILE, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_wagon_from_mem, bpf_PROFILE_reserve_PROFILE, bpf_ 0.11.0-_submit_PROFILE, bpf_criu_discard_PROFILE, bpf_criu_read, bpf_unmarshal_write, bpf_unmarshal_data, bpf_ktime_get_tai_ns, bpf_user_categories_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

raw_tracepoint_writable

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_copy_from_user, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_find_vma, bpf_loop, bpf_strncmp, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

cgroup_sockopt

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_strncmp, bpf_get_retval, bpf_set_retval, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

tracing

 

struct_ops

 

ext

 

lsm

 

sk_lookup

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_skc_to_unix_sock, bpf_loop, bpf_strncmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_skc_to_mptcp_sock, bpf_dynptr_from_mem, bpf_ringbuf_reserve_dynptr, bpf_ringbuf_submit_dynptr, bpf_ringbuf_discard_dynptr, bpf_dynptr_read, bpf_dynptr_write, bpf_dynptr_data, bpf_ktime_get_tai_ns, bpf_user_ringbuf_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

syscall

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_get_socket_cookie, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_sk_storage_delete, bpf_send_signal, bpf_skb_output, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_ netobserv64, bpf_get_ns_current_pid_tgid, bpf_xdp_output, bpf_xdp_output, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_unmarshal_output, bpf_PROFILE_reserve, bpf_PROFILE_discard, bpf_ netobserv_query, bpf_PROFILE_to_tcp6_sock, bpf_zFCP_to_tcp_sock, bpf_PROFILE_to_tcp_sock, bpf_PROFILE_to_tcp_timewait_sock, bpf_PROFILE_to_tcp_request_sock, bpf_PROFILE_to_udp6_sock, bpf_get_task_stack, bpf_d_path, bpf_copy_from_user, bpf_PROFILE_numpy, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_criu, bpf_sock_from_file, bpf_for_each_map_elem, bpf_categories, bpf_sys_bpf, bpf_criu_find_by_name_kind, bpf_sys_close, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_get_func_ip, bpf_task_pt_regs, bpf_get_branch_snapshot, bpf_categories_to_unix_sock, bpf_kallsyms_lookup_name, bpf_find_vma, bpf_loop, bpf_mvapichmp, bpf_xdp_get_buff_len, bpf_copy_from_user_task, bpf_copy_from_user_task, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_PROFILE_to_mptcp_sock, bpf_PROFILE_from_mem, bpf_criu_reserve_categories, bpf_numpy_submit_criu, bpf_PROFILE_discard_PROFILE, bpf_zFCP_read, bpf_csum_write, bpf_criu_data, bpf_criu_submit_data, bpf_ktime_get_tai_ns, bpf_user_PROFILE_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

netfilter

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_strtoul, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_categories64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_categories_output, bpf_PROFILE_submit, bpf_PROFILE_discard, bpf_ iwl_query, bpf_categories_query, bpf_per_cpu_ptr, bpf_per_cpu_ptr, bpf_ this_cpu_ptr, bpf_ this_cpu_ptr, bpf_get_current_task_criu, bpf_for_each_map_elem, bpf_unmarshal, bpf_timer_init, bpf_timer_set_callback, bpf_timer_start, bpf_timer_cancel, bpf_task_pt_regs, bpf_loop, bpf_loopmp, bpf_kptr_xchg, bpf_map_lookup_percpu_elem, bpf_criu_from_mem, bpf_categories_reserve_PROFILE, bpf_PROFILE_submit_numpy_PROFILE, bpf_categories_read, bpf_criu_write, bpf_categories_data, bpf_ktime_get_tai_ns, bpf_ktime_get_tai_ns, bpf_user_criu_drain, bpf_cgrp_storage_get, bpf_cgrp_storage_delete

Expand
表 11.3. 可用的映射类型
映射类型可用

hash

数组

prog_array

perf_event_array

percpu_hash

percpu_array

stack_trace

cgroup_array

lru_hash

lru_percpu_hash

lpm_trie

array_of_maps

hash_of_maps

devmap

sockmap

cpumap

xskmap

sockhash

cgroup_storage

reuseport_sockarray

percpu_cgroup_storage

queue

queue

sk_storage

devmap_hash

struct_ops

ringbuf

inode_storage

task_storage

bloom_filter

user_ringbuf

cgrp_storage

arena_map

附录 A. 按组件划分的问题单列表

在本文档中列出了 Bugzilla 和 JIRA 问题单以供参考。这些链接会指向本文档中描述问题单的发行注记。

Expand
组件票证

389-ds-base

JIRA:RHEL- 80163,JIRA:RHEL-81141,JIRA:RHEL-109034,JIRA:RHEL-109892,JIRA:RHEL-109889,JIRA:RHEL-109885,JIRA:RHEL-107585,JIRA:RHEL-107005,JIRA:RHEL-104593,JIRA:RHEL-104591,JIRA:RHEL-95 444, JIRA:RHEL-897 53, JIRA:RHEL-897 45, JIRA:RHEL-897 36, JIRA:RHEL-79 673, JIRA:RHEL-61347

ModemManager

Jira:RHEL-68732

NetworkManager

JIRA:RHEL-85770,JIRA:RHEL-85765,JIRA:RHEL-83061,JIRA:RHEL-24337,JIRA:RHEL-5852,JIRA:RHEL-24622,JIRA:RHELPLAN-58745,JIRA:RHEL-17619

NetworkManager-libreswan

Jira:RHEL-85768

Release Notes

JIRA:RHELDOCS-20446,JIRA:RHELDOCS-21013,JIRA:RHELDOCS-18935,JIRA:RHELDOCS-16861,Jira:RHELDOCS-17520,JIRA:RHELDOCS-17803,JIRA:RHELDOCS -19072, JIRA:RHELDOCS-16861 ,JIRA:RHELDOCS-17520 ,JIRA:RHELDOCS-17803 ,JIRA:RHELDOCS-18935, JIRA:RHELDOCS-20 472, JIRA:RHELDOCS-21 350, JIRA:RHELDOCS-215 05, JIRA:RHELDOCS-1975 4, JIRA:RHELDOCS-19 889, JIRA:RHELDOCS-2014 6, JIRA:RHELDOCS-18 158, JIRA:RHELDOCS-1 7532 , JIRA:RHELDOCS -17508, JIRA:RHELDOCS- 19022 , JIRA:RHELDOCS -19284, JIRA:RHELDOCS -18312,Jira:RHELDOCS-18480 , JIRA:RHELDOCS -19224, JIRA:RHELDOCS- 19028, JIRA:RHELDOCS- 19029, JIRA:RHELDOCS -18959 , JIRA:RHELDOCS -19013 , JIRA:RHELD OCS-19012 , JIRA:RHELDOCS -19080 , JIRA:RHELDOCS -19050 , JIRA:RHELDOCS -19093 , JIRA:RHELDOCS -19149 , JIRA:RHELDOCS -19133 , JIRA:RHELD OCS-19171 , JIRA:RHELD OCS-19147 , JIRA:RHELD OCS-19139 ,Jira:RHELDOCS-19135,Jira:RHELDOCS-19137, JIRA:RHELD OCS-19154 , JIRA:RHELD OCS-19143, JIRA:RHELD OCS-19151 ,Jira:RHELDOCS-19115, JIRA:RHEL DOCS-18531 , JIRA: RHELDOCS-20135 , JIRA: RHELDOCS-16756 ,Jira:RHELDOCS-16612, JIRA: RHELDOCS-17102 , JIRA: RHELDOCS-17309 , JIRA: RHELDOCS-17545 , JIRA:RHELDOCS-17518 , JIRA:RHELDOCS-17989 , JIRA:RHELDOCS-17702 , JIRA:RHELDOCS-17917 , JIRA: RHELDOCS-19193 , JIRA: RHELDOCS-19603 , JIRA:RHELDOCS-20196 , JIRA:RHELDOCS-16979, Jira:RHELDOCS-19846 ,JIRA:RHELDOCS-20471

anaconda

JIRA:RHEL-10216,JIRA:RHEL-2250,JIRA:RHEL-17205,JIRA:RHEL-63237,JIRA:RHELPLAN-168262,JIRA:RHELPLAN-110940,JIRA:RHELPLAN-53644,JIRA:RHEL-4707,JIRA:RHEL-4711,JIRA:RHELPLAN-94811,JIRA:RHEL- 4741, JIRA:RHELPLAN-130 370, JIRA:RHEL-476 2, JIRA:RHEL-473 7, JIRA:RHEL-9 633, JIRA:RHEL-1 4005, JIRA:RHEL-8086 7, JIRA:RHEL-825 66, JIRA:RHEL-782 72, JIRA:RHEL-138 37, JIRA:RHEL-66155

ansible-collection-microsoft-sql

Jira:RHEL-69311

ansible-pcp

Jira:RHEL-78306

azure-vm-utils

Jira:RHEL-88789

bacula

Jira:RHEL-6856

bind

Jira:RHELPLAN-90604

bootc

Jira:RHEL-90381

bootc-image-builder-container

Jira:RHEL-34807

buildah

Jira:RHEL-115166

ca-certificates

Jira:RHEL-54695

chrony

Jira:RHEL-95016

cockpit

Jira:RHEL-87397, Jira:RHEL-92062

cockpit-machines

Jira:RHEL-31993

cockpit-session-recording

Jira:RHEL-96905

container-tools

JIRA:RHEL-69742,JIRA:RHEL-67859

crash

Jira:RHEL-76270

createrepo_c

JIRA:RHEL-67689,JIRA:RHELPLAN-112860

crypto-policies

Jira:RHEL-91839,JIRA:RHEL-104607,JIRA:RHEL-103793,JIRA:RHEL-2735,JIRA:RHEL-112697

cups-filters

Jira:RHEL-6519

cyrus-sasl

Jira:RHELPLAN-94096

device-mapper-multipath

JIRA:RHEL-78758,JIRA:RHEL-82534,JIRA:RHELPLAN-105944,JIRA:RHELPLAN-99108,JIRA:RHELPLAN-66975

distribution

Jira:RHEL-96056,JIRA:RHEL-6973,JIRA:RHEL-18157,JIRA:RHEL-68141,JIRA:RHEL-22385

dnf

JIRA:RHEL-82310, JIRA:RHEL-84512,JIRA:RHEL-65817,JIRA:RHEL-71125,JIRA:RHELPLAN-118420

dnf-plugins-core

Jira:RHEL-100157

dyninst

Jira:RHEL-87002

edk2

JIRA:RHELPLAN-69533,JIRA:RHEL-82759,JIRA:RHEL-68418

elfutils

Jira:RHEL-86971

fapolicyd

JIRA:RHEL-63090,JIRA:RHEL-69136,JIRA:RHELPLAN-112355,JIRA:RHEL-24345,JIRA:RHEL-520

fence-agents

JIRA:RHEL-79798, JIRA:RHEL-68321,JIRA:RHEL-7601,JIRA:RHEL-88568,JIRA:RHEL-82193,JIRA:RHEL-13088

fips-provider-next

Jira:RHEL-105009, Jira:RHEL-96056

firewalld

Jira:RHEL-17708

gcc

Jira:RHEL-75806

gcc-toolset-15

Jira:RHEL-81741

gdb

JIRA:RHEL-50069,JIRA:RHEL-91381

gdm

Jira:RHEL-95837

gimp

Jira:RHEL-40106

glibc

JIRA:RHEL-56627,JIRA:RHEL-83017,JIRA:RHEL-44920,JIRA:RHEL-101986,JIRA:RHEL-93320,JIRA:RHEL-24168,JIRA:RHEL-50086,JIRA:RHEL-47403, JIRA:RHEL-71922, JIRA:RHEL- 72017 ,JIRA:RHEL-72017,JIRA:RHEL-495 49, JIRA:RHEL-48 820, JIRA:RHEL-688 05, JIRA:RHEL-59712

gnome-control-center

Jira:RHEL-68152

gnome-settings-daemon

Jira:RHEL-11910

gnupg2

Jira:RHELPLAN-117566

gnutls

Jira:RHELPLAN-128129

go-rpm-macros

Jira:RHEL-7366

golang

JIRA:RHELPLAN-129104,JIRA:RHELPLAN-123778

gpsd-minimal

Jira:RHEL-90132

gtk3

Jira:RHEL-11924

hapoxy

Jira:RHEL-74039

httpd

Jira:RHEL-41069

initscripts

Jira:RHEL-79783

ipa

JIRA:RHEL-84277,JIRA:RHEL-30658,JIRA:RHEL-67913,JIRA:RHELPLAN-121751,JIRA:RHELPLAN-113281,Jira:RHEL-12154,JIRA:RHEL-4955

ipa-healthcheck

Jira:RHEL-4957

iproute

Jira:RHEL-90492,JIRA:RHEL-94662

irqbalance

Jira:RHEL-89986

jmc-core

Jira:RHELPLAN-88788

kdump-anaconda-addon

Jira:RHEL-11196

kernel

JIRA:RHELPLAN-102815,JIRA:RHELPLAN-102321,JIRA:RHELPLAN-108169,JIRA:RHELPLAN-154595,JIRA:RHELPLAN-153754,JIRA:RHELPLAN-157294,JIRA:RHELPLAN-147783,JIRA:RHELPLAN-96004 , JIRA:RHELPLAN -99859 , JIRA:RHELPLAN -135779 ,JIRA:RHELPLAN-135779,JIRA:RHELPLAN-114 103, JIRA:RHELPLAN-97 394, JIRA:RHELPLAN-13477 1, JIRA:RHELPLAN-141042

内核/加速器

Jira:RHEL-38583

kernel / Core

Jira:RHEL-25967

kernel / Crypto

Jira:RHEL-20145

kernel/ Debugging-Tracing / Perf

JIRA:RHEL-60216, JIRA:RHEL-53585,JIRA:RHEL-52654,JIRA:RHEL-47454,JIRA:RHEL-47444,JIRA:RHEL-47424,JIRA:RHEL-45095,JIRA:RHEL-20110,JIRA:RHEL-20094,JIRA:RHEL-23496

kernel/ Debugging-Tracing / rtla

Jira:RHEL-94317, Jira:RHEL-86051, Jira:RHEL-77358

kernel / Networking

JIRA:RHEL-88890,JIRA:RHEL-76845,JIRA:RHEL-88552,JIRA:RHEL-88551

kernel / Networking / IPSec

Jira:RHEL-30141, Jira:RHEL-1015

kernel / Networking / NIC Drivers

JIRA:RHEL-73517,JIRA:RHEL-63642,JIRA:RHEL-9897,JIRA:RHEL-36283

内核/网络/Netfilter

Jira:RHEL-81900

内核/平台启用

Jira:RHEL-2564

kernel / Platform Enablement / ppc64

Jira:RHEL-15404,JIRA:RHEL-28702

kernel / RDMA

Jira:RHEL-86016

kernel / Security / Other

Jira:RHEL-15599

kernel / Storage / Multiple Devices (MD)

Jira:RHEL-30730

kernel / Storage / Storage Drivers

JIRA:RHEL-9301,JIRA:RHEL-8171,JIRA:RHEL-8164,JIRA:RHEL-8466,JIRA:RHEL-8104,JIRA:RHEL-25730

kernel / Virtualization

Jira:RHEL-1138

kernel / Virtualization / Hyper-V

JIRA:RHEL-70228,JIRA:RHEL-29919

kernel / Virtualization / KVM

JIRA:RHEL-11431,JIRA:RHEL-10019,JIRA:RHEL-7212,JIRA:RHEL-17331,JIRA:RHEL-45585,JIRA:RHEL-32892,JIRA:RHEL-38957

内核/虚拟化/公共云启用

Jira:RHEL-81748

kernel-rt

Jira:RHELPLAN-153123

kernel-rt/Other

JIRA:RHEL-76757,JIRA:RHEL-9318

kexec-tools

JIRA:RHEL-33413, JIRA:RHELPLAN-129876,JIRA:RHEL-11471,JIRA:RHELPLAN-115732

keylime

Jira:RHEL-78418, Jira:RHEL-11867, Jira:RHEL-1518

kmod

Jira:RHELPLAN-126922

kmod-kvdo

Jira:RHEL-8354

kpatch

Jira:RHEL-85579

krb5

JIRA:RHELPLAN-114497,JIRA:RHEL-4875,JIRA:RHEL-4888

libabigail

Jira:RHEL-16629

libdnf

Jira:RHELPLAN-128381

libotr

Jira:RHELPLAN-122108

libvirt

JIRA:RHELPLAN-139536, JIRA:RHELPLAN-119912

libvirt / General

Jira:RHEL-111840,JIRA:RHEL-72976,JIRA:RHEL-11435,JIRA:RHEL-73319,JIRA:RHEL-7043,JIRA:RHEL-89415

libxcrypt

Jira:RHELPLAN-106338

llvm

Jira:RHEL-81006

lorax-templates-rhel

Jira:RHEL-91930

lvm2

JIRA:RHEL-67039,JIRA:RHELPLAN-107107

mysql

Jira:RHELPLAN-92864

nfs-utils

Jira:RHELPLAN-120807

nmstate

JIRA:RHEL-88993,JIRA:RHEL-85784,JIRA:RHEL-80725,JIRA:RHEL-80418,JIRA:RHEL-67631,JIRA:RHEL-32495

nodejs

JIRA:RHEL-35990,JIRA:RHEL-90821

nss

Jira:RHEL-103366, Jira:RHEL-127671

nvme-stas

Jira:RHELPLAN-58357

open-vm-tools

Jira:RHELPLAN-106947

opencryptoki

Jira:RHEL-73344

opensc

Jira:RHEL-96029

openscap

Jira:RHELPLAN-145263

openslp

Jira:RHEL-6995

openssh

Jira:RHEL-104580,JIRA:RHELPLAN-113842,JIRA:RHEL-45727

openssl

JIRA:RHEL-80854,JIRA:RHEL-90854,JIRA:RHEL-95239,JIRA:RHELPLAN-148207,JIRA:RHELPLAN-50959,JIRA:RHELPLAN-48241,JIRA:RHEL-40605,JIRA:RHELPLAN-113856,JIRA:RHELPLAN-139207

osbuild-composer

Jira:RHEL-4649

oscap-anaconda-addon

JIRA:RHEL-1824,JIRA:RHELPLAN-44202

pacemaker

Jira:RHEL-86143,JIRA:RHEL-84018

pam

Jira:RHEL-15324

pause-container

Jira:RHELPLAN-127619

pcp

Jira:RHEL-83154

pcs

JIRA:RHEL-76177,JIRA:RHEL-76170,JIRA:RHEL-76154,JIRA:RHEL-76153,JIRA:RHEL-76060,JIRA:RHEL-76059,JIRA:RHEL-76055,JIRA:RHEL-35420,JIRA:RHEL-92044,JIRA:RHEL-34781

perl-DBD-MySQL

Jira:RHEL-77083

pkcs11-provider

Jira:RHEL-105625

pki-core

JIRA:RHEL-98719,JIRA:RHELPLAN-121754

podman

JIRA:RHEL-88521, JIRA:RHEL-88472,JIRA:RHEL-88464,JIRA:RHEL-88307,JIRA:RHEL-110317,JIRA:RHEL-32267,JIRA:RHEL-70217,JIRA:RHEL-88121,JIRA:RHELPLAN-117005

postgis

Jira:RHEL-81603

procps-ng

Jira:RHEL-46760

python-blivet

JIRA:RHEL-8008,JIRA:RHEL-8012

python-drgn

Jira:RHEL-86264

python3.11-lxml

Jira:RHELPLAN-143480

qemu-kvm

JIRA:RHEL-86032,JIRA:RHEL-57677,JIRA:RHELPLAN-81033,JIRA:RHELPLAN-75969,JIRA:RHELPLAN-114513,JIRA:RHELPLAN-99854,JIRA:RHELPLAN-63771,JIRA:RHELPLAN-150884,JIRA:RHELPLAN-118495,JIRA:RHEL-7478,JIRA:RHEL-62742,JIRA:RHEL-67699,JIRA:RHEL-66229, JIRA:

qemu-kvm / Devices

Jira:RHEL-1220

qemu-kvm / Devices / CPU Models

Jira:RHEL-17614

qemu-kvm / Graphics

Jira:RHEL-7135

qemu-kvm/Live Migration

Jira:RHEL-7096

qemu-kvm / Networking

Jira:RHEL-7337,JIRA:RHEL-7335,JIRA:RHEL-7336,JIRA:RHEL-333,JIRA:RHEL-21867

qemu-kvm / Storage

Jira:RHEL-82906

rear

Jira:RHEL-56045

redhat-release

Jira:RHEL-86164

resource-agents

JIRA:RHEL-88429, JIRA:RHEL-88035,JIRA:RHEL-85220,JIRA:RHEL-7688,JIRA:RHEL-32265

restore

Jira:RHELPLAN-94704

rhel-bootc-container

Jira:RHEL-33208

rhel-system-roles

JIRA:RHEL-99089,JIRA:RHEL-95874,JIRA:RHEL-104659,JIRA:RHEL-102637,JIRA:RHEL-84930,JIRA:RHEL-104676,JIRA:RHEL-104891,JIRA:RHEL-95885,JIRA:RHEL-82825,JIRA:RHEL-103889,JIRA:RHEL-8 8299, JIRA:RHEL-84 951, JIRA:RHEL-101 678, JIRA:RHEL-875 79, JIRA:RHEL-175 64, JIRA:RHEL-107 049, JIRA:RHEL-1070 15, JIRA:RHEL-10673 3, JIRA:RHEL-10509 5, JIRA:RHEL-1035 75, JIRA:RHEL- 101663, JIRA:RHEL- 94444, JIRA:RHEL- 93296, JIRA:RHEL- 88772, JIRA:RHEL- 88314, JIRA:RHEL- 88251, JIRA:RHEL- 88241, JIRA:RHEL- 85872, JIRA:RHEL -85702, JIRA:RHEL- 84940, JIRA: RHEL-84920, JIRA: RHEL-84910 , JIRA: RHEL-84362 , JIRA: RHEL-85079 , JIRA: RHEL-81755 , JIRA:RHELPLAN -95747 , JIRA:RHELPLAN -133165 , JIRA:RHEL-1172

rng-tools

Jira:RHEL-91119

rpm

Jira:RHEL-35619,JIRA:RHEL-52772

rsyslog

Jira:RHEL-66274, Jira:RHEL-92262

rteval

Jira:RHEL-97540

rust

Jira:RHEL-81601

rust-rpm-sequoia

Jira:RHEL-126412, Jira:RHEL-111478

s390utils

Jira:RHEL-73342

samba

Jira:RHEL-89873

scap-security-guide

JIRA:RHEL-111009,JIRA:RHEL-1800,JIRA:RHELPLAN-107318

seabios

Jira:RHEL-7110

selinux-policy

JIRA:RHEL-87744,JIRA:RHEL-82674,JIRA:RHEL-69526,JIRA:RHEL-95342,JIRA:RHEL-11792,JIRA:RHELPLAN-115609,JIRA:RHEL-28814

shim

Jira:RHEL-18969

scs

JIRA:RHEL-71825,JIRA:RHEL-62972,JIRA:RHEL-67097,JIRA:RHEL-73028,JIRA:RHEL-81187,JIRA:RHEL-81634,JIRA:RHEL-84078,JIRA:RHELPLAN-51452

sssd

Jira:RHELPLAN-44204

stalld

Jira:RHEL-108827

stunnel

Jira:RHEL-52317

subscription-manager

JIRA:RHEL-84890,JIRA:RHEL-29178,JIRA:RHELPLAN-146101,JIRA:RHELPLAN-137234

Subversion

Jira:RHEL-79948

sysstat

Jira:RHEL-12009, Jira:RHEL-26275

systemd

JIRA:RHEL-50534,JIRA:RHELPLAN-100926,JIRA:RHEL-6105,JIRA:RHEL-92781

systemtap

Jira:RHEL-87000

tftp

Jira:RHEL-77491

tigervnc

Jira:RHELPLAN-114314

toolbox-container

Jira:RHEL-84787

trustee-guest-components

Jira:RHEL-68141

tuned

JIRA:RHELPLAN-129881,JIRA:RHEL-79914

tzdata

Jira:RHEL-105043

ubi9-container

Jira:RHEL-62749

unbound

Jira:RHELPLAN-117492

valgrind

Jira:RHEL-86998, Jira:RHEL-75468

valkey

Jira:RHEL-89978

vdo

Jira:RHEL-83857,JIRA:RHEL-30525

virt-v2v

JIRA:RHELPLAN-14792 6,JIRA:RHEL-13340

virtio-win

Jira:RHEL-11810, Jira:RHEL-11366, Jira:RHEL-1609, Jira:RHEL-869

virtio-win / distribution

JIRA:RHEL-1860,JIRA:RHEL-574

virtio-win / virtio-win-prewhql

JIRA:RHEL-1084,JIRA:RHEL-935,JIRA:RHEL-12118,JIRA:RHEL-1212,JIRA:RHEL-53962

virtiofsd

Jira:RHEL-87161

webkit2gtk3

Jira:RHEL-4157

xdp-tools

Jira:RHEL-3382

其他

JIRA:RHELDOCS-20446 ,JIRA:RHELDOCS-20639,JIRA:RHELDOCS-20303,JIRA:RHELDOCS-21029,Jira:RHELDOCS-19500,JIRA:RHELDOCS-21016,JIRA:RHELDOCS-21025,JIRA:RHELDOCS-21026,JIRA:RHELDOCS-2063 3, JIRA:RHELDOCS-205 46, JIRA:RHELDOCS-20 421 , JIRA:RHELDOCS-2124 1, Jira:RHELDOCS-2123 0, JIRA:RHELDOCS-21 218, JIRA:RHELDOCS-2131 3, JIRA:RHELDOCS-21241, JIRA:RHELD OCS-21230 , JIRA:RHELDOCS-21218, JIRA:RHELDOCS-20421, JIRA:RHELDOCS -20781, JIRA:RHELDOCS- 21013, JIRA:RHELDOCS- 19756 , JIRA:RHELDOCS - 21314, JIRA:RHELDOCS -21315 , JIRA:RHELDOCS-21316, JIRA:RHELDOCS- 21317, JIRA:RHELDOCS -21318 , JIRA:RHELD OCS-21319 , JIRA:RHELD OCS-21320 , JIRA:RHELDOCS -21322 , JIRA:RHELD OCS-17040 ,Jira:RHEL-88550 , JIRA:RHELDOCS -20059 , JIRA: RHELPLAN-27394 , JIRA:RHELPLAN-27737 , JIRA:RHELDOCS -18935 , JIRA:RHEL DOCS-21376 , JIRA:RHELD OCS-20258 , JIRA:RHELD OCS-16861 , JIRA:RHEL DOCS-17520 , JIRA:RHEL DOCS-17752 , JIRA:RHELD OCS-17803 , JIRA:RHEL DOCS-17468 , JIRA:RHELD OCS-17535 , JIRA: RHELDOCS-21350 , JIRA:RHEL DOCS-19754 , JIRA:RHEL DOCS-19455, JIRA:RHEL-91106 ,Jira:RHELDOCS-19815, JIRA:RHEL DOCS-19716 , JIRA:RHEL DOCS-19809 , JIRA:RHEL DOCS-19810 , JIRA: RHELDOCS-19523, JIRA: RHELDOCS-20146 , JIRA:RHELDOCS-20283 , JIRA: RHELDOCS-20464 ,Jira:RHELDOCS-20519, JIRA:RHELDOCS-20718 , JIRA:RHELDOCS-17532 , JIRA:RHELDOCS-17508, JIRA:RHELDOCS-19004 , JIRA:RHELDOCS-18312 , JIRA:RHELDOCS-18480 , JIRA:RHELDOCS-18701 , JIRA:RHELDOCS-18702 , JIRA:RHELDOCS-18703 , JIRA:RHELDOCS-19224 , JIRA:RHELDOCS-19028 , JIRA:RHELDOCS-19029, JIRA:RHELDOCS-18592, JIRA:RHELDOCS-18593, JIRA:RHELDOCS-18803, JIRA:RHELDOCS-18207 , JIRA:RHELDOCS-19013, JIRA:RHELDOCS-19021, JIRA:RHELDOCS-19012 , JIRA:RHELDOCS-19068, JIRA:RHELDOCS-19069, JIRA:RHELDOCS-19080, JIRA:RHELDOCS-19050, JIRA:RHELDOCS-19093, JIRA:RHELDOCS-191 15, JIRA:RHELPLAN -67314 , JIRA: RHELPLAN-110763,JIRA: RHELPLAN-69554 , JIRA:RHELPLAN -113995, JIRA:RHELD OCS-20135, JIRA:RHELPLAN-122745 , JIRA:RHELPLAN-99136 , JIRA: RHELPLAN-103232, JIRA:RHELPLAN- 60153, JIRA: RHELPLAN-88246 , JIRA:RHELPLAN-100087 ,JIRA:RHELPLAN-100639 , JIRA:RHELPLAN-100639 JIRA:RHELPLAN-113659, JIRA:RHELPLAN-98983 , JIRA:RHELPLAN-131882, JIRA:RHELPLAN -139805 , JIRA:RHEL DOCS-16756 , JIRA:RHELPLAN -153267, JIRA:RHELDOCS -16300 , JIRA:RHELDOCS -16432, JIRA:RHELDOCS-163 93, JIRA:RHELDOCS -16612 , JIRA:RHELDOCS -17102, JIRA:RHELDOCS -17015 , JIRA:RHELD OCS-18049 , JIRA:RHELD OCS-17135 , JIRA:RHELD OCS-17545 , JIRA:RHELD OCS-17038 , JIRA:RHELD OCS-17495 , JIRA:RHELD OCS-17518 , JIRA:RHELDOCS -17462 , JIRA:RHELD OCS-18106 , JIRA:RHELD OCS-17782, Jira: RHELDOCS-19193, JIRA:RHELPLAN-157225, JIRA:RHELPLAN-10061,JIRA:RHELPLAN-11 0191, JIRA:RHELPLAN -96940, JIRA: RHELPLAN-117234, JIRA:RHELPLAN-119001,JIRA:RHELPLAN-119852, JIRA:RHELPLAN-119655,JIRA:RHELPLAN-112 043, JIRA:RHELPLAN -121205, JIRA:RHELPLAN-121049,JIRA:RHELPLAN-109613 , JIRA: RHELPLAN-145001 , JIRA:RHELD OCS-19603 , JIRA: RHELDOCS-18064 , JIRA:RHELDOCS-16427, JIRA:RHELPLAN-150080, JIRA:RHELPLAN-154195 , JIRA:RHELPLAN-83423 , JIRA:RHEL DOCS-17719 , JIRA: RHELDOCS-19945 , JIRA:RHELDOCS-18720 , JIRA:RHELDOCS-18435 , JIRA:RHELDOCS-18863, JIRA:RHELDOCS-19728 , JIRA: RHELDOCS-19539 , JIRA: RHELDOCS-19734 , JIRA: RHELDOCS-19948 , JIRA:RHELDOCS-19496 , JIRA:RHELDOCS-21325

附录 B. 修订历史

0.0-0

2021 年 11 月 12 日星期三,Valentina Ashirova (vaashiro@redhat.com)

  • 发布 Red Hat Enterprise Linux 9.7 发行注记。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部