9.6 发行注记


Red Hat Enterprise Linux 9.6

Red Hat Enterprise Linux 9.6 的发行注记

Red Hat Customer Content Services

摘要

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

对红帽文档提供反馈

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

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

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

第 1 章 概述

1.1. RHEL 9.6 的主要变化

安装程序和镜像创建

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

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

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

RHEL for Edge

RHEL for Edge 的主要亮点:

  • RHEL for Edge 默认不再包含 dnsmasq 软件包。
  • 现在,您可以在构建以下镜像类型时在蓝图中添加文件系统自定义:
  • simplified-installer
  • edge-raw-image
  • edge-ami
  • edge-vsphere
  • 现在,您可以创建符合 FIPS 的 RHEL for Edge 镜像。
  • 现在,您可以通过从 Sqlite 或 Postgresql 数据库存储和查询所有者 Vouchers,来使用 FDO 加入过程作为技术预览。

如需更多信息,请参阅 新功能 - RHEL for Edge

安全性

使用新的 sudo RHEL 系统角色,您可以跨 RHEL 系统大规模一致地管理 sudo 配置。

OpenSSL TLS 工具包已升级到版本 3.2.2。OpenSSL 现在支持证书压缩扩展(RFC 8879),Brainpool 曲线已添加到 TLS 1.3 协议(RFC 8734)中。

ca-certificates 程序现在以 OpenSSL 目录格式提供可信的 CA root。

crypto-policies 软件包已更新,来将其控制权扩展到 Java 中的算法选择。

SELinux 策略现在提供了一个布尔值,其允许 QEMU 客户机代理执行受限的命令。

NSS 加密工具包软件包已 rebase 到上游版本 3.101。

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

内核

此发行版本为内核稳定性、性能和特性提供了重要更新。与 POSIX_FADV_NOREUSE 相关的 MADV_RANDOM 性能的最新更改已被恢复,以保持预期的应用行为。

eBPF 工具已更新,与 Linux 内核版本 6.12 一致,TPM_TIS 已 rebase 到 upstream 6.7 以便增强 Lenovo 硬件支持。另外,kdump 被 rebase 到版本 6.10。

NVMf-FC kdump 现在支持 IBM Power 系统,以运行 kexec-tools

对于 cgroup v2/proc/cgroups 文件已弃用,cgroup.stat 文件现在为 cgroup 子系统信息提供防御源。

有关本发行版本中引入的功能以及现有功能更改的更多信息,请参阅 新功能 - 内核

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

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

  • Apache HTTP Server 2.4.62
  • Node.js 22

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

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

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

  • GCC 11.5
  • annobin 12.92
更新了性能工具和调试器

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

  • GDB 14.2
  • Valgrind 3.24.0
  • SystemTap 5.2
  • elfutils 0.192
  • libabigail 2.6
更新了性能监控工具

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

  • PCP 6.3.7
  • Grafana 10.2.6
更新了编译器工具集

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

  • GCC Toolset 14
  • LLVM Toolset 19.1.7
  • Rust Toolset 1.84.1
  • Go Toolset 1.23

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

Red Hat Enterprise Linux 系统角色

9.6 RHEL 系统角色中的主要新功能:

  • 使用新的 RHEL 系统角色 aide,您可以检测对文件、目录和系统二进制文件的未授权更改。
  • 使用 systemd RHEL 系统角色,除了系统单元外,您现在还可以管理用户单元
  • 您可以使用 ha_cluster RHEL 系统角色以可反馈到角色的格式导出现有集群的 corosync 配置,来创建相同的集群。
  • 您可以使用 podman RHEL 系统角色管理类型 Pod 的四元组单元。
  • metrics RHEL 系统角色现在支持 Valkey 作为 Redis 的一个替代。

如需更多信息,请参阅 新功能 - Red Hat Enterprise Linux 系统角色

云环境中的 RHEL

现在,您可以使用 OpenTelemetry 框架从 RHEL 云实例收集遥测数据,如日志、指标和跟踪,并将数据发送到外部分析服务,如 AWS CloudWatch。

如需更多信息,请参阅 新功能 - 云环境中的 RHEL

1.2. 原位升级

从 RHEL 8 原位升级到 RHEL 9

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

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

    • 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

主要改进包括:

  • 由于在 RHEL 9 内核中引导时出现问题,您只能将 ARM 机器升级到 RHEL 9.4。这个问题现已解决,ARM 机器可以在所有支持的升级路径中升级,即从 RHEL 8.10 到 RHEL 9.4 和 RHEL 9.6。
  • 在运行 leapp 工具时会自动调整资源限制,以防止 leapp 执行过程中的各种错误。
  • 如果存储使用了使用 Clevis TPM 2.0 令牌配置的 LUKS2 格式,则具有加密存储的系统可以被升级。
  • 通过使用内核命令行中的 net.naming-scheme 参数,实施一个新的解决方案来在升级过程中保留网络接口卡(NIC)名称。
  • 介绍使用 Red Hat Update Infrastructure (RHUI)在系统中配置原位升级。如需更多信息,请参阅使用 RHUI 配置原位升级
从 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 服务可让您主动发现、检查并解决已知的技术问题,所有 RHEL 订阅都可以使用它。有关如何安装 Red Hat Insights 客户端并将您的系统注册到该服务的说明,请查看 Red Hat Insights 入门页面。

注意

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



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

第 2 章 RHEL 9 发布的内容

2.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 文档。

2.2. 软件仓库

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

  • BaseOS
  • AppStream

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

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

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

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

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

2.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 文档中的解释应用程序兼容性等级。

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

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

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

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

第 3 章 新功能

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

3.1. 安装程序和镜像创建

添加了对 CA 证书的 Kickstart 支持,以便在安装过程中启用加密的 DNS 配置

添加了对 Kickstart 文件中的 %certificate 部分的支持,以便在安装程序环境和安装的系统中安装 CA 证书。这简化了设置过程,并确保安装后加密的 DNS 可以正常工作,从而减少了手动配置和安全漏洞。证书以 Base64 ASCII 格式内联,并通过 --dir--filename 选项导入。此增强有助于将加密的 DNS 配置作为 Zero Trust Architecture 要求的一部分。在安装过程中设置的加密 DNS 从一开始就确保安全的 DNS 解析,从而在自动化部署中提高了安全性和合规性。

Jira:RHEL-61430[1]

RHEL 镜像构建器支持创建带有高级分区的磁盘镜像

有了此增强,RHEL 镜像构建器获得了更多用于自定义分区和创建带有高级分区布局的磁盘镜像的选项。您可以创建带有自定义挂载点(例如,包括自定义挂载选项、基于 LVM 的分区和基于 LVM 的 SWAP)的磁盘镜像,来使用蓝图文件更改 //boot 目录的大小。

Jira:RHELDOCS-19584[1]

bootc-image-builder 现在支持创建带有高级分区的镜像模式磁盘镜像

有了这个增强,bootc-image-builder 工具获得了更多自定义分区并创建带有高级分区布局的磁盘镜像的选项。您可以使用 bootc-image-builder 工具创建带有自定义挂载点的 image-mode RHEL 的磁盘镜像,包括自定义挂载选项、基于 LVM 的分区和基于 LVM 的 SWAP,来例如使用 config.toml 更改 //boot 目录的大小。

Jira:RHELDOCS-19291[1]

bootc 镜像构建器工具 在 RHEL 中正式发布

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

Jira:RHELDOCS-17468[1]

3.2. 安全性

pcsd 现在提供- -disable-polkit 选项

在这个版本中,您可以使用-- disable-polkit 选项启动 pcsd 服务来关闭 PolicyKit 授权框架。在没有 polkit 的情况下运行 pcsd 可启用在有限的环境中访问 PKCSGRESS 设备,如初始 RAM 磁盘。因此,Clevis 解密客户端可以在引导时自动解锁 LUKS 加密卷。

Jira:RHEL-34856

SSH 现在提供了一个链接,其中包含有关 SSH 登录错误消息的更多详情

如果出现早期错误,ssh 命令行工具会提供一个到红帽客户门户网站页面的链接,其中包含有关常见错误消息和解决它们的步骤的更多详情。这在使用交互模式时帮助对 SSH 登录问题进行故障排除。

Jira:RHEL-33809[1]

PKCS-tool 现在显示对象 URI

在这个版本中,pkcs11-tool -Lpkcs11-tool -O 命令会在输出中包含 uri: 字段。在配置 pkcs11 Clevis pin 时,您可以使用 URI 信息来自动解锁 LUKS 加密驱动器。

Jira:RHEL-53115

CBC 密码现在可以在 crypto-policies中阻止

在这个版本中,crypto-policies 使用 openssl -CBC CipherString 指令。因此,如果在 crypto-policies 中都没有启用 CBC 密码套件,则 OpenSSL 中会禁用 CBC 密码套件。

Jira:RHEL-76524[1]

nettle rebase 到 3.10.1

nettle 库软件包已更新至上游版本 3.10.1。此版本提供各种 bug 修复、优化和增强,最重要的是:

  • 在 64 位 PowerPC 架构(SHA-256、AES 解密和 AES-GCM)上提高了性能。
  • 添加了一个新的确定性随机位生成器 DRBG-CTR-AES256。
  • 添加了 RSA-OAEP,它是一个使用新的 OAEP padding 方案的 RSA 加密/解密。
  • 添加了一个 SHA-3 系列的任意长度哈希函数 SHAKE-128。
  • 添加了 SHAKE-128 和 SHAKE-256 的流 API。
  • MD5 assembly 已删除。这可能会对性能产生略微影响。

Jira:RHEL-52740[1]

rsyslog rebase 到 8.2412.0

rsyslog 软件包已更新到 RHEL 9.6 中的上游版本 8.2412.0。除了其他修复和增强,您可以将规则集绑定到 imjournal 模块。通过这种优化,可以在输入阶段过滤和处理日志消息,这减少了主消息队列上的负载。这可最小化资源利用率,并确保更顺畅地处理高容量日志。

Jira:RHEL-65177

OpenSCAP rebase 到 1.3.12

OpenSCAP 软件包已更新到上游版本 1.3.12。这个版本提供 bug 修复和各种改进。如需更多信息,请参阅 OpenSCAP 发行注记

Jira:RHEL-88413

clevis rebase 到版本 21,支持 PKCS modprobe

clevis 软件包已升级到版本 21。此版本包含很多改进和 bug 修复,特别是:

  • 添加了 clevis-pin-pkcs11 子软件包,其提供了使用 PKCS #11 设备(智能卡)解锁 LUKS 加密卷的 pkcs11 密码。
  • 添加了对 clevis-udisks2 子软件包的两个检查。
  • 添加了防止 "Address in use" 错误的修复。

Jira:RHEL-60257

新的 Keylime 策略管理工具

新的 keylime-policy 工具将 Keylime 运行时策略的所有管理任务与已测量的引导策略集成在一起,并改进了生成策略的性能。

Jira:RHEL-75797

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

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

Jira:RHEL-54996[1]

SELinux 策略中限制的其他服务

此更新将额外的规则添加到限制以下 systemd 服务的 SELinux 策略中:

  • iio-sensor-proxy
  • power-profiles-daemon
  • switcheroo-control
  • samba-bgqd

因此,这些服务不再使用 unconfined_service_t SELinux 标签运行,这违反了 CIS 服务器级别 2 基准 "Ensure No Daemons are Unconfined by SELinux" 规则,并在 SELinux enforcing 模式下成功运行。

JIRA:RHEL-17346, JIRA:RHEL-53124, JIRA:RHEL-61117,JIRA:RHEL-24268

SCAP 安全指南 rebase 到 0.1.76

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

Jira:RHEL-74240

Keylime 需要 HTTPS 进行吊销通知

Keylime 组件需要使用更安全的 HTTPS 协议来撤销通知 Webhook,而不是 HTTP。因此,Keylime 验证器现在需要撤销通知 Webhook 服务器 CA 证书。您可以将其添加到 trusted_server_ca 配置选项中,或者将其添加到系统信任存储中。

Jira:RHEL-78313

3.3. RHEL for Edge

支持使用 FDO 为 RHEL 系统部署镜像模式

在这个版本中,您可以使用 FIDO Device Onboarding (FDO)进程(作为技术预览)为 RHEL 系统部署镜像模式,以向这个系统提供配置。在 ISO 构建中包含 Kickstart 文件来配置安装过程的任何部分,但基础镜像部署除外。如果您将 ISO 与 bootc 容器镜像搭配使用,则 bootc-image-builder 会自动安装 ostreecontainer,这是安装容器镜像的命令。您仍然可以配置任何内容,但 ostreecontainer 命令除外。

Jira:RHELDOCS-19610[1]

RHEL 提供了 greenboot 软件包版本 0.15.8

greenboot 软件包已更新至版本 0.15.8,它提供了 bug 修复和增强。主要变更包括:

  • 修复了当 bootcrpm-ostree 可用时 bootcrpm-ostree 的兼容性。
  • 常规 bug 修复:如果 bootc 不可用,请使用 rpm-ostree 进行回滚。

Jira:RHEL-80003

3.4. 软件管理

RHEL 用户的镜像模式现在可以使用 dnf --transient 执行在重启时重置的软件包事务

在以前的版本中,RHEL 用户的镜像模式可能会通过运行 bootc usr-overlay 命令临时安装、删除和升级软件包,来解锁系统,然后通过运行 DNF 命令来进行更改。如果您使用 bootc usr-overlay,当系统重启时,/usr 目录覆盖会消失,对其所做的所有更改都将重置。对其他目录的更改,包括 /etc 中的配置以及 /var 中的程序状态,在重启后保持不变。

有了此更新,已向 DNF 中添加了一个新的 --transient 标志和一个新的 persistence 配置选项,以提高 bootc 系统上的用户体验。您现在可以使用以下选项之一跳过 bootc usr-overlay 步骤:

  • 使用 dnf --transient 命令。
  • dnf.conf 文件中将 persistence 选项设置为 transient
注意

与使用 bootc usr-overlay 不同,,--transientpersistence=transient 确保 /usr 目录在事务之前、期间和之后仍然对其他进程保持只读。

例如,要临时安装 make 软件包,请输入:

# dnf install --transient make
Copy to Clipboard Toggle word wrap

Jira:RHEL-70917

改进了在锁定的 OSTree 或 bootc 系统上使用 DNF 时的错误消息

默认情况下,ostree 和 bootc 系统无法由 DNF 管理。在以前的版本中,DNF 错误消息没有说这是一个预期的行为,以及如何更改它。有了此更新,DNF 会检测它是否在只读 OSTree 或 bootc 系统上运行,并告知您在哪里查找如何使用 DNF 管理此类系统的更多详情。

Jira:RHEL-49670

DNF Automatic 现在可以通知用户更新失败

有了此更新,已在 /etc/dnf/automatic.conf 配置文件的 [emitters] 部分中添加了一个新的 send_error_messages 布尔值选项。因此,如果您将 send_error_messages 设置为 yes,DNF Automatic 工具会使用 emit_via 选项中配置的发射器来通知您自动更新失败。

注意

此功能默认为禁用。

Jira:RHEL-61882

3.5. Shell 和命令行工具

忽略重复数据 选项现在可用

在这个版本中,在 logrotate 配置中添加了 ignoreduplicates 选项。选项会忽略 logrotate 配置中的任何重复文件路径,且默认情况下不启用。

Jira:RHEL-5711[1]

maven-openjdk21 软件包现在可用

RHEL 支持使用多个 Java 版本运行 Maven,允许用户选择首选 JDK。在这个版本中,添加了一个新的 maven-openjdk21 软件包,以便使用 OpenJDK 21 进行 Maven 无缝执行。主要变化包括:

  • 为 Maven 工作流扩展一组受支持的 Java 运行时。
  • 提高了开发和构建环境的灵活性。

Jira:RHEL-62175

openCryptoki rebase 到版本 3.24.0

openCryptoki 软件包被 rebase 到版本 3.24.0。添加了对以下情况的支持:

  • 非 IBM Z 平台上的 CCA 令牌(x86_64、ppc64)
  • IBM Dilithium
  • 对加密或解密使用 SHA224、SHA384 和 SHA512 的 RSA-OAEP。
  • PKCS#11 v3.0 SHA3 机制
  • SHA-2 机制
  • 基于 SHA 的密钥派生机制
  • 使用特定于令牌的用户组保护令牌
  • 在 z14 及之后版本上使用 KMA 指令的新的 libica AES-GCM API

Jira:RHEL-50064[1]

libva rebase 到 2.22.0

libva 软件包被 rebase 到 2.22.0。主要改进包括如下:

  • 添加了 VVC 解码 LibVA 接口
  • 添加了对 linux-dmabuf的支持

Jira:RHEL-59629[1]

提供了新模块流 maven 3.9

现在提供了对 maven 3.9 软件包的新更新。在版本 3.9 中,maven 与 maven 2 不兼容。主要改进包括:

  • maven-openjdk21 软件包现在可用。它启用了使用 OpenJDK 21 软件包的无缝执行 Maven。OpenJDK 21 软件包为 Maven 工作流提供一组扩展的 Java 运行时间,提高了开发和构建环境的灵活性。

Jira:RHEL-73128

现在支持多路径合作伙伴设备

drmgr 是一个用于管理逻辑和物理热插拔功能资源的实用程序。有了这个增强 drmgr 支持对多路径驱动器的热插拔添加和删除。

Jira:RHEL-30880[1]

3.6. 基础架构服务

现在,在 CUPS 配置中可以禁用弱密码

在以前的版本中,当您在 CUPS 配置中禁用弱密码时,配置更改不会生效。有了此增强,如果用户希望通过系统策略禁用某些加密算法,如果 SSLOptions NoSystem 不在 CUPS 配置文件中,,CUPS 会遵守系统设置,并且 CUPS 不提供系统范围的禁用算法。

因此,为了避免对现有配置的可能的破坏,指令 SSLOptions NoSystem/etc/cups/cupsd.conf/etc/cups/client.conf 文件中设置。如果用户希望使用 libcupscupsd 守护进程或应用程序遵守系统加密策略,那么它们可以从相应的配置文件中删除上述 SSLOptions 指令:

  • /etc/cups/cupsd.conf :如果 cupsd 守护进程预期遵守系统加密策略。
  • /etc/cups/client.conf :如果希望使用 libcups 的应用程序遵循系统加密策略。

Jira:RHEL-68414[1]

3.7. 网络

添加了对 E825C 接口的支持

添加了对 ice 驱动程序的 Intel Granite Rapids-D 平台的 E825C 网络接口的支持。

Jira:RHEL-57827[1]

i40e 驱动程序支持对 MDD 事件的自动重置行为

当检测到恶意驱动程序检测(MDD)事件时,用于 PCIe* 40 Gigabit Ethernet 的 Intel® Network Adapter 驱动程序现在可以重置有问题的 Single Root I/O Virtualization(SR-IOV)虚拟功能(VF)。您可以通过新的 mdd-auto-reset-vf 选项来激活这个自动重置行为,如下例所示:

ethtool --set-priv-flags _ethX_ *mdd-auto-reset-vf* on
Copy to Clipboard Toggle word wrap

当 VF 发送被归类为恶意的格式错误的数据包时,可能会导致 Tx 队列冻结,使其在几分钟内不可用。但是,如果启用了 mdd-auto-reset-vf ,当 MDD 事件发生时,一个优雅的 VF 重置会自动恢复运行状态。

Jira:RHEL-54223[1]

NetworkManager 现在支持在 NIC 上配置 FEC 编码

有了此增强,NetworkManager 支持在网络接口控制器(NIC)上转发错误修正(FEC)编码。通过在 NIC 上禁用 FEC 编码,您可以降低冗余数据传输的开销,并降低网络流量的延迟。使用以下步骤在 NIC 上配置 FEC 设置:

  1. 使用 nmcli 工具配置 FEC 设置:

    # nmcli con mod __<example_connection_name>__ ethtool.fec off
    Copy to Clipboard Toggle word wrap
  2. 关闭接口以应用 ethtool FEC 编码设置:

    # nmcli con down __<example_connection_name>__
    Copy to Clipboard Toggle word wrap
  3. 启动接口以应用 ethtool FEC 编码设置:

    # nmcli con up __<example_connection_name>__
    Copy to Clipboard Toggle word wrap
  4. 使用 ethtool 工具来:

    # ethtool --show-fec __<example_device_name>__
    Copy to Clipboard Toggle word wrap

Jira:RHEL-24055

NetworkManager 可以自动将路由添加到 DNS 服务器中

使用 ipv4.routed-dns 参数,您可以配置 NetworkManager,以便名称服务器只能通过正确的网络接口访问。除了 NetworkManager 中的 systemd-resolveddnsmasq 后端 DNS 服务外,其他后端服务不支持将名称服务器绑定到正确的网络接口。因此,您可以使用 NetworkManager 通过相关的网络接口向名称服务器添加显式路由。

Jira:RHEL-45878

NetworkManager 默认可以将 ipv4.dhcp-send-hostname 设置为 false

使用此功能,您可以在 NetworkManager 中将所有 IPv4 连接的 ipv4.dhcp-send-hostname 选项设置为 false。要默认禁用这个选项,请将配置片断添加到 /etc/NetworkManager/conf.d/99-no-hostname.conf 文件中,如下所示:

[connection]
match-device=type:ethernet
ipv4.dhcp-send-hostname=0
Copy to Clipboard Toggle word wrap

您还可以为 IPv6 设置此选项。

Jira:RHEL-32685[1]

NetworkManager 支持连接设置的 ip-ping-addressesip-ping-timeout 属性

有了此增强,您可以在 ip-ping-addresses 中添加一个 IP 地址,并使用 ip-ping-timeout 设置设置超时。因此,您可以确保在目标网络可访问后挂载远程服务,如网络文件系统(NFS)。

Jira:RHEL-21160

nmstate 支持 Libreswan 配置上的 require-id-on-certificate 设置

有了此增强,互联网协议安全(IPsec)规范的一种实现 libreswan 现在通过使用 NetworkManager ,支持对 VPN 配置的 require-id-on-certificate 设置。有了此功能,您可以使用 require-id-on-certificate 选项配置主题备用名称(SAN)验证。因此,这个实现根据指定的设置正确强制实施了 SAN 验证:

  • 当设置为 no 时不会执行 SAN 验证
  • 当设置为 yes 时,会验证 SAN

Jira:RHEL-58040[1]

NetworkManager DHCP 客户端支持 DHCPv4 的仅 IPv6 首选选项

有了此增强,DHCPv4 的仅 IPv6 首选选项对于支持的 DHCP 服务器的 NetworkManager 客户端可用。您可以以两种方式使用此选项:全局和本地。如果全局启用,这个选项只允许并优先考虑同时支持 IPv4 和 IPv6 的双网络中的 IPv6 地址。如果通过设置 ipv6.method disabled 选项在本地启用了,则手动分配的 IPv4 地址优先于 DHCP 地址。

Jira:RHEL-14370

xdp-tools rebase 到版本 1.5.1

xdp-tools 软件包已升级至 1.5.1 版本,其提供了多个改进和 bug 修复。主要变更包括:

  • 添加了 xdp-forward 工具,其在支持的网络设备之间启用 XDP 加速的数据包转发。
  • 更新了 xdp-trafficgen 工具,以支持指定用户数据报协议(UDP)数据包大小。
  • 添加了一个新的用于创建 XDP 套接字(XSK)和用户内存(UMEM)对象的基于选项的 API。

Jira:RHEL-73054

wpa_supplicant 被 rebase 到版本 2.11

wpa_supplicant 工具已升级至 2.11 版本,其提供了多个 bug 修复和增强。主要变更包括:

  • 删除了不正确的可扩展身份验证协议(EAP) Session-Id 长度约束。
  • 添加了对 OpenSSL 3.0 API 更改的支持。
  • 为 Extremely High Throughput (EHT)操作启用了 CONFIG_IEEE80211BE 配置选项。
  • 默认禁用对 4 次握手中显式 Service Set Identifier (SSID)保护的支持。您可以使用 ssid_protection=1 配置选项启用它。

如需了解更多详细信息,请参阅上游更改日志

Jira:RHEL-58725

iproute2 已 rebase 到版本 6.11.0

iproute2 软件包已升级至 6.11.0 版本,提供了多个 bug 修复和增强。主要变更包括:

  • 添加了对 mst_enabled 参数的支持
  • 添加了为 VLAN 设置多个生成树实例(MSTI)的支持
  • 添加了对多个生成树(MST)状态的支持
  • 修复了对 ENABLE_BPF_SKSTORAGE_SUPPORT 配置选项的 libbpf 版本检查
  • 添加了对 Berkeley Packet Filter (BPF) socket-local 存储的支持
  • 删除了对未使用和过时的排队规则(qdiscs)和分类器的支持
  • 多个 NULL 去除引用修复和代码优化

有关完整的内容,请参阅 上游文章

Jira:RHEL-62931

绑定设备支持具有 ESN 的 IPsec HW 卸载

在以前的版本中,绑定设备不支持具有扩展序列号(ESN)的 IPSec Hardware HW 卸载功能。因此,在绑定设备上设置具有 HW 卸载和 ESN 的 IPsec 会失败。有了此修复,鉴于绑定端口已支持此功能,您可以在绑定设备上设置具有 ESN 的 IPsec HW 卸载。因此,绑定设备可以正确地卸载 IPsec 流量。

Jira:RHEL-50630[1]

VXLAN 实现中的新"丢弃原因"

在这个 RHEL 内核的更新中,引入了可见性补丁,它会在 Virtual eXtensible Local Area Networking (VXLAN) 实现中添加新的"丢弃原因"。可见性补丁对于故障排除问题非常重要,由于这些添加,VXLAN 中大多数丢弃的数据包现在都有一个附加到提供的额外的上下文的原因。

Jira:RHEL-68063[1]

现在在 RHEL 中完全支持调制解调器的网络驱动程序

在美国,设备制造商支持将联邦通讯委员会(FCC)锁定作为默认设置。FCC 提供了一个锁,来将 WWAN 驱动程序绑定到特定的系统,其中 WWAN 驱动程序提供了一个与调制解调器进行通信的通道。

根据调制解调器 PCI ID,制造商可能会提供工具来解锁 ModemManager ,但它们没有集成在 RHEL 中,因为它们包含闭源的和私有的二进制文件。

如果之前没有解锁,则调制解调器保持不可用,即使 WWAN 驱动程序兼容且可以正常工作。

Red Hat Enterprise Linux 为以下调制解调器提供了全面支持的驱动程序:

  • Intel IPC over Shared Memory (IOSM)- Intel XMM 7360 LTE Advanced
  • MediaTek t7xx (WWAN)- Fibocom FM350GL
  • Intel IPC over Shared Memory (IOSM)- Fibocom L860GL modem
  • 上游中支持的 Qualcomm 设备

Jira:RHELDOCS-16760[1]

nmstate 现在支持配置 IPvLAN

nmstate API 现在支持配置 IPvLAN (一个虚拟网络接口),它增强了网络管理和容器网络。

IPVLAN 支持以下模式:

  • l2: IPvLAN 接收并响应 ARP 请求,这提高了性能,但对网络流量有较少的控制。
  • l3 :IPvLAN 仅处理第 3 层及以上的流量。IPVLAN 不响应 ARP 请求,您必须为相关设备上的 IPvLAN IP 地址手动配置 ARP 表条目。
  • l3s: IPvLAN 与 l3 模式中的处理方式相同,除了相关设备的出口和入口流量都通过默认命名空间中的 netfilter 链传输。
  • Private: private 设置控制 IPvLAN 接口和网络上的其它设备之间的隔离。
  • Vepa: 启用后,IPvLAN 通过中央交换机转发流量,这通过减少广播流量提高网络管理。

在以下示例中,您可以为 l3 模式设置 IPvLAN:

---
interfaces:
  - name: ipvlan0
    type: ipvlan
    state: up
    ipvlan:
      base-iface: eth0
      mode: l3
      private: false
      vepa: false
Copy to Clipboard Toggle word wrap

Jira:RHEL-43438

3.8. 内核

RHEL 9.6 中的内核版本

Red Hat Enterprise Linux 9.6 带有内核版本 5.14.0-570.12.1。

eBPF 工具已更新至 Linux 内核版本 6.12

主要变化和增强包括:

  • BPF 令牌,它支持委派 BPF 功能的子集,从特权系统范围的守护进程委派给可信和非特权的应用程序。
  • BPF 是 是 BPF 程序和用户空间之间的稀疏共享内存区域,用于在 arena 内使指针无缝工作。
  • may_goto 指令,这是验证器和程序之间的合同。verifier 允许程序在大多数情况下执行循环(只要它们运行良好),但保留停止它的权利。
  • BPF verifier 支持 spin lock critical 部分中的静态子program 调用。
  • 支持在会话模式中附加 kprobe BPF 程序,该程序附加到功能条目和返回。条目程序可以决定返回程序是否被执行,程序可以共享 u64 cookie 值。
  • 为原始追踪点程序指定和检索 BPF cookie 的功能,以简化从经典迁移到原始追踪点。
  • 引入了一个新的 bpf_wq API,为延迟事件提供机制。
  • 添加了几个新的 kfuncs (内核函数从 BPF 程序调用)来调用加密 API、启用/禁用抢占、通用位迭代器和各种 VFS 操作。
  • 支持从 BPF 程序声明 kptrbpf_rb_rootbpf_list_head 的数组。
  • 支持为运行的内核检测 kfuncs,并转储可编译的 kfunc 原型。
  • 支持 PowerPC 的 64 位 BPF v4 CPU 指令。
  • 支持弹性分割 BTF,这会在重复时切断 BTF,并使 BTF 尽可能地从模块中压缩 WRT BTF。

Jira:RHEL-63880[1]

查看 cgroup.stat中每个 cgroup 的实例数量

对于 cgroup v2,改进了 cgroup.stat 控制文件,以显示统一层次结构中每个 cgroup 子系统的实例数量,包括任何 dying 文件。

用于显示每个 cgroup 子系统的 cgroup 数量的 /proc/cgroups 文件是为 cgroup v1 设计的。使用 cgroup v2 时,/proc/cgroups 中提供的信息不再适用。对于 cgroup v2,该文件已弃用。

使用 root cgroup 的 cgroup.stat 文件获取正确数量的 cgroup 子系统。这是 cgroup v2/proc/cgroups 替换。

Jira:RHEL-36267[1]

rtla-timerlat 测试过程中在 CPU 上本地禁用空闲状态的新选项: deepest-idle-state

  • deepest-idle-state 的参数是深度允许的空闲状态的数量。如果 -1 是参数中的值,并且禁用所有 CPU 上的空闲状态。
  • rtla-timerlat 中,而不是使用 /dev/cpu_dma_latency 在全局范围内禁用处于空闲状态的 CPU,来添加 deepest-idle-state 选项来为测量运行的 CPU 设置深度允许的空闲状态。

因此,您可以在 rtls-timerlat 测试过程中保存电源并反映实时工作负载,并使用 deepest-idle-state 而不是使用 /dev/cpu_dma_latency 来禁用它们。

Jira:RHEL-69522[1]

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

使用更新的 kpatch-dnf 插件,内核升级与 kpatch 支持一致。管理员可灵活地将内核更新集中到 kpatch 所支持的更新,从而提高了系统升级和整体稳定性。

Jira:RHEL-77113[1]

rteval 工具的容器化

在这个版本中,您可以运行 rteval 工具,及其来自容器镜像的所有运行时依赖项通过 Quay.io 容器 registry 公开获得。这个功能还允许您:

  • 使用部署灵活性,其中旧的 RHEL 版本可能会获得 rteval 的较新版本。
  • 在相同或多个主机上运行多个 rteval 实例。
  • 分配特定的系统资源以 rteval,这样可确保对资源使用量进行精细的控制。

或者,您可以使用 dockerfile 模板使用 rteval 构建自己的容器镜像。您可以在 上游存储库 中找到此 dockerfile 和 README 文件,其中包含更多信息。

Jira:RHEL-9909[1]

TPM_TIS rebase 到 upstream 6.7 for Lenovo 硬件

此发行版本引入了受信任的平台模块(TPM)集成服务(TPM_TIS)固件到上游版本 6.7 的更新版本。这个版本解决了 RHEL 9.6 的稳定性和安全性增强。

Jira:RHEL-52747[1]

kdump 被 rebase 到 6.10

这个更新包含了最新的改进、bug 修复和与崩溃转储相关的 6.10 内核中的功能。

Jira:RHEL-58641

Landlock,一个新的 Linux 安全模块(LSM)

RHEL 9.6 引入了 Landlock,它是一个新的安全功能,使您的容器更安全。Landlock 为 Podman 等进程设置严格的规则,以便通过内核 API 限制对文件系统的访问,无论权限级别如何定义规则,并允许用户在进程可访问的范围内创建硬限制。

使用 Landlock,您可以构建可降低与错误配置或恶意目标进程相关的潜在风险的程序。这使得容器和整个系统变得更加安全。

Jira:RHEL-8810

新的集成测试来验证 kdump 步骤以防止系统失败

有了这个增强,您可以在任何软件或硬件更新后检查 kdump 进程的日志文件,以防止系统失败。在分析输出日志文件后,配置条目(如内存 问题或 某些驱动程序黑名单 )已被修正,以验证 kdump 过程并生成 vmcore。这样可确保在任何软件或硬件更新后在系统崩溃前验证并修正 kdump 过程。

Jira:RHEL-32060[1]

新的 timerlat-interval INTV_UScyclictest-interval INTV_US 选项

有了这个增强,您可以使用 rteval 命令的以下新选项修改运行 timerlatcyclictest 线程中的基础或定期间隔选项:

  • timerlat-interval INTV_US
  • cyclictest-interval INTV_US

请注意,如果没有将其中一个选项与 rteval 一起使用,则应用默认值 100 微秒。

Jira:RHEL-67423[1]

使用 cyclictest在延迟测试本地禁用空闲状态的新选项

  • 默认情况下,cyclictest 工具将 /dev/cpu_dma_latency 设置为 0,以避免在空闲时延迟增加,这样可禁用所有 CPU 上的空闲状态。
  • 新的 deepest-idle-state 选项只禁用为测试选择的 CPU 上的空闲状态。参数指定允许的最大空闲状态,将其设置为 -1 可禁用测量的 CPU 上所有空闲状态。
  • 使用 cyclictest 进行调优应该反映实时工作负载测试,因此使用 deepest-idle-state 而不是使用 /dev/cpu_dma_latency 来禁用 CPU 空闲状态,反映出实时工作负载仅在其运行的 CPU 上空闲状态的用例。
  • 因此,满足所有用例的 cyclictest 覆盖率有所增加,功耗会降低。

Jira:RHEL-65487[1]

IBM Power 上现在支持 NVMf-FC kdump

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

Jira:RHEL-11471[1]

3.9. 引导加载程序

RHEL 9.6 中已强化 GRUB 引导装载程序

此功能增强包括修复作为 GRUB2 代码中主动强化工作的一部分发现的各种安全漏洞。这个 GRUB 引导装载程序的持续主动努力会产生几个漏洞和漏洞,其中有些被严重的 CVE 是非常严重的,例如:

  • CVE-2024-45774 grub2: reader/jpeg: Heap out-of-bounds (OOB) Write during JPEG 解析
  • CVE-2024-45775 grub2: commands/extcmd: Missing check failed allocation
  • CVE-2024-45776 grub2: grub-core/gettext: Integer overflow 会导致 Heap OOB Write 和 Read。
  • CVE-2024-45781 grub2: fs/ufs: OOB 在堆中写入
  • CVE-2024-45783 grub2: fs/hfs+: refcount 可以减少两次
  • CVE-2025-0622 grub2: command/gpg: Use-after-free due are hooks not removed on module unmount
  • CVE-2025-0624: net: OOB 在 grub_net_search_config_file ()中写入
  • CVE-2025-0677 grub2: UFS: Integer overflow 可能会导致在处理符号链接时采用基于越界写入的堆
  • CVE-2025-0690 grub2: read: Integer overflow 可能会导致越界写入

许多这些安全漏洞都是缓冲区或整数溢出,其中 GRUB 没有检查变量的完整性或长度,从而导致出现越界写入的可能性。对于不同上下文中的几个文件系统,可以找到它们。最严重的 CVE-2025-0624 具有 CVSS v3 分数为 7.6,在网络引导过程中涉及用户控制的环境变量的潜在缓冲区溢出。这些漏洞可能会导致在恶意代码执行时覆盖敏感数据,从而绕过安全引导。

所有这些漏洞和漏洞已在 RHEL 9.6 中解决。

Jira:RHELDOCS-20163[1]

3.10. 文件系统和存储

现在支持 EROFS 文件系统

EROFS 是一个轻量级通用只读文件系统,适用于各种只读用例,如嵌入式设备或容器。它为需要它们的场景提供去重和透明压缩。

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

Jira:RHELDOCS-18451[1]

snapm 现在在 RHEL 中提供

快照管理器(snapm)是一个新组件,旨在帮助管理系统状态快照。您可以使用它来回滚更新或更改,并引导到以前的系统快照。在多个卷之间管理快照,并为快照引导和快照回滚配置引导条目通常比较复杂,且容易出错。快照管理器自动执行这些常见任务,并与 Boom Boot Manager 无缝集成,从而简化这个过程。有了此更新,您可以轻松地对系统状态进行快照,应用更新,并在需要时恢复回之前的系统状态。

Jira:RHEL-59005[1]

完全支持带有 TLS 的 NFS

RHEL 9.4 中引入的网络文件系统(NFS)现在完全支持在 RHEL 9.4 中。此功能通过为远程过程调用(RPC)流量启用 TLS 来提高 NFS 安全性,确保客户端和服务器间的加密通信。详情请参阅 配置支持 TLS 的 NFS 服务器

请注意,带有 TLS 的 NFS 依赖于内核 TLS (kTLS)的支持。一般使用的 kTLS 功能作为技术预览提供。详情请查看 技术预览中的发行注记

Jira:RHEL-59704[1]

VFS mnt_idmap 编译时间检查更改向后移植

此功能增强可最小化在后续修复或功能向后移植过程中可能出现的冲突。因此,使用后续后向移植降低回归风险。

Jira:RHEL-33888[1]

CIFS 客户端提供了在 SMB 共享下创建特殊文件的功能

通用 Internet 文件系统(CIFS)客户端能够为 Linux (WSL)符号链接创建原生服务器消息块(SMB)、网络文件系统(NFS)或 Windows 子系统。使用新的 symlink=default|none|native|unix|mfsymlinks|sfu|nfs|wsl 挂载选项来完全禁止创建符号链接,或者选择客户端将创建哪些符号链接。您还可以使用 reparse=default|none|nfs|nfs|nfs|nfs|wsl 挂载选项通过 NFS 或 WSL 重新解析点创建特殊文件,如字符设备、块设备、管道和套接字。要在 NT 文件系统(NTFS)卷上创建 Windows 应用程序支持的原生 Windows 套接字,请使用 nativesocket 挂载选项。

Jira:RHEL-76046[1]

3.11. 高可用性和集群

使用一个 pcs 命令删除多个资源

在此次更新之前,pcs resource deletepcs resource removepcs stonith deletepcs stonith remove 命令都支持一次只删除一个资源。有了此更新,您现在可以使用一个命令一次删除多个资源。

Jira:RHEL-61901

新的 pcs tag 命令选项用于以文本、JSON 和命令格式显示集群资源标签

pcs tag [config] 命令现在支持对以下用例使用 --output-format 选项:

  • 通过指定 --output-format=text ,以纯文本格式显示配置的文本。这是此选项的默认值。
  • 通过指定 --output-format=cmd 来显示从当前集群标签配置创建的命令。您可以使用这些命令在不同的系统上重新创建配置的标签。
  • 通过指定 --output-format=json 显示 JSON 格式的配置的标签,这适用于机器解析。

Jira:RHEL-46284[1]

支持以 JSON 格式和 pcs 命令导出隔离级别配置

pcs stonith configpcs stonith level config 命令现在支持 --output-format= 选项,来以 JSON 格式和 pcs 命令显示隔离级别配置。

  • 指定 --output-format=cmd 会显示从当前集群配置中创建的配置隔离级别的 pcs 命令。您可以使用这些命令在不同系统上重新创建配置的隔离级别。
  • 指定 --output-format=json 显示 JSON 格式的隔离级别配置,它适用于机器解析。

Jira:RHEL-16232

从 Booth 配置中删除后,从 CIB 中删除 Booth 集群票据

使用 pcs booth ticket remove 命令删除 Booth 集群票据后,Booth 票据的状态在 Cluster Information Base (CIB)中保持 loaded 。在从一个站点上的 Booth 配置中删除一个 ticket ,并使用 pcs booth pull 命令将 Booth 配置拉取到另一个站点后,也会出现这种情况。当您配置票据约束时,这可能会导致问题,因为即使在票据被删除后,也可以授予票据约束。因此,集群可能会冻结或隔离一个节点。从 RHEL 9.6 开始,您可以使用 pcs booth ticket cleanup 命令从 CIB 中删除 Booth 票据来防止这种情况。

有关从 CIB 中删除 Booth 票据的详情,请参考 删除 Booth 票据

Jira:RHEL-69040

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

新模块流:mysql:8.4

MySQL 8.4 现在作为一个新模块流 mysql:8.4 提供。与之前提供的 8.0 版本相比,主要改进包括:

  • 密码管理的改进:管理员现在可以强制密码过期、长度、强度、重复使用策略和其他与密码相关的设置。
  • 身份验证:caching_sha2_password 插件现在是默认的,替换了 mysql_native_password 插件以提高安全性。
  • 备份兼容性:mysqldump 工具现在提供一个 -output-as-version 选项,其使逻辑备份与旧的 MySQL 版本兼容。
  • EXPLAIN :此语句现在可以以 JSON 格式显示结果。
  • 弃用和删除:之前弃用的以下功能已被删除:

    • mysqlpump 工具
    • mysql_native_password 身份验证插件
    • mysql_upgrade 工具

有关 MySQL 8.4 中更改的更多信息,请参阅 MySQL 8.0 和 MySQL 8.4 之间的显著区别

有关 MariaDB 的详情,请参考 使用 MariaDB

要安装 mysql:8.4 流,请输入:

# dnf module install mysql:8.4
Copy to Clipboard Toggle word wrap

如果要从 MySQL 8.0 升级,请参阅从 MySQL 8.0 升级到 MySQL 8.4

有关 mysql 模块流的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-68305[1]

在 PHP 8.3 中支持 ARGON2 密码哈希

PHP 8.3 现在作为 php:8.3 模块流提供。有了此增强,现在提供了对 openssl 扩展提供的 ARGON2IARGON2ID 密码哈希算法的支持。

Jira:RHEL-73907

nginx 1.26 模块流现在可用

nginx 1.26 模块流包括各种 bug 修复和增强。主要变更包括:

  • HTTP/2 支持现在在每个服务器上提供。
  • 虚拟服务器现在可以与流模块一起使用。
  • 流连接现在传递给侦听套接字。
  • 对于一些复杂的配置进行了启动性能改进
  • 现在,提供了一个实例化的服务支持。nginx@.service 单元是一个实例化的模板服务。单位的实例使用 /etc/nginx/ &lt;INSTANCE& gt; .conf 配置文件,其中 INSTANCE 替换为实例名称。要允许 nginx 服务器的多个实例同时运行,您必须更改以下配置:

    • pid
    • access_log
    • error_log 用于选择非冲突路径,并侦听选择不同的端口。

您可以检查示例配置文件 /usr/share/doc/nginx/instance.conf,以了解如何进行此类更改。

Jira:RHEL-73508[1]

新的 php:8.3 模块流现在可用

RHEL 9.6 将 PHP 8.3 添加为新的 php:8.3 模块流。主要改进包括:

  • 键入的类常量
  • 动态类恒定抓取
  • 新的 #[\Override] 属性
  • 只读属性的深度克隆

要安装 php:8.3 模块流,请使用以下命令:

# dnf module install php:8.3
Copy to Clipboard Toggle word wrap

如需更多信息,请参阅以下资源:

如果要从 php:8.2 流升级,请参阅 切换到更新的流

Jira:RHEL-21448[1]

3.13. 编译器和开发工具

LLVM Toolset 已更新至 19.1.7

LLVM Toolset 已更新至版本 19.1.7。

LLVM 编译器的显著变化:

  • LLVM 现在使用 debug 记录,一种更有效的调试信息的表示方法。

Clang 的显著变化:

  • C++14 大小的释放现在被默认启用。
  • C++17 支持已完成。
  • 已添加了对 C++20 支持的改进,尤其是围绕模块、概念和 Class Template Argument Deduction(CTAD)。
  • 添加了对 C++23、C++2c、C23 和 C2y 支持的改进。

如需更多信息,请参阅 LLVM 发行注记Clang 发行注记

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

Jira:RHEL-57460

llvm-doc 软件包现在只包含对上游文档的引用。

在以前的版本中,llvm-doc 软件包包含 HTML 格式的 LLVM 文档。有了此更新,软件包只提供 /usr/share/doc/llvm/html/index.html 文件,其包含对上游文档的引用。

Jira:RHEL-68696

Clang 和 LLVM 现在支持用于 debug 部分压缩的 zstd

默认情况下,Clang 和 LLVM 工具使用 Zlib 作为 debug 部分压缩的算法。有了此增强,用户可以使用 Zstandard (zstd)算法,该算法可以达到比 Zlib 更高的压缩率。

例如,如果您想在使用 Clang 编译程序时使用 zstd 压缩,请使用以下命令:

$ clang -Wa,-compress-debug-sections=zstd -Wl,--compress-debug-sections=zstd ...
Copy to Clipboard Toggle word wrap

Jira:RHEL-70328

Rust Toolset rebase 到版本 1.84.1

Rust Toolset 已更新到版本 1.84.1。自之前可用的版本 1.79.0 以来的显著改进包括:

  • 新的 LazyCellLazyLock 类型会延迟初始化,直到第一次使用为止。它们使用每个实例中包含的初始化功能扩展了之前的 OnceCellOnceLock 类型。
  • 标准库中的新排序实现提高了运行时性能和编译时间。它们还会尝试检测比较器没有产生总顺序的情况,从而使其 panic 而不是返回未排序的数据。
  • 添加了对不透明返回类型的精确捕获。新的 use<..> 语法指定了 impl Trait 返回类型中使用的通用参数和生命周期。
  • 添加了 const 代码的许多新功能,例如:

    • 浮点支持
    • 直接用于内联汇编的 const
    • 对静态的引用
    • 可变引用和指针
  • 添加了 不安全 代码的许多新功能,例如:

    • 严格的来源 API
    • &raw 指针语法
    • 安全寻址静态
    • 在不安全的 extern 块中声明安全项
  • Cargo 依赖项解析器现在是版本感知的。如果依赖项 crate 指定了其最低支持的 Rust 版本,则 Cargo 会在解析依赖关系图时使用此信息,而不是使用最新的兼容 semver 的 crate 版本。

兼容性备注:

  • WebAssembly System Interface(WASI)目标从 rust-std-static-wasm32-wasi 变为 rust-std-static-wasm32-wasip1。您还可以通过在命令行上使用 --target wasm32-wasip1 参数来选择 WASI 目标。如需更多信息,请参阅 对 Rust 的 WASI 目标的更改 上游博客文章。
  • 分割的 panic 钩子和 panic 处理程序参数 core::panic::PanicInfostd::panic::PanicInfo 现在是不同的类型。
  • extern "C" 功能会在未捕获的 panics 上中止进程。使用 extern "C-unwind" 来允许跨 ABI 边界的展开。

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

Jira:RHEL-61964

pcp 已 rebase 到版本 6.3.2

Performance Co-Pilot (PCP)已更新至版本 6.3.2。与之前可用的 6.2.2 版本相比,显著的变化包括:

  • pmdaopenmetrics: 现在默认添加了 Virtual Large Language Model (vLLM)指标。
  • pmdalinux :添加了对 Hyper-V 气球指标的支持。
  • pmdalinux :更新了网络和 巨页 内核指标。
  • pmdaamdgpu: 这个新代理从 libdrmlibdrm-amdgpu 库中收集指标。
  • pmdabpftrace :这个代理和许多或较慢的 bpftrace 脚本的启动已被修复。
  • pmdaproc :此代理现在从 Linux fdinfo 接口的 AMD GPU 中收集新指标。
  • pmdahacluster: 指标已更新,以支持新的 Pacemaker 版本。
  • pmdastatsd: 修复了一个 bug ,以避免在负载下崩溃。
  • pcp-htop: 添加了 AMD GPU 指标支持。
  • pcp-htop: Platform 设置已被修复,以启用屏幕标签页。
  • pcp-xsos :添加了这个工具。详情请查看 pcp-xsos 提供了系统的快速摘要
  • pmrep: 更新了多个配置文件指标集。
  • pmlogconf: 更新了多个配置文件自动记录。
  • libpcppmcd: 添加了几个安全强化改进。
  • libpcppmlogger: 添加了对可选的归档的 zstd 压缩的支持。

Jira:RHEL-58953

glibc 库包含改进的 IBM POWER10 优化

有了此增强,glibc 库改进了对 IBM POWER10 平台的硬件支持。因此,strcmp ()memchr () API 的性能在这个平台上已被显著改进。

Jira:RHEL-24740[1]

Valgrind 已 rebase 到版本 3.24.0

valgrind 套件已更新至版本 3.24.0。主要改进包括:

  • 在使用错误的文件描述符时, --track-fds=yes 选项现在显示可抑制的错误,并将错误写入 XML 输出。如果您不使用该选项,则显示的警告将被弃用,并将在以后的版本中删除。
  • 错误消息现在支持 Ada 名称解析。
  • deflate-conversion 工具(z15/arch13)现在支持 IBM Z 平台上的放气压缩调用(DFLTCC)指令。
  • 在 IBM Z 平台上,valgrind 现在支持消息安全辅助(MSA)工具及其 1-9 扩展提供的指令。
  • Valgrind 现在支持以下新的 Linux 系统调用:

    • open_tree
    • move_mount
    • fsopen
    • fsconfig
    • fsmount
    • fspick
    • landlock_create_ruleset
    • landlock_add_rule
    • landlock_restrict_self

Jira:RHEL-64070

libabigail 已 rebase 到版本 2.6

libabigail 库已更新至版本 2.6。主要变更包括:

  • 使用 BPF 类型格式(BTF)和通用跟踪格式(CTF)来更好地支持 Linux 内核模块分析。
  • 改进了中间的内部类型比较算法。
  • 改进了 abipkgdiffabidwabilint 工具中的日志记录
  • 多个 bug 修复。

有关进一步的更改,请参阅 上游发行注记

Jira:RHEL-64069

SystemTap 已 rebase 到版本 5.2

SystemTap 追踪和探测工具已更新至版本 5.2。

一个显著的增强是基于 debuginfod-metadata 探测的全面激活,基于 elfutils 0.192。使用此功能,您可以编写一个 systemtap 脚本,通过搜索 debuginfod 服务器查找所有匹配名称,来将给定二进制或库的所有版本作为目标。

Jira:RHEL-64066

elfutils 已 rebase 到版本 0.192

elfutils 软件包已更新至版本 0.192。主要改进包括:

  • debuginfod 服务现在可以执行每个文件签名验证,来使用 RHEL 中的 RPM Integrity Measurement Architecture(IMA)方案来检查完整性。
  • 添加了一个新的 debuginfod API 来查询服务器元数据,如从文件名查询构建 ID。
  • debuginfod 服务器端从内核 debuginfo 软件包中提取文件现在非常快
  • dwfl_set_sysroot,dwfl_frame_unwound_sourcedwfl_unwound_source_str 函数已添加到 libdw 库中。
  • eu-stacktrace 工具作为技术预览提供。详情请查看 eu-stacktrace 作为技术预览提供

Jira:RHEL-64067

现在,ld 链接器会检测应用程序是否对内存区域使用了读、写和执行权限

同时具有读、写和执行权限的内存区域是一个潜在的攻击点,因为缓冲区溢出可以允许可执行代码注入到内存中,然后执行。

有了此增强,ld 链接器会检测应用程序是否使用了具有这 3 个权限的内存区域,并向应用程序报告以下错误:

ld: error: <file_name> has a LOAD segment with RWX permissions
Copy to Clipboard Toggle word wrap

您可以使用带有 -no-error-rwx-segments 选项的 ld 来抑制错误。但是,如果链接器没有报告此错误,要防止应用程序中的潜在风险,请修改源代码,并更改您构建应用程序的方式,以便消除问题。

Jira:RHEL-59802[1]

ld 链接器现在会检测应用程序是否使用一个可执行堆栈

如果由于缓冲区溢出,放在内存可执行区域中的堆栈是潜在的攻击点,可执行代码放在这里。

有了此增强,ld 链接器会检测应用程序是否是使用可执行堆栈创建的,并报告错误,例如:

error: creating an executable stack because of -z execstack command line option
error: <file>: is triggering the generation of an executable stack (because it has an executable .note.GNU-stack section)
error: <file>: is triggering the generation of an executable stack because it does not have a .note.GNU-stack section
Copy to Clipboard Toggle word wrap

您可以将 ld-no-error-execstack 选项一起使用来抑制错误。但是,如果 ld 报告了错误,要防止应用程序中的潜在风险,最好是修改源代码并更改构建机器,以便其不使用可执行堆栈。

Jira:RHEL-59801[1]

binutils 现在支持 IBM Z 指令集的 arch15 扩展

有了此增强,binutils 支持 IBM Z 平台上的 arch15 扩展 CPU。开发人员现在可以使用汇编源文件中的 arch15 扩展提供的新功能,或者当更新的编译器可用时,也可以在编译的程序中使用这些新功能。这可以产生更小、更快的程序。

Jira:RHEL-50068[1]

boost-devel 软件包提供 BoostConfig.cmake 和其他官方 CMake 脚本

此增强在 boost-devel 软件包中添加了 BoostConfig.cmake 和其他官方 CMake 脚本。CMake 在一些情况下使用这些脚本来测试 boost 功能是否存在。因此,测试 boost 功能的 CMake 项目现在可以更加稳健地工作。

Jira:RHEL-67177

Go Toolset 已 rebase 到版本 1.23

Go Toolset 已更新到版本 1.23。主要改进包括:

  • for-range 循环接受以下类型的迭代函数:

    • func(func() bool)
    • func(func(K) bool)
    • func(func(K, V) bool)

      调用迭代参数函数会为 for-range 循环创建迭代值。有关参考链接,请参阅 上游发行注记

  • Go Toolchain 可以收集使用情况和中断统计信息,以帮助 Go 团队了解 Go Toolchain 是如何使用和工作的。默认情况下,Go Telemetry 不会上传遥测数据,仅保存在本地。如需更多信息,请参阅 上游 Go Telemetry 文档
  • go vet 子命令包含 stdversion 分析器,它标记对在引用文件中使用的 Go 版本太新符号的引用。
  • cmdcgo 功能支持 -ldflags 选项,来将标记传递给 C 链接器。当您使用非常大的 CGO_LDFLAGS 环境变量时,go 命令会自动使用这个标志来避免 argument list too long 错误。
  • trace 工具容许部分破坏的追踪,并尝试恢复追踪数据。这在崩溃时特别有用,因为您可以获得导致崩溃的追踪。
  • 在未处理的 panic 或其他致命错误后打印的回溯带有缩进,以区分第一个 goroutine 中的 goroutine 的堆栈追踪。
  • 使用 profile-guided 优化的编译器构建时间开销被降低到个位数百分比。
  • 新的 -bindnow 链接器标志在构建动态链接的 ELF 二进制文件时启用立即函数绑定。
  • //go:linkname 链接器指令不再在标准库和在其定义上没有标记 //go:linkname 的运行时中引用内部符号。
  • 如果程序不再引用 TimerTicker,则垃圾收集会立即清理它们,即使它们的 Stop 方法还没有调用。与 TimerTicker 关联的计时器渠道现在未被缓冲,容量为 0。这确保每次调用 ResetStop 方法时,在调用后不会发送或接收过时的值。
  • 新的 unique 软件包为规范化值(如 interninghash-consing)提供工具。
  • 新的 iter 软件包提供基本的定义,来与用户定义的迭代器一起工作。
  • slicesmaps 软件包引入了几个与迭代器一起工作的新功能。
  • 新的 structs 软件包为 struct 字段提供了类型,其修改包含 struct 类型的属性,如内存布局。
  • 以下软件包中进行了细微更改:

    • archive/tar
    • crypto/tls
    • crypto/x509
    • database/sql
    • debug/elf
    • encoding/binary
    • go/ast
    • go/types
    • math/rand/v2
    • net
    • net/http
    • net/http/httptest
    • net/netips
    • path/filepath
    • reflect
    • runtime/debug
    • runtime/pprof
    • runtime/trace
    • slices
    • sync
    • sync/atomic
    • syscall
    • testing/fstest
    • text/template
    • time
    • unicode/utf16

如需更多信息,请参阅 上游发行注记

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

Jira:RHEL-62392[1]

glibc 现在支持 GB18030-2022 编码标准

此增强更新了版本 2005 到 2022 中 glibc 中的 GB18030 编码标准的支持。使用 2022 版本,您可以使用 31 个新的转码关系以及这个标准引入的附加字符和代码点。

Jira:RHEL-56032[1]

Go Toolset rebase 到版本 1.24.4

Go Toolset 已更新至版本 1.24.4,并发布 RHSA-2025:10676 公告。

主要改进和变化包括:

  • 语言

    • 现在,通用类型别名被完全支持,允许类型别名参数化,以提高通用的灵活性。
  • 工具

    • Go 模块系统支持 go.mod 文件中的 工具 指令,支持直接管理可执行依赖关系。
    • Go 构建go installgo test 命令现在支持结构化输出的 the -json 标志。
    • 新的 GOAUTH 环境变量为私有模块提供增强的身份验证。
  • 运行时和性能

    • 运行时改进平均将 CPU 开销降低为 2-3%。
    • 主要变化包括基于 Swiss Tables 的新映射实施,以及更有效的内存分配。
  • 标准库

    • 新的 os.Root 类型启用目录限制的文件系统访问。
    • testing.B.Loop 方法提高了基准测试。
    • runtime.AddCleanup 功能提供更灵活的最终化机制。
    • 新的 软件包引入了弱指针。
  • 加密

    • 现在,提供了 ML-KEM 后密钥交换(crypto/mlkem)、HKDF、PBKDF2 和 SHA-3 的新软件包。
    • Go Cryptographic 模块现在正在检查 FIPS 140-3 认证。
  • 额外的更新

    • vet 工具包括一个新的分析器,用于检测测试和示例中的常见错误。
    • objdump 工具现在支持更多架构。
    • Cgo 引入了改进性能和正确性的注解。

如需更多信息,请参阅上游发行注记

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

Jira:RHEL-101074[1]

3.14. 身份管理

管理 IdM ID 范围不一致的新工具

在这个版本中,身份管理(IdM)提供 ipa-idrange-fix 工具。您可以使用 ipa-idrange-fix 工具来分析现有的 IdM ID 范围,识别这些范围之外的用户和组,并建议以创建新的 ipa-local 范围来包括它们。

ipa-idrange-fix 工具执行以下操作:

  • 从 LDAP 读取和分析现有范围。
  • 搜索 ipa-local 范围之外的用户和组。
  • propose 新的 ipa-local 范围,以覆盖标识的用户和组。
  • 提示用户应用提议的更改。

默认情况下,该工具排除 1000 以下的 ID,以防止与系统帐户冲突。红帽强烈建议在应用任何推荐的更改前创建完整的系统备份。

如需更多信息,请参阅 ipa-idrange-fix (1) 手册页。

Jira:RHEL-45330

Kerberos 现在支持 Elliptic Curve Diffie-Hellman 密钥协议算法

现在支持 RFC5349 定义的 PKINIT 的 Elliptic Curve Diffie-Hellman (ECDH)密钥协议算法。有了这个更新,krb5.conf' 文件中的 pkinit_dh_min_bits 设置现在可以使用 'P-256P-384P-521 进行配置,以默认使用 ECDH。

Jira:RHEL-4902

ansible-freeipa 已 rebase 到 1.14.5

ansible-freeipa 软件包已从 1.13.2 版本 rebase 到版本 1.14.5。主要改进和程序错误修复包括:

  • 您可以使用 module_defaults 为多个 ansible-freeipa 任务定义变量

    freeipa.ansible_freeipa 集合现在提供简化 ansible-freeipa 模块使用的 module_defaults 操作组。通过使用 module_defaults,您可以设置要应用到 playbook 中使用的所有集合模块中的默认值。为此,请使用名为 freeipa.ansible_freeipa.modulesaction_group。例如:

    - name: Test
       hosts: localhost
       module_defaults:
         group/freeipa.ansible_freeipa.modules:
           ipaadmin_password: Secret123
       tasks:
    …
    Copy to Clipboard Toggle word wrap

    因此,playbook 更加简洁。

  • 现在可以在一个 Ansible 任务中管理多个 IdM sudo 规则

    此增强将 sudorules 选项添加到 ansible-freeipa 中。通过使用 sudorules,您可以使用一个 Ansible 任务添加、修改和删除多个身份管理(IdM) sudo 规则。为此,请使用 ipasudorule 模块的 sudorules 选项。因此,您可以更轻松地定义 sudo 规则,并更有效地执行它们。

    使用 sudorules 选项,您可以指定应用到特定 sudo 规则的多个 sudo 规则参数。此 sudo 规则由 name 变量定义,它是 sudorules 选项的唯一强制的变量。 

  • 使用 ipagroup 模块删除外部成员现在可以正常工作

    在以前的版本中,尝试使用带有 externalmember 参数的 ansible-freeipa ipagroup 模块确保 IdM 组中没有外部成员不会将成员从组中删除,即使 Ansible 将任务的结果显示为 changed 。有了此修复,使用带有 externalmemberipagroup 模块可以正确地确保 IdM 组中的外部成员不存在。此修复还允许使用 DOM\name 或 name@domain 来识别 AD 用户。

Jira:RHEL-67566

389-ds-base 已 rebase 到版本 2.6.1

389-ds-base 软件包已 rebase 到版本 2.6.1。与 2.5.2 版本相比,重要的程序错误修复和增强包括:

  • 错误日志的日志缓冲
  • 以 JSON 格式编写审计日志的选项
  • 更新组时延迟更新组成员的选项
  • 配置 PBKDF2 迭代数的选项
  • logconv.py 日志分析器工具

Jira:RHEL-67195

OpenLDAP 更新到版本 2.6.8

openldap 软件包已更新至版本 2.6.8。这个版本包括各种改进和程序错误修复,包括:

  • 改进了对 TLS 连接的处理。
  • Kerberos SASL 使用 STARTTLS,即使 Active Directory 证书是 Elliptic Curve Cryptography (ECC)证书,SASL_CBINDING 设置为 tls-endpoint

Jira:RHEL-71053

新的 memberOfDeferredUpdate: on/off 配置属性现在包括在 Directory Server 中

在这个版本中,Directory 服务器为 MemberOf 插件引入了新的 memberOfDeferredUpdate 配置属性。当设置为 on 时,MemberOf 插件会延迟组成员的更新,从而提高服务器响应性,特别是在组更改大量成员时。

详情请参阅 Red Hat Directory Server 12 配置和 schema 参考文档中的 memberOfDeferredUpdate

Jira:RHEL-5151

目录服务器现在提供错误、审计和审计日志的缓冲

在此次更新之前,只有访问和安全日志会进行日志缓冲。在这个版本中,Directory 服务器提供错误、审计和审核失败日志的缓冲。使用以下设置来配置日志缓冲:

  • 用于错误日志的 nsslapd-errorlog-logbuffering。默认禁用此选项。
  • 用于审计和审计失败日志的 nsslapd-auditlog-logbuffering。默认启用此选项。

详情请查看 Red Hat Directory Server 配置和 schema 参考文档中的 nsslapd-errorlog-logbufferingnsslapd-auditlog-logbuffering

Jira:RHEL-78650

目录服务器现在可以在成功绑定后使用 CRYPT 或 CLEAR 哈希算法更新密码

在此次更新之前,Directory 服务器有一个硬编码的哈希算法列表,这些算法在成功绑定过程中不包括在密码更新中。目录服务器不会更新在 passwordStorageScheme 属性中配置的 CRYPT 或 CLEAR 哈希算法的用户密码。

在这个版本中,您可以使用 nsslapd-scheme-list-no-upgrade-hash 配置属性设置必须从密码更新中排除的哈希算法列表。默认情况下,nsslapd-scheme-list-no-upgrade-hash 包含 CRYPT 和 CLEAR,以便向后兼容。

Jira:RHEL-62875

IdM 现在完全支持 HSM

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

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

注意

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

您需要以下内容:

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

要使用存储在 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
Copy to Clipboard Toggle word wrap

Jira:RHELDOCS-17465[1]

3.15. SSSD

新的 SSSD 选项: exop_force

您可以使用 exop_force 选项强制更改密码,即使没有宽限期。在以前的版本中,如果 LDAP 服务器表示没有安全登录,SSSD 不会尝试密码更改。现在,如果您在 sssd.conf 文件的 [domain/…​] 部分中设置了 ldap_pwmodify_mode = exop_force,SSSD 会尝试更改密码,即使没有宽限期登录。

Jira:RHELDOCS-19863[1]

支持 authselect中添加的组合并

如果您使用 authselect 工具,您不再需要手动编辑 nssswitch.conf 文件来启用组合并。在这个版本中,它被集成到 authselect 配置集中,无需手动更改。

Jira:RHELDOCS-19936[1]

支持 SSSD 中的动态 DoT 更新

SSSD 现在支持使用 DNS-over-TLS (DoT)执行所有动态 DNS (dyndns)查询。当 IP 地址更改时,您可以安全地更新 DNS 记录,如身份管理(IdM)和 Active Directory 服务器。要启用这个功能,您必须从 bind9.18-utils 软件包安装 nsupdate 工具。

您可以使用 sssd.conf 文件中的以下新选项来启用 DoT 并配置自定义证书来保护 DNS 更新:

  • dyndns_dns_over_tls
  • dyndns_tls_ca_cert
  • dyndns_tls_cert
  • dyndns_tls_key

有关这些选项的详情,请查看您系统上的 sssd-ad (5)sssd-ad (5) 手册页。

Jira:RHELDOCS-20057[1]

3.16. Red Hat Enterprise Linux 系统角色

postfix RHEL 系统角色中的新变量: postfix_default_database_type

postfix 系统角色可以确定 postfix 使用的默认数据库类型,并将它导出为变量 postfix_default_database_type。因此,您可以根据默认数据库类型设置配置参数。

注意

Ansible 2.9 不支持在配置参数值中使用 postfix_default_database_type

Jira:RHEL-69983

microsoft.sql.server 系统角色中的新变量:mssql_tools_versionsmssql_tls_self_sign

新的 mssql-tools18 软件包提供了与之前版本的 mssql-tools 软件包不向后兼容的功能。因此,以下变量已添加到 microsoft.sql.server 系统角色中,以适应更改:

  • mssql_tools_versions (列表,默认为版本 18):使您能够安装不同版本的 mssql-tools
  • mssql_tls_self_sign(布尔值):指定您使用的证书是否是自签名的。当您设置了 mssql_tls_enable: true 变量时也适用。
重要

当您将 mssql-tools18 与自签名 TLS 证书搭配使用时,您必须设置 mssql_tls_self_sign: true,以便在 sqlcmd 命令行工具中设置 -C 标志,以便您的证书可以被信任。

因此,您可以使用这些配置来安装 mssql_tools 版本 17; 18; 或并行安装它们。

如需了解更多详细信息,请参阅 /usr/share/ansible/roles/microsoft.sql-server/ 目录中的资源。

Jira:RHEL-68374

新的 RHEL 系统角色:aide

您可以使用新的 aide RHEL 系统角色来检测对文件、目录和系统二进制文件的未授权更改。使用此角色,您可以完成以下任务:

  • 在受管节点上安装 aide 软件包
  • 生成 /etc/aide.conf 文件,并将其模板到受管节点
  • 初始化(高级入侵检测环境)AIDE 数据库
  • 在受管节点上运行 AIDE 完整性检查
重要

角色不会解释如何创建一个合适的 AIDE 配置。

因此,您可以以自动化的方式大规模管理 AIDE,以解决您的安全、合规性或审计要求。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/aide/ 目录中的资源。

Jira:RHEL-67244

sudo RHEL 系统角色中的新变量:sudo_check_if_configured

sudo RHEL 系统角色具有以下变量:

  • sudo_check_if_configured(布尔值):提供已一个已配置的 sudoers 文件的语义检查,以防不需要 Ansible 设置并跳过。

因此,如果不需要 Ansible 干预,您可以使用此设置来确保 sudo 角色幂等性。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/sudo/ 目录中的资源。

Jira:RHEL-61596

microsoft.sql.server 系统角色为 AD 用户启用 AES 128 位和 AES 256 位加密

从 1.1.83 版本开始,adutil 工具在创建或修改活动目录(AD)用户时支持带有 AES 128 位和 AES 256 位加密的 Kerberos 协议。有了此更新,microsoft.sql.server 系统角色会在创建或修改 AD 用户时自动启用 Kerberos 协议提供的 AES 128 位和 AES 256 位加密。因此,不需要手动进行配置后任务。

Jira:RHEL-67807

systemd RHEL 系统角色除系统单元外还可以管理用户单元

有了这个更新,systemd RHEL 系统角色也可以管理用户单元。对于 systemd_unit_files 中指定的每个单元文件或单元,或者 systemd_unit_file_templates,或者 systemd_started_units 等,如果您希望为给定用户管理,则可以添加一个 user: name。默认为 root,用于系统单元。

要获取由角色管理的系统中的单元,包括系统和用户单元,添加了一个新的返回变量:

  • systemd_units_user (字典):每个键都是在传递给角色的一个列表中给出的用户名称,以及 root (即使没有给定 root )。每个值都是该用户的 systemd 单元字典,或者 root 系统单元。
重要

该角色不会创建新用户,如果您指定不存在的用户,它将返回错误。

因此,您可以使用 systemd RHEL 系统角色管理用户单元。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/systemd/ 目录中的资源。

Jira:RHEL-27760

支持导出现有集群的 corosync 配置

ha_cluster RHEL 系统角色支持以可反馈到角色的格式导出现有集群的 corosync 配置,以重新创建同一集群。如果您没有使用 ha_cluster RHEL 系统角色创建集群,或者您 丢失了集群的原始 playbook,您可以使用此功能为集群构建一个新的 playbook。

Jira:RHEL-70483

podman RHEL 系统角色可以管理类型 Pod 的四元组单元

版本 5 的 podman 工具添加了对 Pod 四元组类型的支持。因此,podman RHEL 系统角色允许您管理类型为 Pod 的四let 单元。

如需了解更多详细信息,请参阅 上游文章

Jira:RHEL-36014

新属性已添加到 network RHEL 系统角色 network_connections 变量:autoconnect_retries

network RHEL 系统角色中,没有对自动尝试重新连接网络连接的次数的精细控制。对于扩展重试过程至关重要的某些用例,这个限制可能会有问题,特别是在网络不稳定的环境中。添加到 network_connections 角色变量中的 autoconnect_retries 属性配置在自动连接失败后 NetworkManager 尝试重新连接网络连接的次数。因此,network RHEL 系统角色允许使用 network_connections 变量中的 autoconnect_retries 属性来配置自动连接失败后自动重新连接尝试的数量。此增强对网络稳定性和性能提供了更好的控制,特别是在网络不稳定的环境中。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/network/ 目录中的资源。

Jira:RHEL-61599

新属性已添加到 network RHEL 系统角色 network_connections 变量:wait_ip

此更新增加了对 network_connections 角色变量中 ip 选项的 wait_ip 属性的支持。属性指定系统是否应在配置了特定 IP 堆栈时将网络连接视为已激活。您可以使用以下值配置 wait_ip

  • any: 在配置了任何 IP 堆栈后,系统将连接视为已激活。
  • ipv4 :系统等待直到配置了 IPv4。
  • ipv6 :系统等待知道配置了 IPv6。
  • ipv4+ipv6 :系统等待,直到 IPv4 和 IPv6 都配置了。

因此,network RHEL 系统角色允许您根据特定的 IP 堆栈配置网络连接。这可使连接保持已激活状态,即使没有分配 IP 地址,具体取决于所选的 wait_ip 设置。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/network/ 目录中的资源。

Jira:RHEL-63026

metrics RHEL 系统角色支持 Valkey 作为 Redis 的替代选择

在这个版本中,增加了对 metrics RHEL 系统角色的 Valkey in-memory 数据结构存储的支持。它是 Redis 的一种替代方案,不再是开源,并已从 Linux 发行版中删除。Valkey 通常用作高性能缓存层。它在内存中存储数据,通过缓存频繁访问的数据来加快应用程序。另外,您可以对其他性能关键操作使用 Valkey ,例如:

  • 存储和检索用户会话数据。
  • 不同应用程序部分之间的实时通信。
  • 为分析和监控提供快速数据访问。

Jira:RHEL-65748

logging RHEL 系统角色中的新变量:logging_custom_templates

以下变量已添加到 logging RHEL 系统角色中:

  • logging_custom_templates :自定义模板定义的列表。当其选项为 type: filestype: forwards 时,您可以将其与 logging_outputs 变量一起使用。您可以通过在特定的 logging_outputs 规范中设置 template 选项,来为每个输出指定此自定义模板。或者,您可以使用 logging_files_template_formatlogging_forwards_template_format 全局选项将此自定义模板设置为默认被所有文件使用,并转发输出。

因此,您可以将日志条目设置为与内置默认值提供的不同的格式。

如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/logging/ 目录中的资源。

Jira:RHEL-61947

sshd RHEL 系统角色验证命令和配置

在使用 commandshell 插件时,sshd 角色使用 quote 命令来确保您可以安全地使用这些命令。角色还会验证传递给这些插件的某些用户提供的角色变量。这提高了使用角色的安全性和稳健性,如果没有验证,用户提供的包含空格的变量可能会被分割,且无法正常工作。

Jira:RHEL-73406

3.17. 虚拟化

IBM Z 上的 KVM 现在支持多个引导设备

在 IBM Z 主机上的 KVM 上运行的客户机操作系统可在主引导设备无法引导时尝试从附加设备引导。这个功能支持以下设备类型:

  • virtio-net
  • virtio-blk
  • virtio-scsi/cdrom

要为虚拟机配置引导设备的顺序,请在其 XML 配置的 <boot> 行上使用 order 参数。虚拟机现在将尝试使用多达 8 个设备进行引导。

另外,这些设备现在对其 XML 配置的 <boot> 行支持 loadparm 参数。通过使用 loadparm,可以配置客户机操作系统在从设备引导时,设备使用哪个引导条目。

Jira:RHEL-68440

RHEL for Real Time 中支持虚拟机

此更新在 RHEL for Real Time 中引入了对实时虚拟化的完全支持。您可以配置主机和客户机操作系统,以实现虚拟机(VM)的低延迟和确定性行为。这使得实时虚拟机适合需要实时性能的应用程序,如工业自动化、电信和汽车系统。

Jira:RHELDOCS-20116[1]

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

现在对使用 64 位 ARM 架构(也称为 aarch64 )的 RHEL 主机上的虚拟机支持以下功能:

  • 在 64 位 ARM 主机之间迁移虚拟机。但请注意,迁移目前仅在两个主机都使用相同的 CPU 类型和内存页大小时才可以工作。
  • Trusted Platform Module(TPM)接口规范(TIS)硬件接口
  • 非易失性双内联内存模块(NVDIMM)内存设备
  • virtio-iommu 设备

Jira:RHELDOCS-19832[1]

virt-install 现在支持创建带有 SEV-SNP 的虚拟机

现在,您可以使用 virt-install 工具创建使用带有安全嵌套分页(SEV-SNP)功能的 AMD 安全加密的虚拟化的虚拟机(VM)。为此,请使用 launchSecurity sev-snp,policy=0x30000 选项。

请注意,SEV-SNP 目前仅作为技术预览提供。

Jira:RHEL-62959

支持带有为其他方提供写访问的共享 virtiofs 目录的虚拟机实时迁移

有了此更新,您可以实时迁移带有 virtiofs 共享目录的虚拟机(VM),即使多个其他方(如主机和其他虚拟机)都有对该目录的写权限。

Jira:RHEL-29027

对 IBM z17 处理器的虚拟化支持

有了此更新,RHEL 上的虚拟化增加了对 IBM z17 CPU 的支持。因此,在带有 RHEL 的 IBM Z 系统上托管的虚拟机现在可以使用 z17 处理器提供的新功能。

Jira:RHEL-33137[1]

对 IBM Z 上的 Secure Execution 支持可检索的 secret

有了此更新,您可以在 IBM Z 上的 Secure Execution 虚拟机(VM)中对加密设备使用通用的基于主机的 secret。因此,在配置 Secure Execution 时,不再需要将 secret 存储在 initramfs 镜像中,这简化了创建安全的虚拟机镜像的过程。请注意,这个功能当前只在 IBM z17 处理器上支持。

Jira:RHEL-50754[1]

Intel Xeon v6 处理器的虚拟化支持

在这个版本中,RHEL 9 中的虚拟化增加了对 Intel Xeon v6 处理器的支持,以前称为 Sierra Forest。因此,在 RHEL 9 中托管的虚拟机现在可以使用 SierraForest CPU 模型,并使用处理器提供的新功能。

Jira:RHEL-15731[1], JIRA:RHEL-15719

RHEL 支持实时迁移带有 Mellanox 虚拟功能的虚拟机

有了此更新,您可以对附加了 Mellanox 网络设备的虚拟功能(VF)的虚拟机(VM)执行实时迁移。

但是,目前只支持具有特定固件版本的 Mellanox CX-7 网络设备。Mellanox CX-7 网络设备上的 VF 使用一个新的 mlx5_vfio_pci 驱动程序,它添加了实时迁移所需的功能,并且 libvirt 自动将新驱动程序绑定到 VF。

如需了解更多详细信息和限制,请参阅:实时迁移附加了 Mellanox 虚拟功能的虚拟机

Jira:RHELDOCS-19210[1]

3.18. 云环境中的 RHEL

RHEL 客户机中的 Intel TDX

现在,RHEL 9.5 及之后的版本被用作客户机操作系统时完全支持 Intel Trust Domain Extension (TDX)功能。如果主机系统支持 TDX,您可以部署硬件隔离的 RHEL 9 客户机,称为信任域(TD)。这会增加 RHEL 客户机主机的隔离,并使主机访问 RHEL 客户机上的数据会大大困难。

Jira:RHEL-70465[1]

完全支持 RHEL 的统一内核镜像

RHEL 9.2 中引入的统一内核镜像(UKI)现在被完全支持。要使用 RHEL UKI,您必须首先安装 kernel-uki-virt 软件包。RHEL UKI 可在虚拟和云环境中增强 SecureBoot 保护。

Jira:RHELDOCS-19839[1]

RHEL 8 - 10 的 WSL 镜像在客户门户网站上提供

用于 Linux (WSL)的 Windows 子系统的 RHEL 8、RHEL 9 和 RHEL 10 镜像现在可以从红帽客户门户网站下载。这些镜像对所有 RHEL 订阅可用,包括免费开发人员订阅。通过使用 WSL 镜像,您可以在 Windows 系统上创建 RHEL 实例。

请注意,WSL 镜像作为自支持提供。因此,它们不被红帽支持,且仅用于应用程序开发目的。

另外,如果您在 Windows WSL 主机上使用 WSL 镜像,当前在 RHEL 客户机操作系统中会存在以下问题:

  • RHEL 的 WSL 实例可能在图形界面中无法正常工作。建议使用文本用户界面。
  • 要使用 podman,除了标准配置步骤外,还必须在 /etc/containers/containers.conf 文件中添加以下行:

    [network]
    firewall_driver="iptables"
    Copy to Clipboard Toggle word wrap
  • 要使用 cloud-init,您必须创建 /etc/cloud/cloud.cfg.d/99_wsl.cfg 文件,除了标准配置步骤外,还要将以下内容添加到其中:

    datasource_list: [WSL]
    network: {config: disabled}
    Copy to Clipboard Toggle word wrap
  • 无法将 SELinux 设置为 enforcing 模式。
  • RHEL 的 WSL 实例中不提供 FIPS 模式。

Jira:RHELDOCS-19876

HPE 上的 RHEL 最多可以运行 4096 个 vCPU

使用此功能,在 Hewlett Packard Enterprise Compute Scale-Up Server 上使用 RHEL KVM hypervisor 运行 RHEL 虚拟机(VM)实例现在支持最多 4096 个虚拟 CPU、32 个插槽和 64 TB 内存来处理内存数据库和其他大型计算密集型工作负载。

Jira:RHEL-11043[1]

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

当为 RHEL 9.6 或更高版本以及 RHEL 10.0 或更高版本购买某些符合条件的云市场订阅时,会提供一个自动注册功能的改进版本。

通过增强的自动注册,合格市场中的任何 RHEL 实例都将自动注册到红帽,并在您在红帽帐户和特定云平台帐户之间建立可信连接后自动收到来自 Red Hat Update Infrastructure (RHUI)的内容更新,即使您没有可信连接。

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

Jira:RHELDOCS-19664[1]

3.19. 支持性

plugin 选项名称现在使用连字符而不是下划线

要确保 sos 全局选项的一致性,plugin 选项名称现在只使用连字符而不是下划线,例如,网络插件 namespace_pattern 选项现在是 namespace-pattern,且必须使用-- plugin-option networking.namespace-pattern=<pattern> 语法来指定。

Jira:RHELDOCS-18655[1]

--api-url 选项现在可用

使用 -api-url 选项,您可以根据需要调用另一个 API。例如,OpenShift Container Platform 集群的 API。示例:sos collect --cluster-type=ocp --cluster-option ocp.api-url=_<API_URL> --alloptions.

Jira:RHEL-24523

新的 -skip-cleaning-files 选项现在可用

sos report 命令的 --skip-cleaning-files 选项允许您跳过清理所选文件。选项支持 globs 和通配符。示例: sos report -o host --batch --clean --skip-cleaning-files 'hostname'

Jira:RHEL-30893[1]

3.20. 容器

Podman 支持推送和拉取使用 zstd:chunked 压缩的镜像

您可以推送使用 zstd:chunked 格式压缩的镜像,以减少镜像大小,并使用部分拉取。

Jira:RHEL-68240

Container Tools 软件包已更新

现在提供了更新的 Container Tools RPM meta-package,其包括 Podman、Buildah、Skopeo、crunrunc 工具。Buildah 已更新至版本 1.39.0,Skopeo 已更新至版本 1.18.0。Podman v5.4 包含以下值得注意的 bug 修复和增强:

  • podman update 命令现在支持与健康检查相关的各种选项 :--health-cmd 定义一个新的健康检查和- -no-healthcheck,以禁用现有的健康检查。这些选项可以更轻松地在运行的容器中添加、修改或禁用健康检查。如需更多信息,请参阅 podman-update (5) 手册页。
  • podman runpodman createpodman volume create 命令的 --mount type=volume 选项现在支持一个新选项 subpath=,以便卷的子集仅在容器中可见。
  • podman runpodman createpodman pod create 命令的 --userns=keep-id 选项现在支持一个新选项 --userns=keep-id:size=,来配置用户命名空间的大小。
  • podman kube play 命令现在支持容器设备接口(CDI)设备。
  • podman runpodman createpodman pod create 命令现在支持一个新选项 --hosts-file ,来定义用于容器中 /etc/hosts 的基本文件。
  • podman runpodman createpodman pod create 命令现在支持一个新选项 --no-hostname ,其禁止在容器中创建 /etc/hostname
  • podman network create 命令现在支持一个用于网桥网络的新选项 --opt mode=unmanaged,其允许 Podman 使用系统上现有的网桥,而无需任何更改。
  • podman runpodman createpodman pod create--network 选项现在接受网桥网络的一个新选项 host_interface_name ,其指定容器外创建的网络接口的名称。
  • podman manifest rm 命令现在支持一个新选项 --ignore,以便在删除不存在的清单时成功执行。
  • podman system prune 命令现在支持一个新选项 --build,来删除过早终止的构建中剩余的构建容器。
  • Podman 现在将容器主机名传递给 Netavark,它将它们用于容器的任何 DHCP 请求。
  • 在从 Makefile 构建 podman 时,打包程序现在可以设置 BUILD_ORIGIN 环境变量。这提供了有关谁构建 Podman 二进制文件的信息,此信息显示在 podman versionpodman info 命令中。包含这些信息可以通过帮助维护人员识别构建和安装的源和方法,来协助 bug 报告。
  • podman kube generatepodman kube play 命令现在可以创建并运行 Kubernetes Job YAML。
  • podman kube generate 命令现在包含有关生成的 YAML 中 pod 和容器的用户命名空间的信息。podman kube play 命令使用此信息在创建基于 YAML 的新 pod 时复制用户命名空间配置。
  • podman kube play 命令现在支持 Kubernetes 卷类型的镜像。
  • Quadlet 生成的 systemd 单元的服务名称现在可以使用所有支持的 Quadlet 文件中的 ServiceName 键设置。
  • Quadlets 现在可以使用所有 Quadlet 文件支持的新键 DefaultDependencies 来禁用其对 network-online.target 的隐式依赖。
  • Quadlet .container.pod 文件现在支持一个新键 AddHost,来将主机添加到容器或 pod 中。
  • Quadlet .container.pod 文件中的 PublishPort 键现在可以接受其值中的变量。
  • Quadlet .container 文件现在支持两个新键 CgroupsModeStartWithPod,来为容器配置控制组,以及容器是否将通过是其一部分的 pod 启动。
  • Quadlet .container 文件现在可以通过指定要在网络键内共享的容器的 .container 文件来使用另一个容器的网络。
  • Quadlet .container 文件现在可以使用 Mount=type=image 键和 .image 目标,将 .image 文件管理的镜像挂载到容器中。
  • Quadlet .pod 文件现在支持六个新键,DNSDNSOptionDNSSearchIPIP6UserNS,以配置 pod 的 DNS、静态 IP 和用户命名空间设置。
  • Quadlet .image 文件现在可以通过多次指定 ImageTag 键来多次提供镜像。
  • Quadlets 现在可以放在 /run/containers/systemd 目录和现有目录中,如 $HOME/containers/systemd/etc/containers/systemd/users
  • Quadlet 现在可以正确地处理是符号链接的单元目录的子目录。
  • podman manifest inspect 命令现在在其输出中包含清单的注解。
  • podman createpodman runpodman pod create--add-host 选项现在支持指定多个分号分隔的主机名(如 podman run --add-host test1;test2:192.168.1.1)。
  • podman runpodman create 命令现在支持三个新选项来配置健康检查日志记录:-- health-log-destination (指定日志存储的位置)、--health-max-log-count (指定日志存储多少个健康检查)和 --health-max-log-size (指定健康检查日志的最大大小)。

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

Jira:RHEL-66763

现在,Podman 中提供了增强的健康检查输出配置

Podman 现在基于每个容器为健康检查输出提供增强的配置性。在此次更新之前,健康检查输出仅限于五个最新的执行,每个执行的上限为 500 个字符,只能通过 podman inspect 命令访问。现在,您可以调整为每个容器存储的健康检查输出量,以便在需要时获得更全面的调试信息。此功能在不影响运行的服务的情况下诊断间歇性健康检查失败特别有用。另外,要解决敏感数据和存储效率的顾虑,您可以选择限制或禁用特定容器的健康检查输出存储。

详情请查看 podman-update 手册页。

Jira:RHEL-60561[1]

现在可以使用单个命令部署容器镜像

您可以使用单个命令将容器镜像部署到 RHEL 云实例中。system-reinstall-bootc 命令安装执行以下操作:

  • 拉取提供的镜像,以设置 SSH 密钥或访问系统。
  • 使用所有绑定挂载和配置的 SSH 密钥运行 bootc install to-existing-root 命令。

Jira:RHELDOCS-19516[1]

现在支持从头开始创建自定义 bootc 镜像

您可以从头开始创建 bootc 镜像,并完全控制镜像的内容,定制系统环境以满足特定要求。使用 bootc-base-imgectl 命令,您可以根据现有的 bootc 基础镜像创建自定义 bootc 镜像。Bootc Image from Scratch 是从容器镜像派生的,不会自动接收来自默认基础镜像的更新。要包含这些更新,您必须将它们手动合并为容器管道的一部分。另外,您可以在任何 bootc 容器镜像上使用 bootc-base-imgectl 中的 rechunk 子命令来根据需要优化或重组镜像。

Jira:RHELDOCS-19825[1]

提供了用于 bootc-image-builder 的新镜像构建进度条

在以前的版本中,您无法通过查看日志来检查镜像构建的进度。有了此增强,您可以使用 bootc-image-builder 检查您创建的镜像构建的进度。您可以在构建镜像时使用 --progress=verbose 参数恢复回之前的行为。

Jira:RHELDOCS-20170[1]

3.21. Lightspeed

RHEL Lightspeed 驱动的命令行助手通常在 RHEL 中可用

RHEL Lightspeed 驱动的命令行助手通常在 RHEL 命令行中可用。驱动助手的生成式 AI 是通过 RHEL 产品文档和红帽知识库中的信息进行训练的,并可帮助您以更易于访问的方式理解、配置并对您的 RHEL 系统进行故障排除,无论您是 RHEL 新手还是经验丰富的用户。

Jira:RHELDOCS-20019[1]

命令行助手支持使用 systemd-creds 作为密码存储管理器

RHEL Lightspeed 支持的命令行助手程序通过使用 systemd-creds,这是随 RHEL 附带的密码存储管理器,集成了命令行助手守护进程(clad)。这意味着,您可以使用 PostgreSQL 或 MySQL 等数据库作为历史记录后端来安全地存储密码。因此,您可以使用工具列出、显示、加密和解密单元凭证。

Jira:RHELDOCS-20024[1]

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

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

新内核参数

arm64.no32bit_el0=

[ARM64]

无条件禁用 32 位应用程序的执行。

con3215_drop=

[S390]

格式: y|n|Y|N|1|0

当设置为 true 时,当控制台缓冲区满时,在 3215 控制台上丢弃数据。在这种情况下,使用 3270 终端模拟器(如 x3270)的运算符不需要提前输入控制台输出的清晰密钥,以及要继续内核。当 3270 终端模拟器处于活跃状态时,这会更快地引导时间。如果没有使用 3270 终端模拟器,则此参数无效。

stress_hpt=

[PPC]

限制哈希页表中的内核 HPT 条目数量,以增加内核地址上的哈希页表错误的速度。

kvm.enable_virt_at_load=

[KVM,ARM64,LOONGARCH,MIPS,RISCV,X86]

如果启用,KVM 会在 KVM 加载时启用虚拟化,并在 KVM 卸载时禁用虚拟化(如果将 KVM 作为模块构建)。

如果禁用,KVM 会在创建和销毁虚拟机时动态启用和禁用虚拟化,例如,在 0 swig1 和 1 choosing0 转换虚拟机的数量。

在模块环境中启用虚拟化可避免创建 03271 虚拟机的潜在延迟,因为 KVM 在所有在线 CPU 间实现虚拟化序列化。加载 KVM 时启用虚拟化的"成本",即,这样做可能会干扰使用想要"拥有"虚拟化硬件的树外虚拟机监控程序。

kvm-arm.wfe_trap_policy=

[KVM,ARM]

控制如何为 KVM 虚拟机设置 WFE 指令陷阱。陷阱被 CPU 架构允许但不保证。

trap: 设置 WFE 指令陷阱

notrap: 清除 WFE 指令陷阱

kvm-arm.wfi_trap_policy=

[KVM,ARM]

控制如何为 KVM 虚拟机设置 WFI 指令陷阱。陷阱被 CPU 架构允许但不保证。

trap: set WFI 指令 trap

notrap: 清除 WFI 指令陷阱

config_acs=

格式: <ACS flags>@<pci_dev>[; …​]

指定一个或多个 PCI 设备(在上面指定的格式)前(带有标记并用分号分隔)。根据标志中指定的内容,将启用、禁用或更改特定功能。

ACS 标记定义如下:

bit-0
ACS 源验证
bit-1
ACS 转换块
bit-2
ACS P2P 请求重定向
bit-3
ACS P2P Completion Redirect
bit-4
ACS 上游转发
bit-5
ACS P2P Egress 控制
bit-6
ACS Direct Translated P2P

每个位都可以被标记为:

0 - force disabled

启用 1 强制

X - unchanged

例如,pci=config_acs=10x 将配置支持 ACS 的所有设备,以启用 P2P 请求重定向、禁用转换块,并将 Source Validation 从任何电源或固件设置为不动。

注意

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

rcutree.nocb_nobypass_lim_per_jiffy=

[KNL]

在 callback-offloaded (rcu_nocbs) CPU 中,RCU 可减少锁定争用,否则由回调使用 →nocb_bypass 列表导致的。但是,在常见的非暴露的情况中,RCU 队列直接发送到主 →cblist,以避免 →nocb_bypass 列表及其锁定的额外开销。但是,如果在单个 jiffy 中排队了太多回调,RCU 会将回调排队到 →nocb_bypass 队列中。"too many"的定义由这个内核引导参数提供。

rcutree.nohz_full_patience_delay=

[KNL]

在回调卸载(rcu_nocbs) CPU 上,避免干扰 RCU,除非宽限期已达到指定的年龄(以毫秒为单位)。默认值为零。大型值将上限为 5 秒。所有值都将舍入到最接近的值,由 netobserv 代表。

rcutree.rcu_divisor=

[KNL]

将右移数设置为用来计算此 CPU 上排队的回调批处理限制 bl。结果将通过 rcutree.blimit 内核参数的值绑定。每个 bl 回调,softirq 处理程序将退出,以允许 CPU 执行其他工作。

请注意,这个 callback-invocation 批处理限制只适用于非卸载的回调调用。在 rcuoc kthread 的上下文中会调用卸载的回调,调度程序会像执行任何其他任务一样抢占它。

rcutree.enable_rcu_lazy=

[KNL]

为节省电源,批处理 RCU 回调并在延迟后清空,内存压力或回调列表会太大。

rcutree.rcu_normal_wake_from_gp=

[KNL]

减少 synchronize_rcu ()调用的延迟。此方法自行跟踪 synchronize_rcu ()调用者,因此它不会与常规回调交互,因为它不使用 call_rcu[_hurry]()路径。请注意,这是正常的宽限期。

如何启用它:

echo 1 > /sys/module/rcutree/parameters/rcu_normal_wake_from_gp 或传递引导参数 "rcu_normal_wake_from_gp=1"

默认值为 0。

删除的内核参数

clocksource.max_cswd_read_retries=

[KNL]

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

disable_cpu_apicid=

[X86,APIC,SMP]

格式:<int>

在引导时禁用相应 CPU 的初始 APIC ID 数,用于 kdump 2nd 内核禁用 BSP 来唤醒多个 CPU,而不会导致系统重置或挂起,因为将 INIT 从 AP 发送到 BSP。

更改了内核参数

amd_iommu=

[HW,X86_64]

将参数传递给系统中的 AMD IOMMU 驱动程序。

可能的值有:

fullflush
弃用,等同于 iommu.strict=1
off
不要初始化系统中找到的任何 AMD IOMMU
force_isolation
为所有设备强制进行设备隔离。不再允许 IOMMU 驱动程序根据需要解除隔离要求。这个选项不会覆盖 iommu=pt
force_enable
在启用了 IOMMU 且已知有 bug 的平台上强制启用 IOMMU。请谨慎使用这个选项。
pgtbl_v1
对 DMA-API (默认)使用 v1 页表。
pgtbl_v2
对 DMA-API 使用 v2 页表。
irtcachedis
禁用中断重新映射表(IRT)缓存。
nohugepages
将 v1 page-tables 用于 v1 page-tables 的 page-size 限制为 4 KiB。
v2_pgsizes_only
将 v1 page-tables 使用的 page-sizes 限制为 4KiB 或 2Mib 或 1GiB。

debug_guardpage_minorder=

[KNL]

当设置了 CONFIG_DEBUG_PAGEALLOC 时,此参数允许控制将由 buddy 分配器有意保留空闲(从而受到保护)的页面的顺序。较大的值提高了捕获随机内存损坏的可能性,但减少了正常系统使用的内存量。最大可能的值是 MAX_PAGE_ORDER/2。当 CPU 写入(或从)随机内存位置读取时,将此参数设置为 1 或 2 应该足以识别内核或驱动程序代码中出现的大多数随机内存崩溃问题。请注意,存在由 buggy 硬件或固件导致的一系列内存损坏问题,或者由驱动程序错误地编程 DMA (当内存在总线级别上写入时,会绕过 CPU MMU),它们不会被 CONFIG_DEBUG_PAGEALLOC 检测,因此此选项将无法帮助跟踪这些问题。

page_reporting.page_reporting_order=

[KNL]

报告顺序的最小页。

格式:<integer>

调整报告顺序的最小页。当页面报告超过 MAX_PAGE_ORDER 时,它被禁用。

preempt=

[KNL]

如果您有 CONFIG_PREEMPT_DYNAMIC none - Limited to cond_resched ()调用 voluntary - Limited to cond_resched ()和 may_sleep ()调用 full - 任何未明确被抢占禁用的部分都可以被抢占。任务也会获得连续的 spinlocks (如果关键部分没有在锁定本身之外明确禁用)。

sched_thermal_decay_shift=

[deprecated] [KNL, SMP]

为调度程序热压力信号设置 decay shift。Thermal pressure signal 遵循其他调度程序 pelt 的默认 decay 周期。

usb-storage.delay_use=

[UMS]

为逻辑单元扫描新设备前的延迟(默认为 1)。如果值带有 "ms" 的后缀,可选,以毫秒为单位。示例: delay_use=2567ms。

新的 sysctl 参数

skb_defer_max

分配它们的 CPU 会释放每个 CPU 的 per-cpu 列表的最大大小(以 skbs 为单位)。目前供 TCP 堆栈使用。

默认:64

更改了 sysctl 参数

overcommit_memory

这个值包含一个启用内存过量使用的标志。

当此标志为 0 时,内核会将用户空间内存请求大小与总内存加上交换进行比较,并拒绝明显过量使用。

当此标志为 1 时,内核会假定有足够的内存,直到实际耗尽为止。

当此标志为 2 时,内核使用"never overcommit"策略,该策略会尝试防止内存过量使用。请注意,user_reserve_kbytes 会影响此策略。

这个功能可能会很有用,因为存在 malloc ()大量内存"just-in-in-case"的程序,且不使用大部分程序。

默认值为 0。

如需更多信息,请参阅 Documentation/mm/overcommit-accounting.rst 和 mm/util.c::__vm_enough_memory ()。

第 5 章 程序错误修复

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

5.1. 安全性

shlibsign 现在可以在 FIPS 模式下正常工作

在此更新之前,shlibsign 程序在 FIPS 模式下无法正常工作。因此,当您在 FIPS 模式下重新构建 NSS 库时,您必须离开 FIPS 模式才能对库进行签名。程序已被修复,您现在可以在 FIPS 模式下使用 shlibsign

Jira:RHEL-58260

审计现在加载引用 /usr/lib/modules/的规则

在此次更新之前,当 auditd.serviceProtectKernelModules 选项设为 true 时,审计子系统不会加载引用 /usr/lib/modules/ 目录中文件的规则,并带有错误消息 Error send add rule data request (No such file or directory)。在这个版本中,审计也会加载这些规则,您不再需要使用 auditctl -Raugenrules --load 命令重新载入规则。

Jira:RHEL-59570[1]

update-ca-trust extract 不再无法提取具有长名称的证书

从信任存储中提取证书时,信任 工具内部从证书的对象标签生成文件名。对于足够长的标签,生成的路径可能之前已超过系统的最大文件名长度。因此,trust 工具无法创建具有超过系统的最大文件名长度的文件。有了此更新,派生的名称总是被截断为 255 个字符以内。因此,当证书的对象标签太长时,文件创建不会失败。

Jira:RHEL-58899[1]

允许 dac_overridedac_read_search 用于添加到 SELinux 策略中的 qemu-guest-agent 的规则

在以前的版本中,SELinux 策略没有允许 qemu-guest-agent 的规则,允许 dac_overridedac_read_search 功能。因此,当文件系统挂载点 DAC 权限没有授予用户 root 的访问权限时,释放和修改虚拟机文件系统无法正常工作。在这个版本中,在策略中添加了缺少的规则。因此,fsfreeze 是创建一致快照的重要 qemu-ga 命令,可以正常工作。

Jira:RHEL-52476

OpenSSL 密码套件不再启用带有禁用哈希或 MAC 的密码套件

在以前的版本中,应用自定义加密策略可能会启用特定的 TLS 1.3 密码套件,即使其哈希或 MAC 被禁用,因为 OpenSSL TLS 1.3 特定的 Ciphersuites 选项值仅由加密策略的 cipher 选项控制。在这个版本中,在决定是否启用密码套件时,crypto-policies 会考虑更多的算法。因此,在带有自定义加密策略的系统中 OpenSSL 可能会拒绝根据系统配置更好地协商一些之前启用的 TLS 1.3 密码套件。

Jira:RHEL-76528[1]

5.2. 订阅管理

RHEL web 控制台 Subscription Manager 插件现在检测到 Insights 数据上传失败

在此次更新之前,systemd 服务管理器会在失败时自动重启 insights-client 服务,这会破坏 RHEL web 控制台中的 Subscription Manager 插件中的内置检测。这会检查失败的服务状态,该服务已被正确阻止。因此,当 Insights 数据上传失败时,RHEL web 控制台不会显示任何警告。在这个版本中,在上传失败时,insights-client 的状态的检测已被改进,以考虑新状态。因此,web 控制台中的 Subscription Manager 会正确检测到 Insights 数据上传失败。

Jira:RHEL-56159

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

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

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

# subscription-manager config --rhsm.progress_messages=1
Copy to Clipboard Toggle word wrap

Jira:RHELPLAN-137234[1]

5.3. 软件管理

dnf needs-restarting --reboothint 现在可以正确地报告实时时钟不在 UTC 中运行的系统是否需要重启

在此更新之前,如果您更新了一个需要重启系统的软件包,以便在实时时钟不在 UTC 中运行的系统上完全应用更新,dnf needs-restarting --reboothint 命令可能不会报告需要重启。有了此更新,systemd UnitsLoadStartTimestamp 属性被添加为引导时间的首选源。因此,dnf need-restarting --reboothint 现在在实时时钟在本地时间运行的系统上的容器之外更为可靠。

Jira:RHEL-14900

在使用 dnf reposync时,存储库元数据现在直接存储在请求的目录中

在此更新之前,dnf reposync 命令不支持用于下载存储库元数据的 --norepopath 选项。因此,此元数据存储在以存储库命名的子目录中。有了此更新,dnf reposync 命令现在支持 --norepopath 选项,存储库元数据直接存储在请求的目录中。

Jira:RHEL-40914

%patch N 不再应用补丁号 0

在此次更新之前,当您使用 %patch N 语法时,其中 N 是补丁数,除了 N 指定补丁外,语法还会应用补丁号 0 (Patch0)。在这个版本中,%patch N 语法已被修复,仅应用补丁号 N

重要

如果您使用 %patch 指令没有指定补丁号,作为 %patch 0 的缩写,则会应用Patch0。但是,会输出警告信息,建议您使用显式语法,例如 %patch 0%patch -P 0 而不是 %patch 来应用 补丁。

Jira:RHEL-6294

5.4. Shell 和命令行工具

lparstat -E 现在显示忙碌和空闲状态的正确的值

在以前的版本中,在计算空闲时钟周期时,有些值没有被考虑。因此,lparstat -E 命令在 NormalizedActual 部分下显示忙碌和空闲状态,例如 lparstat -E 4。有了此更新,空闲时钟周期的计算已被修复。因此,lparstat -E 工具现在显示忙碌和空闲状态的正确值。

Jira:RHEL-61089[1]

traceroute 工具通过环境变量支持 IPv6 首选项

在以前的版本中,当 IPv4 和 IPv6 地址可用时,traceroute 工具不支持使用 IPv6 地址。

在这个版本中,traceroute 的行为已更新,以便在 IPv6 地址可用时支持首选项。

因此,您可以设置 TRACEROUTE_USE_RFC3484 变量来启用 IPv6 首选项。如果设置了此变量,traceroute 会遵循 RFC 3484 选择规则,并在可用时默认为 IPv6。如果没有设置环境变量,traceroute 将继续默认为 IPv4。

Jira:RHEL-59444

5.5. 网络

lldpad 终止后网络接口配置保持不变

在此更新之前,当 Link Layer Discovery Protocol Agent Daemon(lldpad)被 systemd 终止或手动终止时,网络接口配置会被删除。此更新修复了 lldpad 源代码,以便服务不会在被终止后重置接口配置。

Jira:RHEL-61874

RHEL 在 512 个 CPU 的系统上显示正确的 CPU 数

rps_default_mask 配置设置控制默认的 Receive Packet Steering (rps)机制,来将传入的网络数据包定向到特定的 CPU。flow_limit_cpu_bitmap 参数启用或禁用每个 CPU 的流控制。有了此修复,RHEL 在控制台上正确显示总 CPU 数及其参数值。

Jira:RHEL-61203

netdev 设备属性已从 ethtool 输出中删除

由于存储在内核中的网络设备功能标记的变化,以下功能将不再出现在 ethtool -k 命令的输出中:

  • tx-lockless
  • netns-local
  • fcoe-mtu

请注意,这些标志不是特性,而是在任意驱动程序中无法使用 ethtool -K 命令更改的设备属性或特性。

Jira:RHEL-59091[1]

NetworkManager 可以在 VPN 连接配置文件中缓解 CVE-2024-3661 (TunnelVision)的影响

VPN 连接依赖路由,来通过隧道重定向流量。但是,如果 DHCP 服务器使用无类别静态路由选项(121)将路由添加到客户端的路由表中,并且 DHCP 服务器传播的路由与 VPN 重叠,则可以通过物理接口而不是 VPN 传输流量。CVE-2024-3661 描述了此漏洞,它也被称为 TunnelVision。因此,攻击者可以访问用户期望受到 VPN 保护的流量。

在 RHEL 上,这个问题会影响 LibreSwan IPSec 和 WireGuard VPN 连接。只有带有 ipsec-interfacevt-interface 属性未在其中定义的配置文件的 LibreSwan IPSec 连接,或设置为 no 的连接不受影响。

CVE-2024-3661 文档描述了通过配置 VPN 连接配置文件将 VPN 路由放在具有高优先级的专用路由表中,来缓解 TunnelVision 影响的步骤。步骤可用于 LibreSwan IPSec 和 WireGuard 连接。

Jira:RHEL-69899

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.
Copy to Clipboard Toggle word wrap

现在,工具针对正确的 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)
Copy to Clipboard Toggle word wrap

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

Jira:RHEL-9897[1]

5.6. 文件系统和存储

multipathd 不再会因为 ontap 优先级遇到的错误而崩溃

在此次更新之前,当 multipathd 被配置为对不支持的路径使用 ontap 优先级时,multipathd 会崩溃,因为优先级器只适用于 NetApp 存储阵列。此故障是由于优先级排序器的错误日志记录代码中的一个 bug 而发生的,这导致溢出错误消息缓冲区。在这个版本中,错误日志记录代码已被修复,multipathd 不再会因为 ontap prioritizer 遇到的错误而崩溃。

Jira:RHEL-58920[1]

enable_foreign 被设置为监控原生多路径 NVMe 设备时,原生 NVMe 多路径不再导致内存泄漏

在此更新之前,如果 enable_foreign 配置参数被设置为监控原生多路径 NVMe 设备,则启用原生 NVMe 多路径会导致内存泄漏。有了此更新,内存泄漏在 multipathd 监控代码被修复。因此,multipathd 现在可以监控原生多路径 NVMe 设备,而无需增加内存使用量。

Jira:RHEL-73413[1]

RHEL 安装程序现在在 aarch64中发现并使用 iSCSI 设备作为引导设备

在以前的版本中,在 aarch64 上运行的 RHEL 安装程序中没有 iscsi_ibft 内核模块无法自动发现固件中定义的 iSCSI 设备。因此,在手动添加 GUI 的过程中,这些设备不会被自动看到,也不会在安装程序中作为可选的引导设备。

这个问题已通过在较新的 RHEL 的 aarch64 构建中包含 iscsi_ibft 内核模块得到了解决。因此,iSCSI 设备现在被自动检测,并在安装过程中作为引导选项提供。

Jira:RHEL-56135[1]

在基于 ostree 的新安装由 Anaconda 进行中的 LUKS2 root 上默认启用 fstrim

在以前的版本中,使用在 / (root)挂载点上启用 LUKS2 加密的 ostreesetupostreecontainer Kickstart 命令安装基于 ostree 的系统,会导致没有启用 fstrim 的系统。这可能导致无响应系统或损坏的文件选择对话框等问题。在这个版本中,在新安装的系统上的 LUKS2 元数据中默认启用 fstrim (discards)。

要在现有安装中修复这个问题,请运行以下命令:…cryptsetup --allow-discards --persistent refresh <luks device> ….<LUKS device > 是 root LUKS2 设备的路径。

Jira:RHEL-82430

由于数据传输失败,TCP 控制器上的 NVMe 系统不再崩溃

在此次更新之前,在带有 NVMe over TCP 存储控制器的 64 位 ARM 架构系统上,其中最佳 IO 大小大于 PAGE_SIZE,而 MD 设备使用 bitmap,系统可能会崩溃并显示以下错误消息:

usercopy: Kernel memory exposure attempt detected from SLUB object 'kmalloc-512' (offset 440, size 24576)!
Copy to Clipboard Toggle word wrap

在这个版本中,内核会检查最终 IO 大小是否不超过位映射长度。因此,系统不再崩溃。

Jira:RHEL-46615[1]

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

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

Jira:RHEL-8171[1]

5.7. 高可用性和集群

带有过期规则的资源约束不再显示

在此更新之前,pcs constraint location config resources 命令在输出中显示带有过期规则的资源限制。有了此更新,如果没有指定 --all 选项,命令不再显示带有过期规则的限制。

Jira:RHEL-46293[1]

只与一个实例一起运行的克隆资源的状态现在可以正确显示

在此更新之前,当您查询只与一个运行的实例一起克隆的集群资源的实例的状态时,pcs status query 命令会显示一条错误消息。有了此更新,命令可以正确地报告资源状态。

Jira:RHEL-55441

成功恢复中断的 Pacemaker 远程连接

在此更新之前,当网络通信在 Pacemaker 远程节点和在初始连接的 TLS 握手部分时托管其连接的集群节点之间中断时,在某些情况下,连接被阻止,且无法在另一个集群节点上恢复。有了此更新,TLS 握手是异步的,且远程连接可在任何地方成功恢复。

Jira:RHEL-34276

灾难恢复站点的集群状态现在可以正确地显示

在此更新之前,当您配置一个灾难恢复站点,并运行 pcs dr status 命令来显示本地和远程集群站点的状态时,命令会显示一条错误,而不是集群状态。在这个版本中,在运行这个命令时,本地和远程站点的集群状态会正确显示。

Jira:RHEL-61738

集群警报现在会立即生效

在此更新之前,当您在 Pacemaker 集群中配置警报时,在不重启集群的情况下警报不会立即生效。有了此更新,集群会立即检测对集群警报的更新。

Jira:RHEL-55458

5.8. 编译器和开发工具

glibc getenv 函数提供一个有限的线程安全形式

glibc getenv 函数不是线程安全。在以前的版本中,如果应用程序仍然调用函数 getenv,setenv,unsetenv,putenv, 和 clearenv 同时,则它们可能会意外终止或 getenv 可能会返回不正确的值。在这个版本中,getenv 功能提供有限的线程安全形式。因此,如果应用程序同时调用功能,应用程序不再崩溃。另外,getenv 只返回使用 setenv 或在程序开始时存在的环境值,只有在有可能有未排序的 unsetenv 调用时才会将之前设置的环境变量报告为未排序。

如果您直接修改 environ 数组,则此修复不适用。

Jira:RHEL-67692

pcp 软件包现在为 /var/lib/pcp/config/pmie/config.default 文件设置正确的所有者和组

在以前的版本中,如果您首次安装 pcp 软件包,软件包安装进程会错误地将 /var/lib/pcp/config/pmie/config.default 文件的所有权设置为 root:root。因此,pmie 服务无法启动,因为此服务执行的 pmieconf 工具对此文件需要 pcp:pcp 所有权。当服务无法启动时,它会在 /var/log/pcp/pmie/pmie_check.log 文件中记录以下错误:

Warning: no write access to pmieconf file "/var/lib/pcp/config/pmie/config.default", skip reconfiguration
Copy to Clipboard Toggle word wrap

有了此更新,pcp 软件包在第一次安装过程中为 /var/lib/pcp/config/pmie/config.default 文件设置正确的所有权,并在现有安装中修复它。因此,pmie 服务可以正确启动。

Jira:RHEL-59366

pcp-xsos 提供系统的快速摘要

Performance Co-Pilot (PCP)工具包中大量的可配置的组件意味着您通常使用几个不同的工具来了解系统性能。当您处理大型的压缩时间序列数据卷时,这些工具中的很多需要额外的处理时间。这个增强在 PCP 中添加了 pcp-xsos 工具。这个工具可以对 PCP 归档中的单个时间点执行快速、高级的分析。因此,pcp-xsos 可帮助您深入了解高级的性能问题,并确定进一步的目标性能分析任务。

Jira:RHEL-30590[1]

iconv 原位转换不再导致输出损坏

iconv 工具可以将转换的输出写到同一文件中。在以前的版本中,当执行一个原位转换且源文件超过特定大小时,iconv 会在处理完成之前覆盖该文件。因此,文件损坏了。有了此更新,如果源文件和输出文件是同一个文件,工具会创建一个临时文件,并在转换完成后覆盖源文件。因此,原位升级转换不再导致文件损坏。

Jira:RHEL-1915

glibc stub 解析器和 getaddrinfo() API 调用中的改进

在以前的版本中,glibc stub 解析器和 getaddrinfo() API 调用可能会在以下情况中导致比预期长的延迟:

  • 服务器无法访问。
  • 服务器拒绝查询。
  • 带查询的网络数据包丢失。

有了此更新,失败情况下的延迟减少了,并添加了一个新的解析器选项 RES_STRICTERR。使用此选项时,getaddrinfo() API 调用报告更多的 DNS 错误。另外,您现在可以在配置文件中使用带有 - 负前缀的选项。

Jira:RHEL-50662[1]

glibc exit 函数不再在同时调用时崩溃

在以前的版本中,对 exit 函数的同时调用和使用同时 <stdio.h> 流操作调用这个函数不同步。因此,如果在多线程应用程序中发生并发 exit 函数调用,应用程序可能会意外终止,数据流可能会被破坏。有了此更新,在清除它们时 exit 会锁住 <stdio.h> 流,同时调用 exit,并且 fast_exit 选择一个调用继续。因此,在这种情况下应用程序不再崩溃。

作为修复的结果,对 <stdio.h> 流执行阻止读操作的应用程序,如 getchar 函数,或者有一个使用 flockfile 函数的锁住的流无法退出,直到读操作返回或锁被释放为止。POSIX 标准需要此类阻止。

Jira:RHEL-65358[1]

glibc 中实现 POSIX 线程条件变量以唤醒等待的线程得到了改善

在以前的版本中,POSIX 线程条件变量实现中的一个缺陷可能会允许 pthread_signal() API 调用无法唤醒等待的线程。因此,线程可能会无限期等待下一个信号或广播。有了此 bug 修复,POSIX 线程条件变量的实现现在包含一个相对于序列的算法,以避免丢失的信号条件,并为正确唤醒等待的线程提供更强的保障。

Jira:RHEL-2419

在重新使用删除的 TCP 套接字时,Boost.Asio 不再显示异常

在以前的版本中,如果应用程序使用 Boost.Asio 库并重复使用一个删除的 TCP 套接字,应用程序会失败并显示 bad_executor 异常。此更新修复了这个问题,Boost.Asio 库不再在上述场景中失败。

Jira:RHEL-67973[1]

5.9. 身份管理

迁移 IdM 部署不再会导致重复的 HBAC 规则

在以前的版本中,使用 ipa-migrate 程序从一个身份管理(IdM)部署迁移到另一个部署有时会导致目标服务器上重复的基于主机的访问控制(HBAC)规则。因此,当在该服务器上运行 "ipa hbacrule-find" 命令时,"allow_systemd-user" 和 "allow_systemd-user" HBAC 规则会出现两次。

这个问题已被解决,迁移 IdM 部署不再会导致重复的 HBAC 规则。

Jira:RHEL-48104

不再可以使用过期的令牌绕过双因素身份验证

在以前的版本中,可以通过创建一个带有特定最终评估周期的 OTP 令牌来绕过双因素身份验证。

如果强制实施双因素身份验证,没有 OTP 令牌的用户可以使用其密码登录并配置 OTP 令牌。因此,需要使用其密码和 OTP 令牌进行身份验证。但是,如果用户创建了具有过期端到端日期的 OTP 令牌,IdM 会错误地回退到仅密码的身份验证,从而有效地绕过双因素身份验证。这是因为 IdM 在不存在的和过期的 OTP 令牌之间没有区别。

在这个版本中,IdM 可以正确地区分这些场景。因此,双因素身份验证现在可以正确强制使用,防止绕过。

Jira:RHEL-4915

当使用子后缀启动实例时,不再记录不正确的错误

在此次更新之前,当使用子后缀启动实例时,您可能会在错误日志中看到以下不正确的消息:

[time_stamp] - ERR - id2entry - Could not open id2entry err 0
[time_stamp] - ERR - dn2entry_ext - The dn "dc=example,dc=com" was in the entryrdn index, but it did not exist in id2entry of instance userRoot.
Copy to Clipboard Toggle word wrap

消息的根本原因是在后端初始化期间执行的子树搜索,以确定子树是否包含智能引用。另外,这个问题对服务器启动后的搜索操作有较小的性能影响。

在这个版本中,不正确的信息不再记录,在服务器启动时不会发生性能影响。

Jira:RHEL-71218[1]

ldapsearch 现在如预期遵守 NETWORK_TIMEOUT 设置

在以前的版本中,当服务器无法访问时 ldapsearch 命令会忽略超时,因此搜索会无限期挂起,而不是超时。在这个版本中,TLS 处理中的逻辑错误可以通过调整连接重试和套接字选项来解决。

因此,ldapsearch 命令不再忽略 NETWORK_TIMEOUT 设置,并在达到超时时返回以下错误:

  ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1).
Copy to Clipboard Toggle word wrap

Jira:RHEL-78297[1]

带有页结果搜索的竞争条件不再关闭与 T3 错误代码的连接

在以前的版本中,在检查连接的页结果数据时,目录服务器不会使用正确的线程保护。因此,页面结果超时值会意外更改,并在新操作到达时触发假超时。这会导致超时错误,连接关闭了以下 T3 错误代码:

服务器关闭连接,因为超过了页结果搜索的指定时间限制。

在这个版本中,使用了正确的线程保护,页面结果搜索不再关闭与 T3 错误代码的连接。

Jira:RHEL-76019[1]

当重新索引带有带有扩展匹配规则的 sort 属性的 VLV 索引时,目录服务器不再会失败

在此次更新之前,在重新索引虚拟列表视图(VLV)索引过程中触发竞争条件,该索引带有扩展匹配规则的 sort 属性索引。因此,内存泄漏和目录服务器会失败。在这个版本中,Directory 服务器会序列化 VLV 索引密钥生成,不再失败。

Jira:RHEL-67020

当尝试释放资源时,OpenLDAP 库不再失败

在此次更新之前,当应用程序已经调用 OPEN SSL_cleanup () 函数时,OpenLDAP 库会尝试在其破坏性中使用 SSL_CTX_free () 函数来 释放内存。因此,当无效的 SSL_CTX_free () 调用尝试释放已经清理的 SSL 上下文资源时,用户会出现失败或未定义的行为。

在这个版本中,添加了一个安全清理功能,以便在 OpenLDAP 的 destructor 中跳过 SSL 上下文清理。现在,如果未明确释放,SSL 上下文会泄漏,确保稳定的应用程序关闭。

Jira:RHEL-56502

高连接负载不再过载目录服务器中的单个线程

在此次更新之前,即使 Directory 服务器支持多个侦听线程,但第一个传入的连接被分配给同一监听器线程过载。因此,一些请求会产生大量 时间和 不佳的性能。在这个版本中,Directory 服务器在所有侦听线程中分发连接负载。

Jira:RHEL-70252

VLV 索引缓存现在与使用 LMDB 时的 VLV 索引匹配

在此次更新之前,虚拟列表视图(VLV)索引缓存与带有 Lightning Memory-Mapped 数据库(LMDB)的实例上的 VLV 索引本身不匹配,这会导致 VLV 索引返回无效值。在这个版本中,VLV 索引缓存与 VLV 索引匹配,并返回正确的值。

Jira:RHEL-64438[1]

在线备份不再失败

在此次更新之前,在线备份任务可能会因为不正确的锁定顺序而挂起。在这个版本中,在线备份可以正常工作,不再失败。

Jira:RHEL-67005[1]

cleanallruv 不再阻止其自身

在此次更新之前,当您在从复制拓扑中删除副本后运行 cleanAllRUV 任务时,任务会尝试更新复制配置条目,同时同一任务清除旧副本 ID 的复制更改日志(rid)。因此,服务器没有响应。

在这个版本中,清理所有RUV 仅在更改日志清除完成后清理复制配置。

Jira:RHEL-60135

当条目 RDN 与后缀 DN 的值相同时,重新索引不再会失败

在此次更新之前,如果条目的相对可分辨名称(RDN)的值与目录中的后缀可分辨名称(DN)相同,则 entryrdn 索引会被破坏。因此,目录服务器可能会执行缓慢的搜索请求,获取无效的结果,并在错误日志中写入警报信息。

在这个版本中,重新索引可以正常工作。

Jira:RHEL-74158[1]

帐户策略插件现在在复制拓扑中使用适当的标记进行更新

在此次更新之前,Account Policy 插件没有将正确的标记用于更新。因此,在复制拓扑中,Account Policy 插件更新了登录历史记录,但这个更新在消费者服务器上记录以下出错信息:

{{ERR - acct_update_login_history - Modify error 10 on entry
}}
Copy to Clipboard Toggle word wrap

在这个版本中,内部更新可以成功,且不会记录错误。

Jira:RHEL-74168[1]

在带有 LMDB 的供应商中,离线导入不再生成 nsuniqueid的副本

在此次更新之前,在带有 Lightning Memory-Mapped Database (LMDB)的供应商上离线导入基本条目(没有复制数据)会生成 nsuniqueid 操作属性的副本,它们必须是唯一的。因此,复制出现问题。在这个版本中,离线导入不再在供应商上生成重复。

Jira:RHEL-78344[1]

TLS 1.3 现在可以用来连接到以 FIPS 模式运行的 LDAP 服务器

在此次更新之前,当您尝试在 FIPS 模式中连接到 LDAP 服务器时明确设置 TLS 1.3 时,使用的 TLS 版本仍保留在 1.2 中。因此,尝试使用 TLS 1.3 连接到 LDAP 服务器会失败。在这个版本中,在 FIPS 模式中的 TLS 版本的上限被改为 1.3,尝试连接到带有 TLS 1.3 的 LDAP 服务器不再会失败。

Jira:RHEL-78722

在之前的尝试失败后,目录服务器备份不再失败

在此次更新之前,如果初始备份尝试失败,则下一个目录服务器备份会失败,因为后端会处于忙碌尝试完成以前的备份。因此,需要重启实例。在这个版本中,Directory 服务器备份在以前的尝试失败后不再失败,且不再需要实例重启。

Jira:RHEL-61341

使用基于证书的身份验证时供应商之间的复制失败,现在有一个更描述性的错误消息

在此次更新之前,当缺少所需的 CA 证书文件且 TLS 连接设置在供应过程中失败时,错误消息不明确地识别问题。在这个版本中,当发生 TLS 设置错误时,Directory 服务器会记录更详细的错误信息。它现在包括了缺少证书的信息,如 No such file or directory for a missing certificate,从而使问题更易于解决。

Jira:RHEL-65662[1]

dsconf config replace 现在可以按预期处理多值属性

在此次更新之前,dsconf config replace 命令只能为属性设置一个值,如 nsslapd-haproxy-trusted-ip。在这个版本中,您可以使用以下命令设置几个值:

# dsconf <instace_name> config replace nsslapd-haproxy-trusted-ip=<ip_address_1> nsslapd-haproxy-trusted-ip=<ip_address_2> nsslapd-haproxy-trusted-ip=<ip_address_3>
Copy to Clipboard Toggle word wrap

Jira:RHEL-67004

现在,当使用带有 OR (|)和 NOT (!)运算符的复合过滤器时,目录服务器会返回正确的条目集合

在此次更新之前,当使用 OR (|)和 NOT (!)操作器搜索时,目录服务器不会返回正确的条目集合。原因在于,目录服务器错误地评估了访问权利和条目匹配,并在一个阶段执行这些步骤。在这个版本中,Directory 服务器在两个独立阶段执行访问权限评估和条目匹配,并使用 OR (|)和 NOT (!)运算符进行搜索。

Jira:RHEL-65776[1]

目录服务器重启后,供应商复制协议中的消费者状态会被正确显示

在此次更新之前,在复制拓扑中的供应商中,在 Directory Server 重启时会重置复制协议中的消费者状态。因此,显示的消费者初始化时间,复制状态不正确。

在这个版本中,复制协议条目显示消费者的正确状态,以及初始化的时间。

Jira:RHEL-67008

5.10. Red Hat Enterprise Linux 系统角色

新的 sshd_allow_restart 变量使 sshd 服务在需要时重启

在此更新之前,sshd RHEL 系统角色不会在需要时在受管节点上重启 sshd 服务。因此,与 '/etc/sysconfig/' 目录中的配置文件和环境文件相关的一些更改没有被应用。要修复这个问题,引入了 sshd_allow_restart (布尔值,默认为 true)变量,以便在需要时在受管节点上重启 sshd 服务。因此,sshd RHEL 系统角色现在可以正确地应用所有更改,并确保 sshd 服务实际使用这些更改。

Jira:RHEL-73409

在使用 run_as_user 变量时,podman RHEL 系统角色不再无法处理 secret

在此次更新之前,podman RHEL 系统角色无法处理因为缺少用户信息,使用 run_as_user 变量为特定用户指定的 secret。这会导致在尝试处理设置了 run_as_user 的 secret 时出现错误。这个问题已被解决,podman RHEL 系统角色可以正确地处理为特定用户使用 run_as_user 变量指定的 secret。

Jira:RHEL-73402

在有更改应用时,firewall RHEL 系统角色会报告 changed: True

在 playbook 处理过程中,firewall RHEL 系统角色中的 firewall_lib.py 模块在 playbook 中使用 interface 变量和受管节点上预存在的网络接口时,将 changed 消息替换为 False。因此,即使进行了更改,firewall 也会报告 changed: False 消息,并且 forward_port 变量中的内容没有保存为永久。有了此更新,firewall RHEL 系统角色确保 changed 的值没有被重置为 False。因此,当有更改时,角色会报告 changed: Trueforward_port 内容被保存为永久。

Jira:RHEL-65758

当签发的证书缺少私钥时,certificate RHEL 系统角色会正确地报告错误

删除证书的私钥时,受管节点上的 certmonger 工具会进入无限循环。因此,在重新发布已删除私钥的证书时,控制节点上的 certificate RHEL 系统角色变得没有响应。有了此更新,certificate RHEL 系统角色会停止处理,并提供一条带有补救说明的错误消息。因此,在上述场景中 certificate 不再变得没有响应。

Jira:RHEL-13333[1]

postgresql RHEL 系统角色不再无法设置 TLS 证书和私钥的路径

postgresql RHEL 系统角色的 postgresql_cert_name 变量定义受管节点上没有后缀的 TLS 证书和私钥的基本路径。在此更新之前,角色没有为证书和私钥定义内部变量。因此,如果您设置了 postgresql_cert_name,Ansible 任务会失败并显示以下错误消息:

The task includes an option with an undefined variable. The error was: '__pg_server_crt' is undefined. '__pg_server_crt' is undefined
Copy to Clipboard Toggle word wrap

有了此更新,角色可以正确地定义这些内部变量,任务会在 PostgreSQL 配置文件中设置证书和私钥的路径。

Jira:RHEL-62395

network RHEL 系统角色优先选择持久性 MAC 地址匹配

当所有以下条件都满足时:

  • 网络连接指定接口名称和介质访问控制(MAC)地址,以配置父和虚拟局域网(VLAN)连接。
  • 物理接口具有同样的永久和当前 MAC 地址。
  • 网络配置被应用多次。

network RHEL 系统角色将用户指定的 MAC 地址与永久 MAC 或 sysfs 虚拟文件系统中的当前 MAC 地址进行比较。然后,角色将与当前 MAC 的匹配项视为有效,即使接口名称与用户指定的不同。因此,会出现 "no such interface exists" 错误。有了此更新,link_info_find() 方法会在永久 MAC 地址有效且可用时优先选择根据其匹配的链接。如果永久 MAC 不可用(None 或 "00:00:00:00:00:00"),则方法会回退到与当前 MAC 地址匹配。因此,这个更改通过确保优先选择永久地址,同时为没有持久地址的接口保持可靠的回退机制,改进了 MAC 地址匹配的稳健性。

Jira:RHEL-73404

ansible-doc 命令再次为 redhat.rhel_system_roles 集合提供了文档

在此更新之前,vpn RHEL 系统角色不包括内部 Ansible 过滤器 vpn_ipaddr 的文档。因此,使用 ansible-doc 命令列出 redhat.rhel_system_roles 集合的文档将触发错误。有了此更新,vpn RHEL 系统角色包括 vpn_ipaddr 过滤器的正确格式的正确文档。因此,ansible-doc 不会触发任何错误,并提供正确的文档。

Jira:RHEL-61085

storage RHEL 系统角色可以正确地调整逻辑卷大小

当使用 storage RHEL 系统角色中的 grow_to_fill 功能,以便在调整底层虚拟磁盘的大小之后自动调整 LVM 物理卷时,物理卷不会被调整到其最大大小。因此,在调整现有或者创建新的额外逻辑卷时,并非所有存储的可用空间都可用;storage RHEL 系统角色失败。此更新修复了源代码中的问题,以确保角色在使用 grow_to_fill 时总是将物理卷调整到其最大大小。

Jira:RHEL-73244[1]

storage RHEL 系统角色现在在使用 VDO 的 RHEL 受管节点上按预期运行

在此次更新之前,blivet 模块需要使用 Virtual Data Optimizer (VDO)在 RHEL 受管节点上需要 kmod-kvdo 软件包。但是,kmod-kvdo 无法安装,因此甚至导致 storage RHEL 系统角色失败。这个问题的修复可确保 kmod-kvdo 不是使用 RHEL 的受管节点所需的软件包。因此,当带有 RHEL 的受管节点使用 VDO 时,存储 不再会失败。

Jira:RHEL-82160[1]

5.11. 虚拟化

High-memory 虚拟机现在可以正确地报告其状态

在以前的版本中,实时迁移使用 1TB 内存或更多内存的虚拟机(VM)会导致 libvirt 报告虚拟机不正确的状态。这个问题已被解决,libvirt 现在准确报告具有大量内存的实时迁移虚拟机的状态。

Jira:RHEL-28819[1]

现在,在没有 RNG 设备的情况下,虚拟机的网络引导可以正常工作

在以前的版本中,当虚拟机(VM)没有配置 RNG 设备且其 CPU 模型不支持 RDRAND 功能时,无法从网络引导虚拟机。在这个版本中,这个问题已被解决,不支持 RDRAND 的虚拟机也可以从网络引导,即使没有配置 RNG 设备。

但请注意,若要在从网络引导时提高安全性,强烈建议使用不支持 RDRAND 的 CPU 模型的虚拟机添加 RNG 设备。

Jira:RHEL-58631, Jira:RHEL-65725

vGPU 实时迁移不再报告过量脏页面

在以前的版本中,当使用附加的 NVIDIA vGPU 执行虚拟机迁移时,在迁移过程中会错误地报告大量的脏页面。这个问题可能会增加迁移过程中所需的虚拟机停机,迁移可能会失败。

在这个版本中,底层问题已被修复,在迁移过程中报告正确的脏页面量,这可以减少 vGPU 实时迁移过程中所需的虚拟机停机时间。

Jira:RHEL-64307[1]

如果 vGPU 驱动程序版本在源和目标主机上不同,则 vGPU 实时迁移不再失败

在以前的版本中,如果源和目标主机上的驱动程序版本不同,使用附加的 NVIDIA vGPU 的虚拟机(VM)实时迁移会失败。

在这个版本中,底层代码已被修复,即使驱动程序版本在源和目标主机上不同,使用 NVIDIA vGPU 的实时迁移现在可以正常工作。

Jira:RHEL-33795[1]

虚拟机不再错误地报告 AMD SRSO 漏洞

在以前的版本中,在带有 AMD Zen 3 和 4 个 CPU 架构的 RHEL 9 主机中运行的虚拟机(VM)会错误地向 Speculative return Stack Overflow (SRSO)攻击报告漏洞。

此问题是由缺少 cpuid 标志造成的,该标记已在此更新中解决。虚拟机报告的 AMD SRSO 漏洞的任何报告现在都应被视为正确。

Jira:RHEL-26152[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

5.12. 支持性

对现有存档的 sos clean 不再失败

在以前的版本中,由于 sos 代码中一个错误地检测 tar 包的根目录,且阻止其清理数据的回归,现有的存档无法通过运行 sos clean 来清理。因此,对现有 sosreport tar 包运行 sos clean 不会清理 tar 包中的任何内容。此更新添加了一个在重新排序的 tar 包内容中正确检测根目录的实现。因此,sos clean 可以对现有的 sosreport tar 包正确地执行敏感数据模糊处理。

Jira:RHEL-35945

sos 停止收集用户的 .ssh 配置

在以前的版本中,sos 工具默认收集用户的 .ssh 配置。因此,此操作导致用户使用 automount 工具挂载的系统损坏。有了此更新,sos 工具不再收集 .ssh 配置。

Jira:RHEL-22389

sos 现在会在几个地方模糊处理代理密码

在以前的版本中,sos 工具不会模糊处理来自代理链接的密码。例如,/etc/environment 文件中的 HTTP_PROXYHTTPS_PROXY。因此,sos 工具可以使用客户代理密码收集 sosreport,除非在提交前被清理了。这可能会造成安全问题。发现并修复了其中几个地方,以模糊处理密码。

红帽不断改进 sos 工具,来增强模糊处理功能,但无法保证完全删除敏感信息。在与红帽共享前,用户负责检查并手动清理任何机密数据。

Jira:RHEL-67712[1]

第 6 章 技术预览

这部分列出了 Red Hat Enterprise Linux 9 中的所有技术预览。

如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围

6.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]

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

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

Jira:RHELDOCS-17733[1]

6.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 解析器(unbound)。添加内核参数来为早期引导过程配置 eDNS,并选择性地安装自定义 CA 捆绑包。

此外,身份管理(IdM)部署也可以使用加密的 DNS 服务器以及支持 DoT 的集成 DNS 服务器。

如需了解更多详细信息 ,请参阅使用加密 DNS 保护系统 DNS 流量

Jira:RHELDOCS-20059[1], Jira:RHEL-67913

gnutls 现在使用 kTLS 作为技术预览

更新的 gnutls 软件包可以将内核 TLS (kTLS)作为技术预览,来在加密通道上加速数据传输。要启用 kTLS,请使用 modprobe 命令添加 tls.ko 内核模块,并使用以下内容为系统范围的加密策略创建一个新的配置文件 /etc/crypto-policies/local.d/gnutls-ktls.txt

[global]
ktls = true
Copy to Clipboard Toggle word wrap

请注意,当前版本不支持通过 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]

6.3. RHEL for Edge

作为技术预览,FDO 现在提供和查询来自 SQL 后端的所有者凭证

有了这个技术预览,FDO manufacturer-serveronboarding-serverrendezvous-server 可用来存储和查询来自 SQL 后端的所有者凭证。因此,您可以在 FDO 服务器选项中选择 SQL 数据存储,以及凭证和其他参数,来存储所有者凭证。

Jira:RHELDOCS-17752[1]

6.4. Shell 和命令行工具

systemd-resolved 服务作为技术预览提供

systemd-resolved 为本地应用程序提供名字解析。该服务实现了缓存和验证 DNS stub 解析器、链接本地多播名称解析(LLMNR)和多播 DNS 解析器和响应程序。

请注意, systemd-resolved 是一个不受支持的技术预览。

Jira:RHEL-88550

GIMP 在 RHEL 9 中作为技术预览提供

GNU Image Manipulation Program(GIMP)2.99.8 现在作为技术预览在 RHEL 9 中提供。gimp 软件包版本 2.99.8 是一个预发行版本,它有一组改进,但只能保证稳定性。发布官方 GIMP 3 后,将作为此预发布版本的更新,在 RHEL 9 中引入。

在 RHEL 9 中,您可以作为 RPM 软件包轻松安装 gimp

Jira:RHELPLAN-109991[1]

6.5. 基础架构服务

TuneD 的套接字 API 作为技术预览提供

通过 UNIX 域套接字控制 TuneD 的套接字 API 现在作为技术预览提供。套接字 API 将一对一与 D-Bus API 映射,并为 D-Bus 不可用的情况提供替代通信方法。通过使用套接字 API,您可以控制 TuneD 守护进程来优化性能,并更改各种调优参数的值。套接字 API 默认被禁用,您可以在 tuned-main.conf 文件中启用它。

Jira:RHELPLAN-129881[1]

6.6. 网络

将 IPsec 封装卸载到 NIC 现在作为技术预览提供

此更新向内核添加了 IPsec 数据包卸载功能。在以前的版本中,只能将加密卸载到网络接口控制器(NIC)。有了此增强,内核现在可将整个 IPsec 封装过程卸载到 NIC,以减少工作负载。

请注意,将 IPsec 封装过程卸载到 NIC 也会减少内核监控和过滤此类数据包的能力。

Jira:RHEL-88552[1]

KTLS 作为技术预览提供

在 RHEL 中,内核传输层安全(KTLS)作为技术预览提供。KTLS 通过使用内核中的对称加密或解密算法处理 TLS 记录,用于 AES-GCM 密码。KTLS 还包括将 TLS 记录加密卸载到提供此功能的网络接口控制器(NIC)的接口。

请注意,内核 TLS 卸载的具体用例可能会具有更高的支持状态。详情请查看 新功能 章节中的发行注记。

Jira:RHEL-88551[1]

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]

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]

6.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。ARM64 在 ARM (AARCH64)上为 4k 和 64k ARM 内核都启用。

Jira:RHELDOCS-19635[1]

6.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]

6.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
Copy to Clipboard Toggle word wrap

如果要从 nodejs20 流升级,请参阅 切换到更新的流

有关 nodejs 应用程序流支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-35990

6.10. 编译器和开发工具

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]

libabigail :灵活的阵列转换警告抑制,作为技术预览提供

作为技术预览,当比较二进制文件时,您可以使用以下抑制规范抑制与转换为 true 灵活数组的假灵活数组相关的警告:

[suppress_type]
       type_kind = struct
       has_size_change = true
       has_strict_flexible_array_data_member_conversion = true
Copy to Clipboard Toggle word wrap

Jira:RHEL-16629[1]

eu-stacktrace 作为技术预览提供

自 0.192 版本以来已通过 elfutils 软件包分发的 eu-stacktrace 工具作为技术预览功能提供。eu-stacktrace 是一个原型工具,它使用 elfutils 工具包的展开库来支持采样分析器,以展开无帧指针堆栈样本数据。

Jira:RHELDOCS-19072[1]

6.11. 身份管理

IdM 部署中 TLS 的 DNS over TLS (DoT)作为技术预览提供

使用 DNS over TLS (DoT)的加密 DNS 在 Identity Management (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。您可以使用新的 --dns-policy 选项和 enforced 设置来强制实施仅加密的通信。

您还可以通过将 ipa-dns-install 与新的 DoT 选项搭配使用,来在现有 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]

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
    Copy to Clipboard Toggle word wrap
  • 要在整个 IdM 部署中禁用 ACME,请使用 ipa-acme-manage disable 命令:

    # ipa-acme-manage disable
    The ipa-acme-manage command was successful
    Copy to Clipboard Toggle word wrap
  • 要检查是否安装了 ACME 服务,以及它是否启用或禁用了,请使用 ipa-acme-manage status 命令:

    # ipa-acme-manage status
    ACME is enabled
    The ipa-acme-manage command was successful
    Copy to Clipboard Toggle word wrap

Jira:RHELPLAN-121754[1]

IdM 到 IdM 迁移作为技术预览提供

IdM 到 IdM 迁移在身份管理中作为技术预览提供。您可以使用新的 ipa-migrate 命令将所有特定于 IdM 的数据(如 SUDO 规则、HBAC、DNA 范围、主机、服务等)迁移到其他 IdM 服务器。这非常有用,例如,当将 IdM 从开发或暂存环境移到生产环境时,或者在两个生产服务器之间迁移 IdM 数据时。

Jira:RHELDOCS-18408[1]

6.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]

6.13. Web 控制台

RHEL web 控制台现在可以管理 WireGuard 连接

从 RHEL 9.4 开始,您可以使用 RHEL web 控制台创建并管理 WireGuard VPN 连接。请注意,WireGuard 技术及其 Web 控制台集成是不支持的技术预览。

Jira:RHELDOCS-17520[1]

6.14. 虚拟化

创建嵌套虚拟机

对于运行在 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]

6.15. 云环境中的 RHEL

RHEL 在 Azure 机密虚拟机上作为技术预览提供

使用更新的 RHEL 内核,您可以在 Microsoft Azure 上创建并运行 RHEL 机密虚拟机(VM)作为 RHEL 9.3 的技术预览。新添加的统一内核镜像(UKI)现在在 Azure 上可以引导加密的机密虚拟机镜像。UKI 作为 RHEL 9 存储库中的 kernel-uki-virt 软件包提供。

目前,RHEL UKI 只能在 UEFI 引导配置中使用。

Jira:RHELPLAN-139800[1]

6.16. 容器

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]

composefs 文件系统作为技术预览提供

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

Jira:RHEL-18157[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

第 7 章 弃用的功能

弃用的设备被完全支持,这意味着它们经过了测试和维护,且其支持状态在 Red Hat Enterprise Linux 9 中保持不变。但是,这些设备可能在以后的主版本中不被支持,且不建议对当前或将来的 RHEL 主发行版本进行新部署。

有关特定主发行版本中已弃用功能的最新列表,请查看最新发行版本的文档。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

一个软件包可以被弃用,我们不推荐在以后使用。在某些情况下,可以从产品中删除软件包。然后,产品文档可识别提供类似、完全相同或者更高级功能的最新软件包,并提供进一步建议。

有关 RHEL 8 中存在但已在 RHEL 9 中 删除 的功能的详情,请参阅 采用 RHEL 9 时的注意事项

7.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

无法从安装环境中的驱动程序更新磁盘载入更新的驱动程序

如果安装初始 RAM 磁盘中的同一驱动程序已经加载,则驱动程序更新磁盘中的驱动程序的新版本可能无法加载。因此,驱动程序的更新版本无法应用到安装环境。

临时解决方案:将 modprobe.blacklist= 内核命令行选项与 inst.dd 选项一起使用。例如,要确保是否加载了驱动程序更新磁盘中的 virtio_blk 驱动程序的更新版本,请使用 modprobe.blacklist=virtio_blk,然后继续通常的流程来应用驱动程序更新磁盘中的驱动程序。因此,系统会加载驱动程序的更新版本,并在安装环境中使用它。

Jira:RHEL-4762

7.2. 安全性

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 公告

或者,您可以我们 Insights for RHEL 漏洞服务,如需更多信息,请参阅 评估和监控 RHEL 系统中的安全漏洞

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
Copy to Clipboard Toggle word wrap

或者,您可以将系统范围的加密策略切换到 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 替代。将应用程序和现有引擎迁移到提供方正在进行。弃用的 Engines 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]

7.3. RHEL for Edge

对于 RHEL for Edge 镜像的镜像模式,Ignition 已被弃用

在引导过程的早期阶段,用来将用户配置注入 Simplified Installer、AMI 和 VMDK RHEL for Edge 镜像类型的 Ignition 工具已在 RHEL 9 中弃用,并可能在以后的主发行版本中删除。

Jira:RHELDOCS-19754[1]

7.4. 订阅管理

几个 subscription-manager 模块已被弃用

由于红帽订阅服务中的一个简化的客户体验已过渡到 Red Hat Hybrid Cloud Console 和带有简单内容访问的帐户级订阅管理,因此以下模块已被弃用,并将在以后的主发行版本中删除:

Jira:RHEL-29178

弃用的 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
Copy to Clipboard Toggle word wrap

要注册您的系统,请使用其他支持的授权方法,如包括 subscription-manager register 命令的配对选项 --username / --password OR --org / --activationkey

Jira:RHELPLAN-146101[1]

7.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]

7.6. Shell 和命令行工具

perl (Mail::Sender) 模块现已弃用

perl (Mail::Sender) 模块现已弃用,并将从下一个主发行版本中删除,而没有任何替换。因此,当主机或接口的带宽达到高或低水平时,net-snmp-perl 软件包中的 checkbandwidth 脚本不支持电子邮件警报。

Jira:RHELDOCS-18959[1]

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 服务管理器支持在 cgroup v1 模式和 cgroup v2 模式下引导。在 Red Hat Enterprise Linux 9 中,默认模式是 v2。在 Red Hat Enterprise Linux 10 中,systemd 将不支持在 cgroups v1 模式下引导,且提供 cgroup v2 模式。

Jira:RHELDOCS-17545[1]

7.7. 基础架构服务

客户端侧和服务器端 DHCP 软件包已弃用

Internet Systems Consortium (ISC)已宣布在 2022 年底之前结束 ISC DHCP 的维护。因此,红帽决定在 RHEL 9 中弃用客户端和服务器端 DHCP 软件包,且不在以后的 RHEL 主发行版本中分发它们。客户必须准备过渡到可用的替代品,如 dhcpcdISC Kea

Jira:RHELDOCS-17135[1]

现在,各种软件包已在基础设施服务中弃用

以下软件包已在 RHEL 9 中被弃用,且不会在以后的 RHEL 主版本中分发:

  • sendmail
  • libotr
  • mod_security
  • spamassassin
  • redis
  • dhcp
  • xsane

Jira:RHEL-22385[1]

7.8. 网络

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

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]

7.9. 内核

在 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]

kexec-toolskexec_load 系统调用已弃用

在以后的 RHEL 版本中将不支持 kexec_load 系统调用(其载入第二个内核)。kexec_file_load 系统调用替换了 kexec_load,它现在是所有架构上的默认系统调用。

如需更多信息,请参阅 RHEL9 中是否支持 kexec_load?

Jira:RHELPLAN-129876[1]

RHEL 9 中已弃用网络团队(Network teams)

teamd 服务和 libteam 库在 Red Hat Enterprise Linux 9 中已弃用,并将在下一个主发行版本中删除。作为替换,配置绑定而不是网络组。

红帽注重于基于内核的绑定操作,以避免维护具有类似功能的两个功能:绑定和团队(team)。绑定代码具有较高的客户采用率,非常可靠,具有活跃的社区开发。因此,绑定代码会收到功能增强和更新。

有关如何将团队迁移到绑定的详情,请参阅将网络组配置迁移到网络绑定

Jira:RHELDOCS-20097[1]

7.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

7.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]

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

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]

7.13. 编译器和开发工具

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]

7.14. 身份管理

dnssec-enable: no; 选项已弃用

/etc/named/ipa-options-ext.conf 文件中的 dnssec-enable: no; 选项已被弃用,并将在以后的 RHEL 主版本中删除。DNS 安全扩展(DNSSEC)会被默认启用,且无法禁用它们。dnssec-validation: no; 选项仍可用。

Jira:RHELDOCS-20464[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
      ...
      Copy to Clipboard Toggle word wrap
    2. 通过在 sssd.conf 配置文件中设置 enable_files_domain=true 来启用 文件 供应商。

      [sssd]
      enable_files_domain = true
      Copy to Clipboard Toggle word wrap
  2. 配置名称服务切换。

    # authselect enable-feature with-files-provider
    Copy to Clipboard Toggle word wrap
  3. 要恢复用户信息的缓存和同步,请通过创建符号链接来启用 shadow-utilssssd_cache 之间的集成:

    # ln -s /usr/sbin/sss_cache /usr/sbin/sss_cache_shadow_utils
    Copy to Clipboard Toggle word wrap

Jira:RHELPLAN-100639[1], Jira:RHEL-56352

7.15. 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]

SSSD 文件 提供者已弃用

SSSD 文件 提供者已在 Red Hat Enterprise Linux (RHEL) 9 中弃用。文件 提供者可能会从以后的版本中删除。

Jira:RHELPLAN-139805[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]

7.16. 桌面

Firefox 和 Thunderbird Flatpak 镜像已被弃用

rhel9/firefox-flatpakrhel9/thunderbird-flatpak Flatpak 镜像在 RHEL 9 中作为技术预览提供,并已被弃用。

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
Copy to Clipboard Toggle word wrap

要验证是否安装了该软件包,请输入以下命令:

# rpm -q tuned-ppd
tuned-ppd-2.25.1-1.el9.noarch
Copy to Clipboard Toggle word wrap

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]

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]

7.17. 图形基础结构

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]

7.18. Red Hat Enterprise Linux 系统角色

sshd 变量已弃用,并被 sshd_config 替换

要在 RHEL 系统角色中统一编码标准,sshd 变量已被 sshd_config 变量替代。sshd 变量现已弃用,可能在以后的 RHEL 主发行版本中的 sshd Ansible 角色中删除。

Jira:RHEL-73408

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]

7.19. 虚拟化

与 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.6 上托管的虚拟机中使用软盘磁盘设备。

Jira:RHELPLAN-81033[1]

qcow2-v2 镜像格式已弃用

在 RHEL 9.6 中,虚拟磁盘镜像的 qcow2-v2 格式已弃用,并将在以后的 RHEL 主发行版本中不被支持。另外,RHEL 9.6 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'
Copy to Clipboard Toggle word wrap

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]

7.20. 容器

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]

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]

Inkscape 和 LibreOffice Flatpak 镜像已弃用

作为技术预览提供的 rhel9/inkscape-flatpakrhel9/libreoffice-flatpak Flatpak 镜像已被弃用。

红帽建议对这些镜像使用以下替代方案:

  • 要替换 rhel9/inkscape-flatpak,请使用 inkscape RPM 软件包。
  • 要替换 rhel9/libreoffice-flatpak,请参阅 LibreOffice 弃用发行注记

Jira:RHELDOCS-17102[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]

ruby-31 容器镜像已弃用

ruby-31 容器镜像已弃用,并将不再接收功能更新。使用 ruby-33 容器镜像替代。

Jira:RHELDOCS-20519

php-81 容器镜像已弃用

php-81 容器镜像现已弃用,并将不再接收功能更新。改为使用 php-83

JIRA:RHELDOCS-20718

7.21. 已弃用的软件包

本节列出了已弃用的软件包,可能不会包括在 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
  • 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-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
  • 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

第 8 章 已知问题

这部分论述了 Red Hat Enterprise Linux 9.6 中已知的问题。

8.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
Copy to Clipboard Toggle word wrap

因此,安装可以正常工作,且没有任何错误。

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 for Edge 安装程序镜像在安装 rpm-ostree 有效负载时无法创建挂载点

当部署 rpm-ostree 有效负载时,例如用于 RHEL for Edge 安装程序镜像,安装程序不能为自定义分区正确创建一些挂载点。因此,安装会停止并显示以下错误:

The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.
Copy to Clipboard Toggle word wrap

临时解决方案:

  • 使用自动分区方案,且不手动添加任何挂载点。
  • 只在 /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
      Copy to Clipboard Toggle word wrap
    2. 删除您不需要的连接配置文件:

      # nmcli connection delete <connection_name>
      Copy to Clipboard Toggle word wrap

      将 <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
Copy to Clipboard Toggle word wrap

在系统镜像安装后,使用 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>
Copy to Clipboard Toggle word wrap

临时解决方案:在 Kickstart 的 %packages 部分中将特定的软件包与服务文件包含。因此,RHEL 安装完成,在安装过程中启用了预期的服务。

Jira:RHEL-9633[1]

无法从签名的容器构建 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
Copy to Clipboard Toggle word wrap

这是因为系统无法获得镜像签名。

临时解决方案:您可以从容器镜像中删除签名,或构建一个派生的容器镜像。例如,要删除签名,您可以运行以下命令:

 $ 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
Copy to Clipboard Toggle word wrap

要构建派生的容器镜像,并避免向其添加简单的 GPG 签名,请参阅 签名容器镜像 产品文档。

Jira:RHEL-34807

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>
Copy to Clipboard Toggle word wrap

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 安装失败并显示 unknown disk 错误

如果 ignoredisk 命令被放在 iscsi 命令之前,则使用 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

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]

安装过程有时将变为无响应

安装 RHEL 时,安装过程有时会变得无响应。/tmp/packaging.log 文件在末尾显示以下消息:

10:20:56,416 DDEBUG dnf: RPM transaction over.
Copy to Clipboard Toggle word wrap

临时解决方案:重启安装进程。

Jira:RHELPLAN-118420[1]

8.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
Copy to Clipboard Toggle word wrap

因此,可以在描述的场景中建立 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.
Copy to Clipboard Toggle word wrap

临时解决方案:您必须在 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
Copy to Clipboard Toggle word wrap

因此,您只能将用于 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
    Copy to Clipboard Toggle word wrap
  2. 进到 /usr/share/scap-security-guide/ansible 目录:

    # cd /usr/share/scap-security-guide/ansible
    Copy to Clipboard Toggle word wrap
  3. 使用定义额外的 Ansible 集合路径的环境变量来运行相关的 Ansible Playbook :

    # ANSIBLE_COLLECTIONS_PATH=/usr/share/rhc-worker-playbook/ansible/collections/ansible_collections/ ansible-playbook -c local -i localhost, rhel9-playbook-cis_server_l1.yml
    Copy to Clipboard Toggle word wrap

    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 代理添加到验证器中,然后更新,verifier 会尝试使用旧的 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]

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

默认 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
Copy to Clipboard Toggle word wrap

当应用到 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 有时会错误地显示不需要服务 启用禁用 状态修复。因此,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)))
    Copy to Clipboard Toggle word wrap
  2. 安装策略模块软件包:

    # semodule -i local_fdo_update.cil
    Copy to Clipboard Toggle word wrap

因此,FDO 可以连接到 PostgreSQL 数据库,并修复 /var/lib/fdo/ 上与 SQLite 权限相关的问题,其中 SQLite 数据库文件应该位于此目录中。

Jira:RHEL-28814

现在,在启用了 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 上的 FIPS 服务器。同样,FIPS 模式下的 RHEL 9 客户端无法连接到只支持没有 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

8.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]

8.4. Shell 和命令行工具

使用 ifcfg 文件重命名网络接口失败

在 RHEL 9 中,默认情况下不会安装 initscripts 软件包。因此,使用 ifcfg 文件重命名网络接口会失败。

临时解决方案:要解决这个问题,红帽建议您使用 udev 规则或链接文件来重命名接口。详情请查看 Consistent 网络接口设备命名systemd.link(5) man page。

如果您无法使用推荐的解决方案之一,请安装 initscripts 软件包。

Jira:RHELPLAN-100926[1]

RHEL 9 中不默认安装 chkconfig 软件包

RHEL 9 中不默认安装 chkconfig 软件包(更新和查询系统服务运行级别信息)。

要管理服务,请使用 systemctl 命令或手动安装 chkconfig 软件包。

有关 systemd 的更多信息,请参阅 systemd 简介。有关如何使用 systemctl 实用程序的步骤,请参阅使用 systemctl 管理系统服务

Jira:RHELPLAN-112043[1]

设置控制台 keymap 在最小安装上需要 libxkbcommon

在 RHEL 9 中,某些 systemd 库依赖项已从动态链接转换为动态加载,以便您的系统在运行时打开并使用库(当它们可用时)。有了这个更改,除非您安装必要的库,否则无法使用依赖于此类库的功能。这也会影响在最小安装的系统上设置键盘布局。因此,localectl --no-convert set-x11-keymap gb 命令会失败。

临时解决方案:安装 libxkbcommon 库:

# dnf install libxkbcommon
Copy to Clipboard Toggle word wrap

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 might 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.
Copy to Clipboard Toggle word wrap

缺少的文件是 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
Copy to Clipboard Toggle word wrap

使用推荐的临时解决方案,即使在没有 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]

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]

8.5. 基础架构服务

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

perl-DBD-MySQL 软件包错误地链接到 libmariadb 库。因此,如果以下所有条件都满足以,Perl 应用程序将无法建立连接:

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

临时解决方案:请参阅红帽知识库中的 相应解决方案

Jira:RHEL-77083

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]

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]

VMware vCenter 无法从正在运行的 RHEL 虚拟机正确删除 SATA 磁盘

当使用 VMWare vCenter 接口从 VMware ESXi hypervisor 上运行的 RHEL 9 客户机中删除 SATA 磁盘时,磁盘目前不会被完全删除。它会停止正常工作,并从 vCenter 界面中的客户机中消失,但 SCSI 接口仍然检测到客户端中附加的磁盘。 

Jira:RHEL-79914[1]

8.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]

如果您在运行时减少了 SR-IOV VF 的数量,则内核可能会 panic

如果以下条件都满足,则 Linux 内核可能会 panic:

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

临时解决方案:不要在运行时减少 VF 的数量。重启机器,将所有接口的 VF 数量重置为 0。之后,您可以设置新的 VF 数量,因为增加数量不会导致内核 panic。

Jira:RHEL-76845[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
Copy to Clipboard Toggle word wrap

临时解决方案:未确认的解决方法是完全关闭系统,然后再将其打开。不要执行重启。

Jira:RHELPLAN-134771[1]

在 PF 重置过程中出现 DPLL 稳定性的问题

Digital Phase-Locked Loop (DPLL)系统遇到了一些问题,包括未初始化的互斥锁使用情况和 pin 阶段调整的错误处理,特别是在物理功能(PF)重置过程中。这些问题导致 DPLL 和 pin 配置的不稳定的管理,导致数据状态不一致和连接管理不善。

临时解决方案 :要解决这个问题,mutexes 被正确初始化,在 PF 重置过程中更新 pin 阶段调整、DPLL 数据和连接状态的机制已被修正。因此,DPLL 系统现在可以在重置过程中可靠地执行,并具有准确的阶段调整和一致的连接状态,提高了时钟同步的整体稳定性。

Jira:RHEL-36283[1]

以密钥文件格式解析 NetworkManager 配置集的默认网关可能会失败

从 RHEL 9.6 开始,如果您创建新配置集或修改 keyfile 格式的现有配置集,NetworkManager 会将默认网关存储在 gateway 参数中。例如:

[ipv4]
address1=192.0.2.1/24
gateway=192.0.2.254
...

[ipv6]
address1=2001:db8:1::fffe/64
gateway=2001:db8:1::fffe
...
Copy to Clipboard Toggle word wrap

在 RHEL 9.5 及更早的版本中,默认网关附加到 address1 参数,例如:

[ipv4]
address1=192.0.2.1/24,192.0.2.254
...

[ipv6]
address1=2001:db8:1::fffe/64,2001:db8:1::fffe
...
Copy to Clipboard Toggle word wrap

因此,如果应用程序解析密钥文件,应用程序可能无法返回默认网关。要解决这个问题,请修改您的应用程序以支持这两种格式。

Jira:RHEL-71153[1]

8.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
Copy to Clipboard Toggle word wrap

临时解决方案: 要避免这个问题,请使用以下方法之一:

  • 使用合适的构建配置或环境选项来创建 4k 和 64k 页大小兼容二进制文件。
  • 在引导到最后的 64k 内核和运行时环境后,构建任何使用 jemalloc 的用户空间软件包。

例如,您可以构建 fd-find 工具,该工具也通过 cargo Rust 软件包管理器使用 jemalloc。在最后的 64k 环境中,输入 cargo 命令触发所有依赖项的新构建,以解决页大小中的不匹配:

# cargo install fd-find --force
Copy to Clipboard Toggle word wrap

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%
Copy to Clipboard Toggle word wrap

Delay Account 功能使用 taskstats 接口,为属于线程组的所有任务或线程提供延迟统计。当任务等待 kernel 资源可用时,会延迟执行,例如:等待空闲 CPU 运行的任务。统计有助于设置任务的 CPU 优先级、I/O 优先级和 rss 限制值。

临时解决方案:您可以在运行时或引导时启用 delayacct 引导选项。

  • 要在运行时启用 delayacct,请输入:

    echo 1 > /proc/sys/kernel/task_delayacct
    Copy to Clipboard Toggle word wrap

    请注意,这个命令可启用系统范围功能,但只适用于您在运行此命令后启动的任务。

  • 要在引导时永久启用 delayacct,请使用以下步骤之一:

    • 编辑 /etc/sysctl.conf 文件以覆盖默认参数:

      1. /etc/sysctl.conf 文件中添加以下条目:

        kernel.task_delayacct = 1
        Copy to Clipboard Toggle word wrap

        如需更多信息,请参阅 如何在 Red Hat Enterprise Linux 上设置 sysctl 变量

      2. 重启系统以使更改生效。
    • 在内核命令行中添加 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"
    Copy to Clipboard Toggle word wrap
  2. 重启以使更改生效。
  3. 通过显示您在启动过程中传递的内核参数来验证新设置。

    cat /proc/cmdline
    Copy to Clipboard Toggle word wrap

请注意,启用 skew_tick=1 会导致功耗的大量增加,因此只有在运行延迟敏感实时工作负载时才必须启用它。

Jira:RHEL-9318[1]

kdump 机制无法捕获 LUKS 加密目标上的 vmcore 文件

当在使用 Linux Unified Key Setup(LUKS)加密分区的系统中运行 kdump 时,系统需要特定的可用内存。当可用内存小于所需内存量时,systemd-cryptsetup 服务将无法挂载分区。因此,第二个内核无法捕获 LUKS 加密目标上的崩溃转储文件。

临时解决方案:查询 推荐的 crashkernel 值,并将内存大小逐渐增加到适当的值。推荐的 crashkernel 值 可作为设置所需内存大小的参考。

  1. 打印估计的崩溃内核值。

    # kdumpctl estimate
    Copy to Clipboard Toggle word wrap
  2. 通过增加 crashkernel 值来配置所需的内存量。

    # grubby --args=crashkernel=652M --update-kernel=ALL
    Copy to Clipboard Toggle word wrap
  3. 重启系统以使更改生效。

    # reboot
    Copy to Clipboard Toggle word wrap

因此,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
Copy to Clipboard Toggle word wrap

作为临时解决方案,请使用以下解决方案之一:

  • 通过重新使用具有 znet 配置信息的连接配置集来配置网络绑定或桥接:

    $ nmcli connection modify enc600 master bond0 slave-type bond
    Copy to Clipboard Toggle word wrap
  • 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 --
      Copy to Clipboard Toggle word wrap
    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
      Copy to Clipboard Toggle word wrap
    3. 重启 kdump 服务以使更改生效:

      # kdumpctl restart
      Copy to Clipboard Toggle word wrap

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)工具无法识别 64 位 ARM CPU 的内核标头可用于 4 kB 和 64 kB 页面大小的内核。因此,当执行了内核更新,且 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]

kdump 无法使用 UKI 启动

当您安装 kernel-uki-virtkernel-modules-core 软件包以便在 Azure 中的机密虚拟机上启用统一内核镜像(UKI)时,kdump 服务无法启动。因此,kdump 无法在虚拟机上工作。

临时解决方案:禁用 SELinux 策略并重启虚拟机。因此,kdump 服务正在运行。

Jira:RHEL-66119[1]

8.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
Copy to Clipboard Toggle word wrap

因此,复杂虚拟设备堆栈会在关闭过程中被正确停用,且不会生成错误消息。

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]

8.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]

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

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
Copy to Clipboard Toggle word wrap

Jira:RHELDOCS-18435[1]

8.11. 身份管理

必须在 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
Copy to Clipboard Toggle word wrap

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
    Copy to Clipboard Toggle word wrap
  • 更新非 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
Copy to Clipboard Toggle word wrap

Jira:RHELPLAN-113281[1]

FIPS 模式下的 IdM 不支持使用 NTLMSSP 协议来建立双向跨林信任

在活动目录(AD)和启用了 FIPS 模式的身份管理(IdM)之间建立双向跨林信任会失败,因为新技术局域网管理器安全支持提供程序 (NTLMSSP)身份验证不符合 FIPS。FIPS 模式下的 IdM 不接受在尝试验证时 AD 域控制器所使用的 RC4 NTLM 哈希。

Jira:RHEL-12154[1]

迁移的 IdM 用户可能会因为不匹的域 SID 而无法登录

如果您使用 ipa migrate-ds 脚本将用户从一个 IdM 部署迁移到另一个,则这些用户可能会在使用 IdM 服务时有问题,因为它们之前存在的安全标识符(SID)没有当前 IdM 环境的域 SID。例如,这些用户可以使用 kinit 工具检索 Kerberos 票据,但不能登录。

临时解决方案:请参阅以下知识库文章: Migrated IdM 用户因为不匹配的域 SID 而无法登录

Jira:RHELPLAN-109613[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:'
Copy to Clipboard Toggle word wrap

如需更多信息,请参阅 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
Copy to Clipboard Toggle word wrap

请注意,这个删除不符合 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
Copy to Clipboard Toggle word wrap

因此,Heimdal 客户端可以针对 RHEL MIT KDC 完成 PKINIT 预验证。

Jira:RHELDOCS-19846[1]

8.12. 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]

8.13. 桌面

升级到 RHEL 9 后,VNC 没有运行

从 RHEL 8 升级到 RHEL 9 后,VNC 服务器无法启动,即使之前启用它。

临时解决方案:在系统升级后手动启用 vncserver 服务:

# systemctl enable --now vncserver@:port-number
Copy to Clipboard Toggle word wrap

现在,每个系统引导后都会启用 VNC 并按预期启动。

Jira:RHELPLAN-114314[1]

用户创建屏幕没有响应

当使用图形用户界面安装 RHEL 时,User Creation 屏幕会无响应。因此,在安装过程中创建用户更为困难。

临时解决方案:使用以下解决方案之一创建用户:

  • 在 VNC 模式下运行安装并重新定义 VNC 窗口的大小。
  • 完成安装过程后创建用户。

Jira:RHEL-11924[1]

WebKitGTK 无法在 IBM Z 上显示网页

当尝试在 IBM Z 架构上显示网页时,WebKitGTK 网页浏览器引擎会失败。网页保持空白,WebKitGTK 进程意外终止。

因此,您无法使用那些使用 WebKitGTK 的应用程序的某些功能来显示网页,如下所示:

  • Evolution 邮件客户端
  • GNOME 在线帐户设置
  • GNOME 帮助应用程序

Jira:RHEL-4157

xorg -configure 无法在虚拟机上创建 Xorg 配置文件

运行 xorg -configure 以在虚拟机上创建 Xorg 配置文件会失败,因为缺少配置的设备。此问题会导致配置失败。要临时解决这个问题,请根据 Xorg 文档中介绍的指南手动构建 xorg.conf 文件,或使用扩展显示识别数据(EDID)覆盖到 Teak 显示分辨率等替代机制。有了这个临时解决方案,Xorg 服务器可以使用正确的配置。

Jira:RHELDOCS-20196[1]

8.14. 图形基础结构

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]

8.15. Web 控制台

RHEL web 控制台中的 VNC 控制台无法在 ARM64 上正常工作

目前,当您在 ARM64 架构上的 RHEL web 控制台中导入虚拟机(VM),然后您尝试在 VNC 控制台中与其进行交互时,控制台不会对您的输入做出反应。

另外,当您在 ARM64 架构上的 web 控制台中创建虚拟机时,VNC 控制台不会显示您输入的最后几行。

Jira:RHEL-31993[1]

8.16. Red Hat Enterprise Linux 系统角色

如果 firewalld.service 被屏蔽,使用 firewall RHEL 系统角色会失败

如果在 RHEL 系统上屏蔽了 firewalld.service,则 firewall RHEL 系统角色会失败。

临时解决方案: 取消屏蔽 firewalld.service

systemctl unmask firewalld.service
Copy to Clipboard Toggle word wrap

Jira:RHELPLAN-133165[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]

8.17. 虚拟化

在某些情况下,通过 HTTPS 或 SSH 安装虚拟机会失败

目前,当尝试通过 HTTPS 或 SSH 连接从 ISO 源安装客户机操作系统(OS)时,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]

在 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]

在网络接口重置后,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.
Copy to Clipboard Toggle word wrap

但是,这个错误消息不会影响虚拟机的功能,可以忽略。详情请查看 红帽知识库

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
Copy to Clipboard Toggle word wrap

临时解决方案:不要将 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
Copy to Clipboard Toggle word wrap

详情请查看 红帽知识库

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
Copy to Clipboard Toggle word wrap

当前没有解决此问题的方法。

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
Copy to Clipboard Toggle word wrap

在同一主机上引导虚拟机后,虚拟机在 spec_rstack_overflow 参数中检测到一个漏洞。当查询日志中的参数时,它显示消息:

# cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
Vulnerable: Safe RET, no microcode
Copy to Clipboard Toggle word wrap

但是,这是一个假的警告消息,您可以忽略虚拟机中 /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
Copy to Clipboard Toggle word wrap

或者,您可以在虚拟机运行时尝试删除并重新添加此网络接口。

Jira:RHEL-21867

SeaBIOS 无法从具有 4096 个字节扇区大小的磁盘引导

当使用 SeaBIOS 从使用 4096 字节的逻辑或物理扇区大小的磁盘引导虚拟机时,引导磁盘没有显示为可用,引导虚拟机失败。要从这样的磁盘引导虚拟机,请使用 UEFI 而不是 SeaBIOS。

Jira:RHEL-7110

kdump 在带有 AMD SEV-SNP 的虚拟机上失败

目前,kdump 在使用具有安全嵌套的分页(SNP)功能的 AMD Secure Encrypted Virtualization (SEV)的 RHEL 9 虚拟机(VM)上失败。当前没有解决此问题的方法。

Jira:RHEL-10019[1]

如果每个 CPU 使用超过 128 个核,则 Windows Server 2019 虚拟机在引导时会崩溃

当使用 Windows Server 2019 客户机操作系统的虚拟机在被配置为单个虚拟 CPU (vCPU)使用超过 128 个核时,其目前无法引导。虚拟机会在蓝屏上显示一个停止错误,而不是引导。

临时解决方案:每个 vCPU 使用少于 128 个内核。

Jira:RHELDOCS-18863[1]

带有 VBS 和 IOMMU 设备的 Windows 虚拟机无法引导

当您引导启用了基于虚拟化安全性(VBS)的 Windows 虚拟机时,使用 qemu-kvm 工具的输入输出内存管理单元(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>
Copy to Clipboard Toggle word wrap

否则,Windows 虚拟机无法引导。

Jira:RHEL-45585[1]

--migrate-disks-detect-zeroes 选项可能无法用于虚拟机迁移

目前,当在 RHEL 9 上迁移虚拟机时,--migrate-disks-detect-zeroes 选项可能无法正常工作,且迁移可能在没有指定磁盘上的零块检测。这个问题是由 QEMU 中存在一个错误造成的,其中镜像作业依赖于发音漏洞,这会导致稀疏目标文件。

Jira:RHEL-82906

具有大量可引导数据磁盘的虚拟机可能无法启动

如果您试图启动具有大量可引导数据磁盘的虚拟机(VM),则虚拟机可能无法引导并显示以下错误:有些问题: import_mok_state ()失败: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>
Copy to Clipboard Toggle word wrap

仅为系统磁盘设置引导顺序。

Jira:RHEL-68418

没有配置 discard_granularity 时,发送丢弃 I/O 请求的虚拟机可能会暂停

主机内核无法对齐丢弃 I/O 请求,QEMU 使用 werror= policy 参数响应此类故障。当 werror 设置为 stop:werror=stop 时,失败的丢弃请求会导致虚拟机(VM)暂停。这通常不可取,因为无法纠正这种情况并再次恢复虚拟机。

临时解决方案:确保设置 virtio-blkvirtio-scsi 磁盘上的 discard_granularity 参数,并匹配主机的 /sys/block/ <blkdev&gt; /queue/discard_granularity 值。这使得虚拟机了解对齐限制并确保丢弃请求正确对齐,因此它们不会失败。

Jira:RHEL-86032[1]

如果使用大量 vCPU 分配,Windows 2025 虚拟机会减慢

当分配有 32 个或更多 vCPU 时,Windows Server 2025 虚拟机(VM)在 Red Hat Enterprise Linux 主机上会减慢速度。因此,当虚拟机配置了大量 vCPU 时,Windows 虚拟机可能会在引导期间引导或卡住。

临时解决方案:您可以自行使用临时解决方案。使用少量 vCPU 引导虚拟机,以便在 Windows 服务器上禁用 plaformclock。在具有管理员特权的 shell 提示符中,运行:

bcdedit /set useplatformclock no
Copy to Clipboard Toggle word wrap

然后,关闭虚拟机并使用所需的大量 vCPU 重新配置它。另外,请确保在再次启动大型虚拟机前启用 hv-time 选项。

Jira:RHEL-62742[1]

virtiofs 共享目录中的打开文件太多可能会使 vrtiofsd 进程崩溃

当从虚拟机(VM)访问带有大量打开文件的 virtiofs 共享目录时,操作可能会失败,并显示以下错误: Too many open filesvirtiofsd 进程可能会崩溃。

临时解决方案:尝试以下任一步骤:

  • 以 root 用户身份运行 virtiofsd 并使用 -inode-file-handles=mandatory 命令行选项。
  • 使用 --cache=never 命令行选项。
  • 增加 virtiofsd 的文件描述符数量,可以和-- rlimit-nofile 命令行选项一起使用。

Jira:RHEL-87161[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 启动类型的 Sapphire Rapids CPU 上运行的 Windows 虚拟机在重启时无法引导

如果您在 Sapphire Rapids CPU 上运行的 Windows 虚拟机(VM)中将 hypervisor 启动类型设置为 auto,则虚拟机重启后可能无法引导。例如,您可以使用 bcdedit /set hypervisorlaunchtype Auto 命令将 hypervisor 启动类型设置为 auto

临时解决方案:不要在 Windows 虚拟机中将 hypervisor 启动类型设置为 auto

Jira:RHEL-67699

使用 VBS 为 Windows 客户机热插拔 vCPU 和内存无法正常工作

目前,基于 Windows Virtualization 的安全(VBS)与热插 CPU 和内存资源不兼容。因此,尝试将内存或 vCPU 附加到启用了 VBS 的运行的 Windows 虚拟机(VM)中,仅在客户机系统重启后将资源添加到虚拟机。 

Jira:RHEL-66229, Jira:RHELDOCS-19066

在 IBM Z 上迁移虚拟机有时会删除网络配置

目前,在 IBM Z 主机间迁移虚拟机(VM)后,虚拟机的网络配置在某些情况下是重置,这会导致网络在虚拟机上不可用。要临时解决这个问题,请在启动虚拟机迁移前禁用 vhost-net 服务。

Jira:RHEL-43214[1]

8.18. 云环境中的 RHEL

在 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
      Copy to Clipboard Toggle word wrap
    2. 构建 initramfs

      # dracut -f /boot/initramfs-<kernelVersion>.img  <kernelVersion>
      Copy to Clipboard Toggle word wrap
  3. 重启虚拟机以验证引导是否成功。

Jira:RHELPLAN-114103[1]

在 ESXi 上自定义 RHEL 9 客户机有时会导致网络问题

目前,在 VMware ESXi hypervisor 中自定义 RHEL 9 客户机操作系统无法正常工作。因此,如果客户机使用这样的密钥文件,它有不正确的网络设置,如 IP 地址或网关。

临时解决方案:请参阅 VMware 知识库

Jira:RHELPLAN-106947[1]

如果 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.
Copy to Clipboard Toggle word wrap

这个问题主要影响大型虚拟机,因为它们在引导序列中花费了大量时间。

临时解决方案:编辑机器上的 /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
Copy to Clipboard Toggle word wrap

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]

使用 KVM 虚拟化的嵌套虚拟机,在使用 AMD EPYC 处理器时无法在 Azure 或 Hyper-V 上引导

当使用 AMD EPYC 处理器在 Azure 云或 Hyper-V 中启用 KVM 虚拟化的 RHEL 虚拟机上运行时,带有 Open Virtual Machine Firmware (OVMF)的嵌套虚拟机无法引导。虚拟机无法引导,并显示以下日志消息:

Code=qemu-kvm: ../hw/core/cpu-sysemu.c:76  Aborted (core dumped) .
Copy to Clipboard Toggle word wrap

临时解决方案:在不使用 AMD EPYC 处理器的情况下尝试引导。

Jira:RHEL-29919[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.
Copy to Clipboard Toggle word wrap

尝试向 -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]

8.19. 支持性

在 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
Copy to Clipboard Toggle word wrap
  • 对于永久性更改,请编辑 /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
Copy to Clipboard Toggle word wrap

示例值设为 1800。特定的超时值高度依赖于特定的系统。要适当地设置插件超时,您可以首先通过运行以下命令来估算收集一个没有超时的插件所需的时间:

# time sos report -o processor -k processor.timeout=0 --batch --build
Copy to Clipboard Toggle word wrap

Jira:RHELPLAN-51452[1]

8.20. 容器

在较旧的容器镜像中运行 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.
Copy to Clipboard Toggle word wrap

临时解决方案 :使用以下命令:

# 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
Copy to Clipboard Toggle word wrap

Jira:RHELPLAN-96940[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'
Copy to Clipboard Toggle word wrap
  • 包括一个自定义逻辑,以为辅助文件(例如 /var/lib/containers)系统使用额外的空间。
注意

默认情况下,物理根存储挂载在 /sysroot 分区。

Jira:RHEL-33208

Azure 上标记为 LVM 的 RHEL 镜像需要默认布局调整大小

当使用 system-reinstall-bootcbootc 在 Azure 上安装时,标记为 LVM 的 RHEL 镜像需要调整默认布局的大小。

临时解决方案:使用标记为 RAW 的 RHEL 镜像。这不需要调整默认布局的大小。

Jira:RHELDOCS-19945[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
Copy to Clipboard Toggle word wrap

临时解决方案:在禁用 FIPS 模式的情况下构建 bootc 镜像。

Jira:RHELDOCS-19539

磁盘空间不足可能会导致部署失败

在软件包模式系统中部署 bootc 容器镜像时没有足够可用磁盘空间可能会导致安装错误,并阻止系统引导。确保有足够的磁盘空间供镜像安装并在部署前调整置备逻辑卷。

Jira:RHELDOCS-19948[1]

8.21. Lightspeed

配置文件更改不会立即应用

etc/xdg/command-line-assistant/config.toml 配置文件中进行更改时,命令行助手守护进程需要大约 30 秒时间来识别更改,而不是立即应用更改。命令行助手也缺少重新加载功能。

要解决这个问题,请按照以下步骤执行:

  1. 进行需要对 config.toml 配置文件的更改。
  2. 运行以下命令:
$ sudo systemctl restart clad
Copy to Clipboard Toggle word wrap

Jira:RHELDOCS-20021[1]

配置文件更改不会立即应用

etc/xdg/command-line-assistant/config.toml 配置文件中进行更改时,命令行助手守护进程需要大约 30 秒时间来识别更改,而不是立即应用更改。命令行助手也缺少 重新加载 功能。

临时解决方案:遵循以下步骤:

  1. 进行需要对 config.toml 配置文件的更改。
  2. 运行以下命令:
# systemctl restart clad
Copy to Clipboard Toggle word wrap

Jira:RHELDOCS-19734[1]

第 9 章 可用的 BPF 功能

本章提供了此 Red Hat Enterprise Linux 9 版本中提供的 Berkeley Packet Filter (BPF)功能的完整列表。表包括以下列表:

本章包含 bpftool feature 命令自动生成的输出。

Expand
表 9.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

可用

大型程序大小限制

可用

绑定的循环支持

可用

ISA 扩展 v2

可用

ISA 扩展 v3

可用

Expand
表 9.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
表 9.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-67195,JIRA:RHEL-5151,JIRA:RHEL-78650,JIRA:RHEL-62875,JIRA:RHEL-71218,JIRA:RHEL-76019,JIRA:RHEL-67020,JIRA:RHEL-70252,JIRA:RHEL-64438,JIRA:RHEL-67005,JIRA:RHEL-67005 JIRA:RHEL-60 135, JIRA:RHEL-74 158, JIRA:RHEL-74 168, JIRA:RHEL-783 44, JIRA:RHEL-787 22, JIRA:RHEL-61 341, JIRA:RHEL-6566 2, JIRA:RHEL-6 7004, JIRA:RHEL-6 5776, JIRA:RHEL-67008

NetworkManager

JIRA:RHEL-24055,JIRA:RHEL-45878,JIRA:RHEL-32685,JIRA:RHEL-21160,JIRA:RHEL-14370,JIRA:RHEL-69899,JIRA:RHEL-24337,JIRA:RHEL-5852,JIRA:RHEL-24622,JIRA:RHELPLAN-58745,JIRA:RHEL-17619

NetworkManager-libreswan

Jira:RHEL-58040

Release Notes

JIRA:RHELDOCS- 19863,JIRA:RHELDOCS-16760,JIRA:RHELDOCS-19839,JIRA:RHELDOCS-20163,JIRA:RHELDOCS-20170,JIRA:RHELDOCS-18935,JIRA:RHELDOCS-16861,JIRA:RHELDOCS-17520,JIRA:RHELDOCS-178 03, JIRA:RHELDOCS-19 072, JIRA:RHELDOCS-196 35, JIRA:RHELDOCS-20 472, JIRA:RHELDOCS-1975 4, JIRA:RHELDOCS-19 889, JIRA:RHELDOCS-2014 6, JIRA:RHELDOCS-18 158, JIRA:RHELDOCS -17532, 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:RHELD OCS-19133 , JIRA:RHELD OCS-19171 , JIRA:RHELD OCS-19147 , Jira:RHELD OCS-19139 , Jira:RHEL DOCS-19135 , JIRA:RHELD OCS-19137 , JIRA:RHELD OCS-19154, JIRA:RHELD OCS-19143, JIRA:RHEL DOCS-19151 , JIRA:RHEL DOCS-19115 , JIRA:RHEL DOCS-18531 , JIRA: RHELDOCS-20135 , JIRA: RHELDOCS-16756 , JIRA:RHEL DOCS-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-16979, Jira:RHELDOCS-19846 ,JIRA:RHELDOCS-20471

anaconda

JIRA:RHEL-61430,JIRA:RHEL-10216,JIRA:RHEL-2250,JIRA:RHEL-17205,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-138 37, JIRA:RHEL-66155

ansible-collection-microsoft-sql

Jira:RHEL-68374, Jira:RHEL-67807, Jira:RHEL-69311

ansible-freeipa

Jira:RHEL-67566

audit

Jira:RHEL-59570

bacula

Jira:RHEL-6856

bind

Jira:RHELPLAN-90604

binutils

Jira:RHEL-59802, Jira:RHEL-59801, Jira:RHEL-50068

boost

JIRA:RHEL-67177,JIRA:RHEL-67973

bootc-image-builder-container

Jira:RHEL-34807

ca-certificates

Jira:RHEL-54695

clevis

Jira:RHEL-60257

cockpit-machines

Jira:RHEL-31993

container-tools

Jira:RHEL-68240, Jira:RHEL-66763, Jira:RHEL-69742, Jira:RHEL-67859

createrepo_c

Jira:RHELPLAN-112860

crypto-policies

Jira:RHEL-76524, Jira:RHEL-76528, Jira:RHEL-2735

cups

Jira:RHEL-68414

cyrus-sasl

Jira:RHELPLAN-94096

device-mapper-multipath

JIRA:RHEL-58920,JIRA:RHEL-73413,JIRA:RHELPLAN-105944,JIRA:RHELPLAN-99108,JIRA:RHELPLAN-66975

distribution

Jira:RHEL-59005,JIRA:RHEL-6973,JIRA:RHEL-18157,JIRA:RHEL-68141,JIRA:RHEL-22385

dnf

Jira:RHEL-70917, Jira:RHEL-49670, Jira:RHEL-61882, Jira:RHELPLAN-118420

dnf-plugins-core

Jira:RHEL-14900, Jira:RHEL-40914

edk2

Jira:RHEL-58631, Jira:RHELPLAN-69533, Jira:RHEL-68418

elfutils

Jira:RHEL-64067

fapolicyd

JIRA:RHELPLAN-112355,JIRA:RHEL-24345,JIRA:RHEL-520

firewalld

Jira:RHEL-17708

gimp

Jira:RHELPLAN-109991

glibc

JIRA:RHEL-67692,JIRA:RHEL-24740,JIRA:RHEL-1915,JIRA:RHEL-50662,Jira:RHEL-65358,JIRA:RHEL-56032,JIRA:RHEL-2419

gnome-control-center

Jira:RHEL-68152

gnupg2

Jira:RHELPLAN-117566

gnutls

Jira:RHELPLAN-128129

golang

Jira:RHEL-62392, Jira:RHELPLAN-129104, Jira:RHELPLAN-123778

greenboot

Jira:RHEL-80003

gtk3

Jira:RHEL-11924

initscripts

Jira:RHEL-79783

ipa

JIRA:RHEL-45330,JIRA:RHEL-48104,JIRA:RHEL-4915,JIRA:RHEL-67913,JIRA:RHELPLAN-121751,JIRA:RHELPLAN-113281,JIRA:RHEL-12154,JIRA:RHEL-4955

iproute

Jira:RHEL-62931

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 / BPF

Jira:RHEL-63880

kernel / Core

Jira:RHEL-25967

内核/核心/控制组

Jira:RHEL-36267

kernel / Crypto

Jira:RHEL-20145

kernel/ Debugging-Tracing / kexec - kdump

JIRA:RHEL-58641,JIRA:RHEL-66119

kernel/ Debugging-Tracing / rtla

Jira:RHEL-69522

kernel / File Systems

Jira:RHEL-33888

kernel / File Systems / CIFS

Jira:RHEL-76046

内核/文件系统/NFS

Jira:RHEL-59704

kernel / Networking

JIRA:RHEL-68063, JIRA:RHEL-61203,JIRA:RHEL-59091,JIRA:RHEL-88552,JIRA:RHEL-88551,JIRA:RHEL-76845

kernel / Networking / Bonding

Jira:RHEL-50630

kernel / Networking / IPSec

Jira:RHEL-30141, Jira:RHEL-1015

kernel / Networking / NIC Drivers

Jira:RHEL-57827, Jira:RHEL-54223, Jira:RHEL-9897, Jira:RHEL-36283

kernel / Platform Enablement / NVMe

Jira:RHEL-9301, Jira:RHEL-8171, Jira:RHEL-8164

kernel / Platform Enablement / ppc64

Jira:RHEL-15404, Jira:RHEL-28702

内核/安全性

Jira:RHEL-8810

内核/安全/ TPM

Jira:RHEL-52747

kernel / Storage / Multiple Devices (MD)

Jira:RHEL-46615, Jira:RHEL-30730

kernel / Storage / Storage Drivers

Jira:RHEL-56135, Jira:RHEL-8466, Jira:RHEL-8104, Jira:RHEL-25730

kernel / Virtualization

Jira:RHEL-1138

内核/虚拟化/Hyper-V

JIRA:RHEL-29919,JIRA:RHEL-70228

kernel / Virtualization / KVM

JIRA:RHEL-50754, JIRA:RHEL-26152,JIRA:RHEL-7212,JIRA:RHEL-10019,JIRA:RHEL-17331,JIRA:RHEL-45585,JIRA:RHEL-32892,JIRA:RHEL-38957

内核/虚拟化/公共云启用

Jira:RHEL-70465, Jira:RHEL-81748

kernel-rt

Jira:RHELPLAN-153123

kernel-rt/Other

Jira:RHEL-9318

kexec-tools

JIRA:RHEL-32060,JIRA:RHELPLAN-129876,JIRA:RHEL-11471,JIRA:RHELPLAN-115732

keylime

Jira:RHEL-75797, Jira:RHEL-78313, Jira:RHEL-11867, Jira:RHEL-1518

kmod

Jira:RHELPLAN-126922

kmod-kvdo

Jira:RHEL-8354

kpatch

Jira:RHEL-77113

krb5

Jira:RHEL-4902, Jira:RHELPLAN-114497, Jira:RHEL-4875, Jira:RHEL-4888

libabigail

Jira:RHEL-64069, Jira:RHEL-16629

libdnf

Jira:RHELPLAN-128381

libotr

Jira:RHELPLAN-122108

libva

Jira:RHEL-59629

libvirt

JIRA:RHEL-28819,JIRA:RHELPLAN-139536,JIRA:RHELPLAN-119912

libvirt / General

Jira:RHEL-7043

libxcrypt

Jira:RHELPLAN-106338

lldpad

Jira:RHEL-61874

llvm

Jira:RHEL-57460, Jira:RHEL-68696, Jira:RHEL-70328

logrotate

Jira:RHEL-5711

lvm2

Jira:RHELPLAN-107107

maven

JIRA:RHEL-62175,JIRA:RHEL-73128

mysql

Jira:RHEL-68305,JIRA:RHELPLAN-92864

nettle

Jira:RHEL-52740

nfs-utils

Jira:RHELPLAN-120807

nginx

Jira:RHEL-73508

nmstate

Jira:RHEL-43438

nodejs

Jira:RHEL-35990

nss

Jira:RHEL-58260

nvme-stas

Jira:RHELPLAN-58357

open-vm-tools

Jira:RHELPLAN-106947

opencryptoki

Jira:RHEL-50064

openldap

Jira:RHEL-71053,JIRA:RHEL-78297,JIRA:RHEL-56502

opensc

Jira:RHEL-53115

openscap

JIRA:RHEL-88413,JIRA:RHELPLAN-145263

openslp

Jira:RHEL-6995

openssh

Jira:RHEL-33809,JIRA:RHELPLAN-113842,JIRA:RHEL-45727

openssl

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

p11-kit

Jira:RHEL-58899

pacemaker

Jira:RHEL-34276, Jira:RHEL-55458

pause-container

Jira:RHELPLAN-127619

pcp

Jira:RHEL-58953, Jira:RHEL-59366, Jira:RHEL-30590

pcs

JIRA:RHEL-61901, JIRA:RHEL-46284,JIRA:RHEL-16232,JIRA:RHEL-69040,JIRA:RHEL-46293,JIRA:RHEL-55441,JIRA:RHEL-61738,JIRA:RHEL-34781

pcsc-lite

Jira:RHEL-34856

perl-DBD-MySQL

Jira:RHEL-77083

php

JIRA:RHEL-73907,JIRA:RHEL-21448

pki-core

Jira:RHELPLAN-121754

podman

JIRA:RHEL-60561,JIRA:RHEL-32267,JIRA:RHEL-70217,JIRA:RHELPLAN-117005

powerpc-utils

JIRA:RHEL-61089,JIRA:RHEL-30880

python-blivet

Jira:RHEL-82430

python3.11-lxml

Jira:RHELPLAN-143480

qemu-kvm

JIRA:RHEL-68440,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-86032,JIRA:RHEL-62742,JIRA:RHEL-67699,JIRA:RHEL22929,JIRA:

qemu-kvm / Devices

Jira:RHEL-1220

qemu-kvm / Devices / CPU Models

JIRA:RHEL-15731,JIRA:RHEL-17614

qemu-kvm / Devices / Machine type

Jira:RHEL-11043

qemu-kvm / Graphics

Jira:RHEL-7135

qemu-kvm/Live Migration

JIRA:RHEL-64307,JIRA:RHEL-33795,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

realtime-tests

Jira:RHEL-65487

resource-agents

Jira:RHEL-32265

restore

Jira:RHELPLAN-94704

rhel-bootc-container

Jira:RHEL-33208

rhel-system-roles

JIRA:RHEL-73408,JIRA:RHEL-69983,JIRA:RHEL-67244,JIRA:RHEL-61596,JIRA:RHEL-27760,JIRA:RHEL-70483,JIRA:RHEL-36014,JIRA:RHEL-61599 , JIRA:RHEL- 63026,JIRA:RHEL-63026,JIRA:RHEL-6574 8, JIRA:RHEL-61 947, JIRA:RHEL-7340 9, JIRA:RHEL-7340 6, JIRA:RHEL-7340 2, JIRA:RHEL-657 58, JIRA:RHEL-13 333, JIRA:RHEL-623 95, JIRA:RHEL-7340 4, JIRA:RHEL-61085, JIRA:RHEL-610 85, JIRA:RHEL- 73244, JIRA:RHEL- 82160, JIRA:RHELPLAN- 95747, JIRA:RHELPLAN- 133165, JIRA:RHEL-1172

rpm

Jira:RHEL-6294

rsyslog

Jira:RHEL-65177

rteval

Jira:RHEL-9909,JIRA:RHEL-67423

rust

Jira:RHEL-61964

scap-security-guide

JIRA:RHEL-74240, JIRA:RHEL-1800,JIRA:RHELPLAN-107318

seabios

Jira:RHEL-7110

selinux-policy

JIRA:RHEL-54996,JIRA:RHEL-17346,JIRA:RHEL-52476,JIRA:RHEL-11792,JIRA:RHELPLAN-115609,JIRA:RHEL-28814

scs

JIRA:RHEL-24523, JIRA:RHEL-30893,JIRA:RHEL-35945,JIRA:RHEL-22389,JIRA:RHEL-67712,JIRA:RHELPLAN-51452

sssd

Jira:RHELPLAN-44204

stunnel

Jira:RHEL-52317

subscription-manager

JIRA:RHEL-29178,JIRA:RHELPLAN-146101,JIRA:RHELPLAN-137234

subscription-manager-cockpit

Jira:RHEL-56159

sysstat

Jira:RHEL-12009, Jira:RHEL-26275

systemd

JIRA:RHELPLAN-100926,JIRA:RHEL-6105

systemtap

Jira:RHEL-64066

tigervnc

Jira:RHELPLAN-114314

traceroute

Jira:RHEL-59444

trustee-guest-components

Jira:RHEL-68141

tuned

JIRA:RHELPLAN-129881,JIRA:RHEL-79914

unbound

Jira:RHELPLAN-117492

valgrind

Jira:RHEL-64070

vdo

Jira:RHEL-30525

virt-manager / Common

Jira:RHEL-62959

virt-v2v

Jira:RHELPLAN-147926

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-29027,JIRA:RHEL-87161

webkit2gtk3

Jira:RHEL-4157

wpa_supplicant

Jira:RHEL-58725

xdp-tools

Jira:RHEL-73054, Jira:RHEL-3382

其他

JIRA:RHELDOCS- 19863,JIRA:RHELDOCS-19936,JIRA:RHELDOCS-20057,JIRA:RHELDOCS-18451,JIRA:RHELDOCS-20116,JIRA:RHELDOCS-19610,JIRA:RHELDOCS-19876,JIRA:RHELDOCS-19832,JIRA:RHELDOCS-20 019, JIRA:RHELDOCS-2002 4, JIRA:RHELDOCS-195 16, JIRA:RHELDOCS-198 25, JIRA:RHELDOCS-19 584, JIRA:RHELDOCS-192 10, JIRA:RHELDOCS-192 91, JIRA:RHELDOCS- 20170,JIRA:RHELDOCS-17040 , JIRA :RHEL-88550, JIRA:RHELDOCS- 20059, JIRA:RHELPLAN-27394 ,JIRA:RHELPLAN-27737 , JIRA:RHELDOCS- 18935, JIRA:RHELDOCS -17465, JIRA:RHELDOCS-1 6861, JIRA:RHELDOCS-17520, JIRA:RHEL D OCS-17752 , JIRA:RHELDOCS -17803 , JIRA:RHELDOCS-17468 , JIRA:RHEL D OCS-17733 , JIRA:RHELDOCS -18408 , JIRA:RHELDOCS -19664 , JIRA:RHELDOCS -19635 , JIRA:RHELDOCS -19754 , JIRA:RHELD OCS-19455 ,JIRA:RHEL-91106, JIRA:RHELD OCS-19815 , JIRA:RHELD OCS-19716 , Jira:RHELD OCS-19809 , JIRA:RHELDOCS-19810 , JIRA: RHELDOCS-19523 , JIRA: RHELDOCS-19716 , JIRA:RHELDOCS-20283 , JIRA:RHELDOCS-20464 , JIRA:RHELDOCS-20519 , 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-1 8803, 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- 19115 , JIRA:RHELPLAN-67314 , JIRA :RHELPLAN-110763, JIRA:RHELPLAN -69554 , JIRA:RHELPLAN-113995 , JIRA:RHEL DOCS-20135 , JIRA: RHELPLAN-122745 , JIRA:RHELPLAN-99136 , JIRA:RHELPLAN-103232 , JIRA:RHELPLAN -60153 , JIRA: RHELPLAN-88246 , JIRA:RHELPLAN-100087 , JIRA:RHELPLAN-100639 , JIRA: RHELPLAN-113659 , JIRA:RHELPLAN-98983 , JIRA:RHELPLAN-131882 , JIRA:RHELPLAN-139805,JIRA:RHELD OCS-16756 , JIRA:RHELPLAN-153 267, JIRA:RHELDOCS-1 6300, JIRA:RHELDOCS-16432,JIRA:RHELDOCS-16393,JIRA:RHELDOCS-1661 2, JIRA:RHELDOCS-17102,JIRA:RHELDOCS-170 15, JIRA:RHELDOCS -18049, JIRA:RHELDOCS -17135, JIRA:RHELDOCS -17545, JIRA:RHELDOCS -17038, JIRA:RHELDOCS -17495, JIRA:RHELDOCS-17 518, JIRA:RHELDOCS-1746 2, JIRA:RHELDOCS-1 8106, JIRA:RHELDOCS -17782, JIRA:RHELDOCS -19193 , JIRA: RHELDOCS-20021 , JIRA:RHELPLAN-157225 , JIRA:RHELPLAN-10061, JIRA:RHELPLAN-110191,JIRA:RHELPLAN-96940,JIRA:RHELPLAN-117234,JIRA:RHELPLAN-119001 , JIRA:RHELPLAN-119852 , JIRA:RHELPLAN-119655, JIRA:RHELPLAN-112043,JIRA:RHELPLAN-1212 05, JIRA:RHELPLAN-121049, JIRA:RHELPLAN-109613 , JIRA:RHELPLAN -145001 , JIRA:RHELDOCS -19603 , JIRA:RHELD OCS-18064 , JIRA: RHELDOCS-16427 , JIRA:RHELPLAN-150080 , JIRA:RHELPLAN-154195 , JIRA: RHELPLAN-83423 , JIRA:RHELD OCS-17719 , JIRA:RHEL DOCS-19945 , JIRA: RHELDOCS-18720 , JIRA: RHELDOCS-18435 , JIRA:RHELDOCS-18863, JIRA:RHELD OCS-19728, , Jira:RHEL DOCS-19539 , JIRA:RHEL DOCS-19734 , JIRA:RHELDOCS-19948 , JIRA:RHELDOCS-19496

附录 B. 修订历史

0.0-7

2025 年 11 月 20 日星期四,Valentina Ashirova (vaashiro@redhat.com)

  • 移动一个已知问题 RHELPLAN-118420 (安装程序和镜像创建)
  • 更新了程序错误修复 RHEL-59444 (Shells 和命令行工具)
  • 删除了已知问题 RHELDOCS-17720 (Red Hat Enterprise Linux 系统角色)
0.0-6

2025 年 10 月 30 日星期四,Valentina Ashirova (vaashiro@redhat.com)

  • 更新了 Overview - 安装程序和镜像创建部分
0.0-5

2025 年 10 月 9 日星期四,Gabriela Fialová(gfialova@redhat.com)

0.0-4

Wed 03 Sept 2025, Gabriela Fialová(gfialova@redhat.com)

0.0-3

Tue 05 Aug 2025, Gabriela Fialová(gfialova@redhat.com)

0.0-2

Wed 30 Jul 2025, Gabriela Fialová(gfialova@redhat.com)

0.0-1

Tue 15 Jul 2025, Gabriela Fialová(gfialova@redhat.com)

  • 更新了客户门户网站 Labs 部分。
  • 添加了一个 Rebase RHEL-101074 (编译器和开发工具)
0.0-0

2025 年 5 月 20 日星期二,Gabriela Fialová(gfialova@redhat.com)

  • 发布 Red Hat Enterprise Linux 9.6 发行注记。

法律通告

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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部