9.5 发行注记
Red Hat Enterprise Linux 9.5 发行注记
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 在顶部导航栏中点 Create
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 概述 复制链接链接已复制到粘贴板!
1.1. RHEL 9.5 中的主要变化 复制链接链接已复制到粘贴板!
安全性
使用新的 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。
如需更多信息,请参阅 新功能 - 安全性。
动态编程语言、网页和数据库服务器
以下应用程序流的后续版本现在可用:
- Apache HTTP Server 2.4.62
- Node.js 22
如需更多信息,请参阅 新功能 - 动态编程语言、Web 和数据库服务器。
编译器和开发工具
更新了系统工具链
以下系统工具链组件已更新:
- GCC 11.5
- Annobin 12.70
更新了性能工具和调试器
以下性能工具和调试器已更新:
- GDB 14.2
- Valgrind 3.23.0
- SystemTap 5.1
- elfutils 0.191
- libabigail 2.5
更新了性能监控工具
以下性能监控工具已更新:
- PCP 6.2.2
- Grafana 10.2.6
更新了编译器工具集
以下编译器工具集已更新:
- GCC Toolset 14(新)
- LLVM Toolset 18.1.8
- Rust Toolset 1.79.0
- Go Toolset 1.22
如需更多信息,请参阅 新功能 - 编译和开发工具。
Web 控制台
使用 cockpit-files 软件包提供的新 文件浏览器,您可以在 RHEL web 控制台中管理文件和目录。
如需更多信息,请参阅 新功能 - Web 控制台。
云环境中的 RHEL
现在,您可以使用 OpenTelemetry 框架从 RHEL 云实例收集遥测数据,如日志、指标和跟踪,并将数据发送到外部分析服务,如 AWS CloudWatch。
如需更多信息,请参阅 新功能 - 云环境中的 RHEL。
1.2. 原位升级 复制链接链接已复制到粘贴板!
从 RHEL 8 原位升级到 RHEL 9
目前支持的原位升级路径包括:
在以下构架上,从 RHEL 8.10 升级到 RHEL 9.5:
- 64 位 Intel 和 AMD
- IBM POWER 9 (little endian)及更新版本
- IBM Z 架构,不包括 z13
在以下构架上,从 RHEL 8.8 升级到 RHEL 9.2,从 RHEL 8.10 升级到 RHEL 9.4:
- 64 位 Intel、AMD 和 ARM
- IBM POWER 9 (little endian)及更新版本
- IBM Z 架构,不包括 z13
- 在带有 SAP HANA 的系统上,从 RHEL 8.6 升级到 RHEL 9.0 和从 RHEL 8.8 升级到 RHEL 9.2
如需更多信息,请参阅支持的 Red Hat Enterprise Linux 原位升级路径。
有关执行原位升级的步骤,请参阅从 RHEL 8 升级到 RHEL 9。
如果您要升级到带有 SAP HANA 的 RHEL 9.2,请确保系统在升级前已进行了 SAP 认证。有关在具有 SAP 环境的系统上执行原位升级的说明,请参阅 如何将 SAP 环境从 RHEL 8 原位升级到 RHEL 9。
主要改进包括:
-
正确关闭已执行的 shell 命令的文件描述符,以防止常见的
Too many open files错误。 - 为带有 Satellite 服务器版本 6.16 的系统引入原位升级。
-
默认以
GA渠道存储库为目标,除非使用--channelleapp 选项指定了不同的渠道。 - 在升级过程中更新默认的内核命令行,以便以后安装的内核自动包含期望的参数。
从 RHEL 7 原位升级到 RHEL 9
无法执行从 RHEL 7 直接升级到 RHEL 9 的原位升级。但是,您可以执行从 RHEL 7 原位升级到 RHEL 8,然后再执行到 RHEL 9 的第二个原位升级。如需更多信息,请参阅从 RHEL 7 升级到 RHEL 8。
1.3. 红帽客户门户网站 Labs 复制链接链接已复制到粘贴板!
红帽客户门户网站 Labs 是客户门户网站的一个部分中的一组工具,地址为 https://access.redhat.com/labs/。红帽客户门户网站 Labs 中的应用程序可帮助您提高性能、快速解决问题、发现安全问题以及快速部署和配置复杂应用程序。一些最常用的应用程序有:
- Registration Assistant
- Kickstart Generator
- Red Hat Product Certificates
- Red Hat CVE Checker
- Kernel Oops Analyzer
- VNC 配置器
- Red Hat Satellite Upgrade Helper
- JVM Options Configuration Tool
- Load Balancer Configuration Tool
- Ceph Placement Groups (PGs) per Pool Calculator
- Yum Repository Configuration Helper
- 红帽内存不足分析器
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]
第 2 章 构架 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux 9.5 与内核版本 5.14.0-503.11.1 一起分发,它为以下架构提供所需的最低版本(在括号中说明了)的支持:
- AMD 和 Intel 64 位体系架构 (x86-64-v2)
- 64 位 ARM 架构(ARMv8.0-A)
- IBM Power Systems, Little Endian(POWER9)
- 64 位 IBM Z (z14)
请确定为每个构架购买正确的订阅。如需更多信息,请参阅 Red Hat Enterprise Linux 入门 - 附加构架。
第 3 章 RHEL 9 发布的内容 复制链接链接已复制到粘贴板!
3.1. 安装 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux 9 使用 ISO 镜像安装。AMD64、Intel 64 位、64 位 ARM、IBM Power Systems 和 IBM Z 架构有两种类型的 ISO 镜像:
安装 ISO:包含 BaseOS 和 AppStream 软件仓库的完整安装镜像,并允许您在没有附加软件仓库的情况下完成安装。在产品下载页面中,
安装 ISO被称为Binary DVD。注意安装 ISO 镜像的大小为几个 GB,因此可能不适用于光盘介质格式。当使用安装 ISO 镜像时,建议使用 USB 盘或 USB 硬盘驱动器创建可引导安装介质。您还可以使用 Image Builder 工具创建自定义的 RHEL 镜像。有关镜像构建器的更多信息,请参阅编写自定义的 RHEL 系统镜像文档。
- 引导 ISO:用来引导到安装程序的最小引导 ISO 镜像。这个选项需要访问 BaseOS 和 AppStream 软件仓库来安装软件包。软件仓库是安装 ISO 镜像的一部分。您还可以在安装过程中注册红帽 CDN 或 Satellite,以使用来自红帽 CDN 或 Satellite 的最新 BaseOS 和 AppStream 内容。
有关下载 ISO 镜像、创建安装介质和完成 RHEL 安装的说明,请参阅 从安装介质交互式安装 RHEL 文档。有关自动的 Kickstart 安装和其他高级主题,请参阅 自动安装 RHEL 文档。
3.2. 软件仓库 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux 9 由两个主要软件仓库发布:
- BaseOS
- AppStream
两个软件仓库都需要一个基本的 RHEL 安装,所有 RHEL 订阅都包括它们。
BaseOS 存储库中的内容旨在提供底层操作系统功能的核心集合,其为所有安装提供基础。这部分内容采用 RPM 格式,它的支持条款与之前的 RHEL 版本相似。如需更多信息,请参阅覆盖范围详情文档。
AppStream 仓库的内容包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作负载和使用案例。
另外,所有 RHEL 订阅都可以使用 CodeReady Linux Builder 软件仓库。它为开发人员提供了额外的软件包。不支持包括在 CodeReady Linux Builder 存储库中的软件包。
有关 RHEL 9 软件仓库及其提供的软件包的更多信息,请参阅软件包清单。
3.3. 应用程序流 复制链接链接已复制到粘贴板!
用户空间组件的多个版本会以 Application Streams(应用程序流)的形式提供,其更新频率会比核心操作系统软件包的更新频率更快。这为自定义 RHEL 提供了更大的灵活性,而不影响平台或特定部署的基本稳定性。
应用程序流以 RPM 格式提供,可以是一个模块(RPM 格式的一个扩展),软件集合(Software Collections,),或 Flatpaks。
每个 Application Stream 组件都有其特定的生命周期,可能和 RHEL 9 的生命周期相同或更短。有关 RHEL 生命周期信息,请查看 Red Hat Enterprise Linux 生命周期。
RHEL 9 改进了应用程序流的使用体验,它提供了初始的应用程序流版本,可以使用传统的 dnf install 命令作为 RPM 软件包进行安装。
某些 RPM 格式的初始应用程序流的生命周期比 Red Hat Enterprise Linux 9 要短。
一些额外的 Application Stream 版本将作为模块发布,并在以后的 RHEL 9 次要发行本中带有较短的生命周期。模块是代表逻辑单元的软件包集合: 应用程序、语言堆栈、数据库或一组工具。这些软件包被一同构建、测试并发布。
始终决定要安装哪个版本的应用程序流,并确保首先查看 Red Hat Enterprise Linux 应用程序流生命周期。
需要快速更新的内容(如备用编译器和容器工具)在滚动流中提供,它们不会并行提供备用版本。滚动流可能会打包为 RPM 或模块。
有关 RHEL 9 中可用的 Application Streams 及其应用程序兼容性级别的详情,请查看软件包清单。Red Hat Enterprise Linux 9: Application Compatibility Guide 文档中的解释应用程序兼容性等级。
3.4. 使用 YUM/DNF 的软件包管理 复制链接链接已复制到粘贴板!
在 Red Hat Enterprise Linux 9 中,使用 DNF 确保软件安装 。红帽继续支持使用 yum 术语,以便与以前的 RHEL 主版本保持一致。如果您键入 dnf 而不是 yum,则命令按预期运行,因为它们都是兼容性的别名。
虽然 RHEL 8 和 RHEL 9 基于 DNF,但它们与 RHEL 7 中使用的 YUM 兼容。
如需更多信息,请参阅使用 DNF 工具管理软件。
第 4 章 新功能 复制链接链接已复制到粘贴板!
这部分论述了 Red Hat Enterprise Linux 9.5 中引入的新功能和主要改进。
4.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
最小 RHEL 安装现在只安装 s390utils-core 软件包
在 RHEL 8.4 及之后的版本中,s390utils-base 软件包被分成 s390utils-core 软件包,以及一个辅助 s390utils-base 软件包。因此,将 RHEL 安装设置为 minimal-environment 只安装必要的 s390utils-core 软件包,而不是辅助 s390utils-base 软件包。如果要在最小 RHEL 安装中使用 s390utils-base 软件包,您必须在完成 RHEL 安装后手动安装软件包,或使用 Kickstart 文件显式安装 s390utils-base。
Bugzilla:1932480[1]
4.2. 安全性 复制链接链接已复制到粘贴板!
NSS rebase 到 3.101
NSS 加密工具包软件包已 rebase 到上游版本 3.101,它提供很多 bug 修复和增强。最显著的更改如下:
- 现在支持 DTLS 1.3 协议(RFC 9147)。
- PBMAC1 支持已添加到 PKCS#12 (RFC 9579)。
-
X25519Kyber768Draft00 混合后量子密钥协议有实验性的支持(
draft-tls-westerbaan-xyber768d00)。 -
lib::pkix是 RHEL 10 中的默认验证器。 - 根据系统范围的加密策略(重大修复),具有小于 2048 位密钥的 RSA 证书停止工作。
Jira:RHEL-46840[1]
libreswan 接受 IPv6 SAN 扩展
在以前的版本中,当使用一个包含带有 IPv6 地址的 subjectAltName (SAN)扩展的证书建立基于证书的身份验证时,IPsec 连接失败。有了这个更新,pluto 守护进程已被修改为接受 IPv6 SAN 和 IPv4。因此,IPsec 连接现在被正确建立,使用嵌入在证书中的 IPv6 地址作为 ID。
Jira:RHEL-32720[1]
在 ssh-keygen 中自定义密钥大小
您现在可以通过在 /etc/sysconfig/sshd 环境文件中设置环境变量 SSH_RSA_BITS 和 SSH_ECDSA_BITS 来配置 /usr/libexec/openssh/sshd-keygen 脚本生成的密钥的大小。
Jira:RHEL-26454[1]
在启用 FIPS 模式前,fips-mode-setup 检查打开的 LUKS 卷中 Argon2 KDF 的使用
fips-mode-setup 系统管理命令现在会检测当前打开的 LUKS 卷中所使用的密钥派生功能(KDF),如果它检测到使用 Argon2 KDF ,则会中止。这是因为 Argon2 KDF 不兼容 FIPS,因此防止其使用帮助确保符合 FIPS 。因此,在具有使用 Argon2 作为 KDF 的打开的 LUKS 卷的系统上切换到 FIPS 模式会被阻断,直到这些卷关闭或转换为不同的 KDF。
新的 SELinux 布尔值,以允许 QEMU 客户机代理执行受限命令
在以前的版本中,原本应该通过 QEMU 客户机代理守护进程程序(如 mount )在受限上下文中运行的命令失败,并显示 Access Vector Cache (AVC) denial 。为了能够运行这些命令,guest-agent 必须运行在 virt_qemu_ga_unconfined_t 域中。
因此,这个更新添加了 SELinux 策略布尔值 virt_qemu_ga_run_unconfined,它允许 guest-agent 为以下目录中的可执行文件转换为 virt_qemu_ga_unconfined_t :
-
/etc/qemu-ga/fsfreeze-hook.d/ -
/usr/libexec/qemu-ga/fsfreeze-hook.d/ -
/var/run/qemu-ga/fsfreeze-hook.d/
另外,qemu-ga 守护进程的转换的必要规则已添加到 SELinux 策略布尔值中。
因此,您现在可以通过启用 virt_qemu_ga_run_unconfined 布尔值,通过 QEMU 客户机代理运行受限的命令,而没有 AVC 拒绝。
OpenSSL rebase 到 3.2.2
OpenSSL 软件包已 rebase 到上游版本 3.2.2。此更新提供了各种改进和 bug 修复,最重要的是:
-
带有
-extensions选项的openssl req命令不再在创建证书签名请求(CSR)时错误地处理扩展。在以前的版本中,命令获取、解析并检查配置文件部分的名称是否一致,但名称不用于向已创建的 CSR 文件中添加扩展。有了此修复,扩展被添加到生成的 CSR 中。作为此更改的副作用,如果部分指定了一个与 CSR 中使用的不兼容的扩展,命令可能会失败,并显示错误,如error:11000080:X509 V3 routines:X509V3_EXT_nconf_int:error in extension:crypto/x509/v3_conf.c:48:section=server_cert, name=authorityKeyIdentifier, value=keyid, issuer:always。 -
默认的 X.500 可分辨名称(DN)格式已改为使用 UTF-8 格式。这也会导致删除将 DN 元素类型与其值分开的等号(
=)两边的空格字符。 - 现在支持证书压缩扩展(RFC 8879)。
- QUIC 协议现在可以在客户端作为技术预览使用。
- 支持 Argon2d、Argon2i 和 Argon2id 密钥派生功能(KDF)。
- Brainpool 曲线已添加到 TLS 1.3 协议(RFC 8734)中,但 Brainpool 曲线在所有支持的系统范围加密策略中保持禁用。
crypto-policies 在 Java 中提供算法选择
crypto-policies 软件包已更新,来将其控制权扩展到 Java 中的算法选择。这是由 Java 加密敏捷性配置的演变和需要跟上的 加密策略 而引起的,以便为更一致的系统范围配置提供更好的映射。具体来说,更新有以下变化:
-
DTLS 1.0 现在由
protocol选项控制,默认是禁用的,并可使用protocol@java-tls = DTLS1.0+范围指令重新启用。 -
anon和NULL密码套件现在由cipher@java-tls = NULL控制,并默认禁用。 -
签名算法的列表现在由
sign@java-tls范围指令控制,并与系统范围的默认值保持一致。 -
签名算法列表现在由
sign选项控制,并与系统范围的默认值保持一致。如果需要,您可以重新启用所需的算法,特别是使用 Java 的sign@java-tls = <algorithm1>+ <algorithm2>+范围指令。 - 小于 256 位的椭圆曲线(EC)密钥被无条件地禁用,以与上游指导保持一致。
因此,默认允许加密算法的列表与 Java 一起使用,来更好地匹配系统范围的默认值。有关互操作性的详情,请查看 /etc/crypto-policies/back-ends/java.config 文件,并相应地配置活动的加密策略。
Jira:RHEL-45620[1]
CentOS Stream 10 的 selinux-policy git 存储库现在可以公开访问
现在,CentOS Stream 贡献者可以通过贡献给 fedora-selinux/selinux-policy git 存储库的 c10s 分支来参与 SELinux 策略的开发。
clevis rebase 到版本 20
clevis 软件包已升级到版本 20。最显著的改进和修复包括:
-
通过修复
clevis luks命令、udisks2集成和 Shamir 的 Secret Sharing (SSS)阈值方案中静态分析器工具报告的潜在问题提高了安全性。 -
密码生成现在使用
jose工具,而不是pwmake。这确保在 Clevis 绑定步骤中生成的密码有足够的熵。
ca-certificates 提供 OpenSSL 目录格式的可信 CA root
此更新使用可信 CA root 证书填充 /etc/pki/ca-trust/extracted/pem/directory-hash/ 目录。因此,当 OpenSSL 被配置为从此目录加载证书时,例如,通过将 SSL_CERT_DIR 环境变量设置为 /etc/pki/ca-trust/extracted/pem/directory-hash/,查找和验证速度更快。
Jira:RHEL-21094[1]
nbdkit 服务受 SELinux 限制
nbdkit-selinux 子软件包将新规则添加到 SELinux 策略中,因此 nbdkit 被限制在 SELinux 中。因此,运行 nbdkit 的系统对权限升级攻击更具弹性。
libreswan rebase 到 4.15
libreswan 软件包已 rebase 到上游版本 4.15。与之前发行版中提供的版本 4.9 相比,此版本提供了显著改进。
-
通过
libsystemd删除了对libxz的依赖。 -
在 IKEv1 中,默认的提议已为 Encapsulating Security Payload (ESP)设置为
aes-sha1,为 Authentication Header (AH)设置为sha1。 - IKEv1 拒绝将经过身份验证的加密与关联数据(AEAD)和非空 INTEG 合并的 ESP 提议。
- 当连接没有提议时,IKEv1 拒绝交换。
IKEv1 现在有一个更有限的默认密码套件:
IKE={AES_CBC,3DES_CBC}-{HMAC_SHA2_256,HMAC_SHA2_512HMAC_SHA1}-{MODP2048,MODP1536,DH19,DH31} ESP={AES_CBC,3DES_CBC}-{HMAC_SHA1_96,HMAC_SHA2_512_256,HMAC_SHA2_256_128}-{AES_GCM_16_128,AES_GCM_16_256} AH=HMAC_SHA1_96+HMAC_SHA2_512_256+HMAC_SHA2_256_128IKE={AES_CBC,3DES_CBC}-{HMAC_SHA2_256,HMAC_SHA2_512HMAC_SHA1}-{MODP2048,MODP1536,DH19,DH31} ESP={AES_CBC,3DES_CBC}-{HMAC_SHA1_96,HMAC_SHA2_512_256,HMAC_SHA2_256_128}-{AES_GCM_16_128,AES_GCM_16_256} AH=HMAC_SHA1_96+HMAC_SHA2_512_256+HMAC_SHA2_256_128Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
libcap-ng库的失败不再无法恢复。 -
现在,在
pluto工具中为 AEAD 算法设置了 TFC 填充。
Jira:RHEL-50006[1]
jose rebase 到版本 14
jose 软件包已升级至上游版本 14。jose 是 Javascript 对象签名和加密(JOSE)标准的一种 C 语言实现。最重要的改进和修复包括:
-
改进了对 OpenSSL 中
octJWK 类型的len函数的绑定检查。 -
受保护的 JSON Web 加密(JWE)标头不再包含
zip。 -
jose避免使用高解压缩块来避免潜在的拒绝服务(DoS)攻击。
从 SELinux permissive 模式中删除了四个 RHEL 服务
RHEL 服务的以下 SELinux 域已从 SELinux permissive 模式中删除:
-
afterburn_t -
bootupd_t -
mptcpd_t -
rshim_t
在以前的版本中,最近添加到 RHEL 9 的软件包中的这些服务临时设置为 SELinux permissive 模式,其允许系统的其余部分在 SELinux enforcing 模式时收集有关其它拒绝的信息。现在,这个临时设置已被删除,因此这些服务现在在 SELinux enforcing 模式下运行。
bootupd 服务受 SELinux 限制
bootupd 服务支持更新引导装载程序,因此需要受到限制。这个对 SELinux 策略的更新添加了额外的规则,因此 bootupd 服务在 bootupd_t SELinux 域中运行。
4.3. RHEL for Edge 复制链接链接已复制到粘贴板!
支持对 simplified-installer 和 raw 镜像类型的文件系统自定义
有了此增强,您可以在构建以下镜像类型时在蓝图中添加文件系统自定义:
-
simplified-installer -
edge-raw-image -
edge-ami -
edge-vsphere
有了对 OSTree 系统的一些其它例外,您可以在文件系统的 /root 级别选择任意的目录名称,例如:/local、/mypartition、/$PARTITION。
在逻辑卷中,这些更改在 LVM 分区系统之上进行。支持以下目录:单独逻辑卷上的 /var、/var/log 和 /var/lib/containers。
Jira:RHELDOCS-17515[1]
4.4. Shell 和命令行工具 复制链接链接已复制到粘贴板!
systemd 中的 DefaultLimitCore 选项的默认值已改为 unlimited:unlimited
在以前的版本中,默认值被设置为 0:infinity,这意味着 systemd 启动的所有进程对于核心文件大小都有软限制 0,但实际上禁用核心转储,但单独的进程可以根据需要提高限制。在这个版本中,新默认值 没有限制:unlimited 会删除核心文件大小的任何默认限制。现在,核心转储被默认允许,其大小由 systemd-coredump 组件管理,特别是 /etc/systemd/coredump.conf 中的 MaxUse 和 MaxFileSize 设置。默认情况下,单个内核转储的最大大小设置为 1 GiB。这个更改可以更好地调试意外崩溃。
如果不使用,systemd-coredump 存储的崩溃转储会在 14 天后被删除。
如果不使用,systemd-coredump 存储的崩溃转储会在 14 天后被删除。
openCryptoki rebase 到版本 3.23.0
openCryptoki 软件包更新至版本 3.23.0,其提供了多个 bug 修复和增强。主要变更包括:
-
EP11:添加了对 FIPS-session 模式的支持 - 提供了保护 RSA 计时攻击的各种更新
Jira:RHEL-23673[1]
librtas rebase 到版本 2.0.6
librtas 软件包已更新至版本 2.0.6。有了此更新,您可以使用内核提供的与锁定兼容的 ABI。
Jira:RHEL-10566[1]
4.5. 基础架构服务 复制链接链接已复制到粘贴板!
现在在 RHEL 中支持 BIND 9.18
BIND 9.18 已添加到 RHEL 9.5 中的新 bind9.18 软件包中。主要功能增强包括:
-
在
named守护进程中添加了对 DNS over TLS (DoT)和 DNS over HTTPS (DoH)的支持 - 添加了对通过 TLS 的传入和传出区域传送的支持
- 改进了对 OpenSSL 3.0 接口的支持
- 用于调整 TCP 和 UDP 发送和接收缓冲区的新配置选项
-
对
dig工具的各种改进
Jira:RHEL-14898[1]
Intel-lpmd 软件包现在可用
Intel Low Power Model Daemon 是一个 Linux 守护进程,它优化活跃的空闲电源。它根据配置文件或 CPU 拓扑选择一组最节能的 CPU。根据系统利用率和其他信息,它通过激活节能 CPU 并禁用其余 CPU,将系统置于低功耗模式。通过激活所有 CPU,系统可以从低功耗模式恢复。
它在具有混合架构的 Intel CPU 上支持,如 Performance-cores 和 Efficient-cores,其中包括 Meteor Lake CPU,以及 desktop 和 mobile。
Intel-lpmd 有以下优点:
-
提高了电源效率:
intel-lpmd智能地在 P-cores 和 E-cores 之间分配工作负载。 -
更长的电池生命周期:
intel-lpmd在空闲期间减少了功耗。
默认不会启用守护进程。要确保它在引导时启动,请运行以下命令:启用 intel-lpmd 服务:
sudo systemctl enable intel_lpmd.service
# sudo systemctl enable intel_lpmd.service
启动服务:
sudo systemctl start intel_lpmd.service
# sudo systemctl start intel_lpmd.service
默认情况下,如果需要满足某些产品能源效率策略,您必须启用 intel-lpmd。
Jira:RHELDOCS-18391[1]
4.6. 网络 复制链接链接已复制到粘贴板!
NetworkManager 现在支持 IPsec VPN 的 leftsubnet 参数
有了此更新,NetworkManager 支持 leftsubnet 参数来定义用来在互联网协议安全(IPsec) VPN 中配置子网到子网场景的本地参与者后面的专用子网。
nmstate 现在支持拥塞窗口限制((cwnd)选项
有了此更新,您可以使用 nmstate 工具的 cwnd 选项设置对 TCP 拥塞窗口大小的最大限制。这样,您可以控制以在任何给定时间可以通过网络传输的数据包的数量表示的未确认数据的最大数量。以下示例 YAML 文件设置 cwnd 选项:
NetworkManager-libreswan 插件支持 rightcert 选项
您可以在通过 NetworkManager 配置 Libreswan 连接时使用 rightcert 选项。通过此选项,您可以使用证书对 IPsec (Internet 协议安全)连接的"右"侧参与者进行身份验证。
nmstate 工具现在支持 rightcert 选项
您可以在通过 nmstate 工具配置 Libreswan 连接时使用 rightcert 选项。通过此选项,您可以使用证书对 IPsec (Internet 协议安全)连接的"右"侧参与者进行身份验证。以下示例 YAML 文件设置 rightcert 选项:
nmstate 现在支持 leftsubnet 选项
在使用 leftsubnet 选项通过 nmstate 工具配置 Libreswan 连接时,您可以为 IPsec (Internet 协议安全)连接定义整个子网。这确保不同网络段间的安全通信。以下示例 YAML 文件设置 leftsubnet 选项:
请注意,IPsec 技术需要一个对等配置,包括另一个具有合适 IP 地址和 IPsec 设置的服务器。
NetworkManager 支持连接到使用 IPv6 寻址的 IPsec VPN
在以前的版本中,当使用 NetworkManager-libreswan 插件连接到互联网协议安全(IPsec) VPN 时,NetworkManager 仅支持 IPv4 寻址。有了此更新,您可以连接到使用 IPv6 寻址的 IPsec VPN。
您可以同时使用 firewalld 和 nftables 服务
firewalld 和 nftables systemd 服务可同时使用。在以前的版本中,用户一次只能启用其中一个服务。有了此增强,这些 systemd 服务不再相互冲突。
Jira:RHEL-17002[1]
4.7. 内核 复制链接链接已复制到粘贴板!
RHEL 9.5 中的内核版本
Red Hat Enterprise Linux 9.5 与内核版本 5.14.0-503.11.1 一起分发。
eBPF 工具已 rebase 至 Linux 内核版本 6.8
主要变化和增强包括:
- 支持允许在 BPF 程序中断言条件的异常,这些条件永远不应为 true ,但验证器很难推断。
- 改进了对每个 cpu 对象的处理,如对本地的每个 cpu kptr 的支持,并支持在映射中分配和存储每个 cpu 对象。
-
支持
arm32和s390x的 BPF v4 CPU 指令。 - 几个新的 task、task_vma、css 和 css_task 的开源编码迭代器。
-
新的
kfunc,它获取特定 cgroup v1 层次结构中任务的相关 cgroup。 -
支持 uprobe 多链接的 BPF link_info 和
bpftool集成。 - BPF 验证器中的几个改进和 bug 修复允许更精确的程序验证,并改进了 BPF 程序开发人员体验。
- 验证器得到了改进,其通过组合 tail 调用和 fentry/fexit 程序来防止创建无限循环。
- 在 BPF 验证器逻辑中进行了更改,来在主程序之前惰性地验证全局子程序,而不是无条件地验证,以便可以使用 BPF CO-RE 技术保护它们。
- 添加了将 BPF 计时器固定到当前 CPU 的能力。
-
挂载
bpffs时支持 UID 或 GID 选项。
Jira:RHEL-23644[1]
rteval 现在支持载入的相对 CPU 列表
有了此增强,--loads-cpulist 现在接受相对 CPU 列表作为参数。使用参数 --measurement-cpulist 时,默认测量 CPU 列表的语法是一样的。
Jira:RHEL-25206[1]
对 420xx 设备的支持已添加到 QAT 中
有了此更新,QAT 支持 420xx 设备。它包括支持更新固件加载程序和其他功能的新设备驱动程序。与 4xxx 设备相比,420xx 设备现在有更多的加速引擎、16 个服务引擎和 1 个管理引擎,并支持无线加密算法 ZUC 和 Snow 3G。
Jira:RHEL-17715[1]
挂载 TMPFS 文件系统时引入了 noswap 选项
TMPFS 是一个内存文件系统,主要用于在多个进程之间快速共享信息。从 2.2 版本开始,glibc 期望 tmpfs 文件系统挂载在 dev/shm,以支持 POSIX 共享内存。此挂载点对于 shm_open 和 shm_unlink 子例程正常工作是必需的。当内存短缺时,TMPFS 块可以被交换出去,这对于某些性能关键或隐私关键工作负载造成了问题。
挂载 TMPFS 文件系统时传递新的 noswap 挂载选项,禁用了交换 TMPFS 的该特定挂载点。
Jira:RHEL-31975[1]
内核模块现在更新至版本 6.8
内核模块现在已更新至版本 6.8 ,其包括以下功能:
- 改进了硬件支持:为最新处理器、GPU 和外设扩展了兼容性。
- 安全增强:集成了关键安全补丁和缓解措施,以解决最新的漏洞。
- 性能优化:增强了调度、内存管理和 I/O 性能,以提高工作负载效率。
Jira:RHEL-28063[1]
为实时性能测试引入了 rteval 容器
rteval 容器为准确测量系统延迟提供了工具和方法。有了此功能,用户可以测量其系统的实时性能。它评估 Linux 内核的配置,以获得最佳的实时性能,来根据特定的应用程序需求分析性能。
请注意,RHEL 9.5 版本中没有提供具体的调优指南,并且支持仅限于具有实时订阅的客户。
Jira:RHELDOCS-19122[1]
IBM Power 上现在支持 NVMf-FC kdump
NVMf-FC kdump 现在支持 IBM Power 系统,以运行 kexec-tools。这允许使用 NVMe 存储设备,通过光纤通道网络捕获系统内存转储,以便高速和低延迟访问崩溃转储数据的存储。
Jira:RHEL-11471[1]
4.8. 引导加载程序 复制链接链接已复制到粘贴板!
UEFI 变量文件系统(efivarfs)现在支持分析持久性 EFI 变量空间
有了此更新,您现在可以分析在 UEFI 模式下引导的系统上持久性 EFI 变量存储所使用的空间。使用工具 df 和 du,您可以计算 UEFI 变量所使用的总空间,如 EFI 引导变量和 UEFI 安全引导数据库。
这可防止空间耗尽,并更好地管理与 UEFI 相关的配置,包括安全引导和引导顺序设置。
Jira:RHELDOCS-19280[1]
4.9. 文件系统和存储 复制链接链接已复制到粘贴板!
支持 tmpfs 文件系统配额
在这个版本中,系统管理员可以实施文件系统配额来限制 tmpfs 文件系统上空间或内存用户,从而防止内存耗尽。
Jira:RHEL-7768[1]
支持使用 NVMe/TCP 的 NVMe TP 8006 in-band 身份验证
RHEL 9.2 中引入了用于 NVMe over Fabrics (NVMe-oF)的 NVMe TP 8006 inband 身份验证,它是一个技术预览功能。此功能为 NVMe-oF 提供了 DH-HMAC-CHAP in-band 验证协议,该协议在 NVMe 技术建议 8006 中定义了。详情请查看 nvme-connect (1) 手册页中的 dhchap-secret 和 dhchap-ctrl-secret 选项描述。
cryptsetup rebase 到版本 2.7
cryptsetup 软件包已 rebase 到版本 2.7。它包含对 libcryptsetup 软件包的改进,以支持启用了 kdump 的系统中 Linux Unified Key Setup (LUKS)加密的设备。
Jira:RHEL-32377[1]
Ext4 和 XFS 支持 DAX 功能
以前作为技术预览提供的 Ext4 和 XFS 文件系统的直接访问(dax)功能被完全支持。DAX 可让应用程序将持久内存直接映射到其地址空间中,从而提高了性能。如需更多信息,请参阅 在 NVDIMM 上创建文件系统 DAX 命名空间。
Jira:RHELDOCS-19196[1]
支持 EROFS 文件系统
EROFS 是一个轻量级通用只读文件系统,适用于各种只读用例,如嵌入式设备或容器。它为需要它们的场景提供去重和透明压缩。
如需更多信息,请参阅 erofs 文档。
nvme-cli 和 cryptsetup 现在可用于 NVMe SED 上的 Opal 自动化
NVMe 自助加密驱动器(SED)支持硬件加密技术的 Opal 存储规范,以保护存储在驱动器中的数据。在以前的版本中,对 NVMe SED 的 Opal 支持需要手动交互来管理访问数据的密码。
有了这个更新,您可以使用 nvme-cli 和 cryptsetup 自动化加密管理和驱动器解锁。
运行以下命令,来在 NVMe SSD 上使用 NVMe SED 选项:
- 要发现 SED Opal 锁定功能:
nvme sed discover /dev/nvme0n1
# nvme sed discover /dev/nvme0n1
Locking Features:
Locking Supported: Yes
Locking Feature Enabled: No
Locked: No
- 要初始化用于锁定的 SED Opal 设备:
- 要锁定一个 SED Opal 设备:
- 要解锁一个 SED Opal 设备:
- 要更改 SED Opal 设备密码:
nvme sed password /dev/nvme0n1
# nvme sed password /dev/nvme0n1
Password:
New Password:
Re-enter New Password:
- 要从锁定恢复一个 SED Opal 设备:
- 要重置 SED Opal 设备,以禁用具有破坏性恢复的锁定:
注意:使用没有 -e 参数的 nvme sed revert ,以避免删除 NVMe 磁盘上的数据。
设备可以是 NVMe 字符设备(如 /dev/nvme0)、NVMe 块设备(如 /dev/nvme0n1),或格式为 mctp:<net>,<eid>[:ctrl-id] 的 mctp 地址。
在 RHEL 10 上通过 nvme-cli 使用 NVMe OPAL 设备的命令示例:
- 初始化、锁定和解锁 NVMe 磁盘,并验证解锁后磁盘上的数据是否保持不变:
4.10. 高可用性和集群 复制链接链接已复制到粘贴板!
新的 pcs status wait 命令
pcs 命令行界面现在提供 pcs status wait 命令。此命令可确保 Pacemaker 完成对 Cluster Information Base (CIB)的更改所需的任何操作,且不需要采取任何进一步的操作,以使实际集群状态与请求的集群状态匹配。
pcs 支持查询集群中资源状态的新命令
pcs 命令行界面现在提供 pcs status query resource 命令,以查询集群中单个资源的各种属性。这些命令查询:
- 资源的存在
- 资源的类型
- 资源的状态
- 有关集体资源成员的各种信息
- 资源在哪些节点上运行
您可以将这些命令用于基于 pcs 的脚本,因为不需要解析纯文本输出。
新的 pcs resource defaults 和 pcs resource op defaults 选项用于以文本、JSON 和命令格式显示配置
pcs resource defaults 和 pcs resource op defaults 命令及其别名 pcs stonith defaults 和 pcs stonith op defaults 现在提供 --output-format 选项。
-
指定
--output-format=text以纯文本格式显示配置的资源默认值或操作默认值,这是此选项的默认值。 -
指定
--output-format=cmd会显示从当前集群默认值配置中创建的pcs resource defaults或pcs resource op defaults命令。您可以使用这些命令在不同系统上重新创建配置的资源默认值或资源操作默认值。 -
指定
--output-format=json以 JSON 格式显示配置的资源默认值或资源操作默认值,这适用于机器解析。
关闭 panic 节点,而无需自动重启的新的 Pacemaker 选项
您现在可以将 /etc/sysconfig/pacemaker 配置文件中的 PCMK_panic_action 变量设置为 off 或 sync-off。当您将此变量设置为 off 或 sync-off 时,节点会在 panic 情况后保持关闭,而不是自动重启。
支持新的 pcsd Web UI 功能
pcsd Web UI 现在支持以下功能:
-
当您将
placement-strategy集群属性设置为default时,pcsdWeb UI 在节点和资源的 utilization 属性旁边显示一条警告。此警告指出,由于placement-strategy配置,使用率没有任何影响。 -
pscdWeb UI 支持 dark 模式,您可以通过 masthead 中的用户菜单进行设置。
4.11. 动态编程语言、网页和数据库服务器 复制链接链接已复制到粘贴板!
提高了 Python 解释器的性能
RHEL 9 中所有支持的 Python 版本现在都使用 GCC 的 -O3 优化标记进行了编译,该标记是上游中的默认设置。因此,您可以观察到 Python 应用程序和解释器本身性能的提高。
Jira:RHEL-49615[1], Jira:RHEL-49635, Jira:RHEL-49637
httpd rebase 到 2.4.62
httpd 软件包已更新至版本 2.4.62,其中包括各种 bug 修复、安全修复和新功能。主要特性包括:
添加了以下指令:
-
在
mod_cgi模块中添加了CGIScriptTimeout指令。 -
mod_alias模块中的AliasPreservePath指令,以映射位置中别名后的完整路径。 -
mod_alias中的RedirectRelative指令,以允许按原样发布相对重定向目标。 -
mod_deflate模块中的DeflateAlterETag指令,以控制对ETag的修改。NoChange参数模拟 2.2.x 行为。
-
在
-
在
mod_proxy模块中添加了用于ProxyRemote服务器的可选的第三个参数,它配置传给远程代理的基本身份验证凭据。 -
LDAPConnectionPoolTTL指令现在接受负值,以允许重复使用任何时候的连接。在以前的版本中,当您使用负值解析配置文件时,会在mod_ldap模块中遇到一个错误。 -
现在,您可以使用
-T选项允许自动截断后续轮转的日志文件,而无需在 rotatelogs 二进制文件中截断初始日志文件。
mod_md rebase 到版本 2.4.26
mod_md 模块已更新至版本 2.4.26。与以前版本相比的显著变化包括:
添加了以下指令:
-
MDCheckInterval控制服务器检查检测到的撤销的的次数。 -
MDMatchNames all|servernames允许对 MDomains 如何与 VirtualHosts 匹配进行更多控制。 -
MDChallengeDns01Version。将此指令的值设置为2时,它将在teardown调用时为命令提供挑战值。默认情况下,在版本 1 中,只有setup调用获得此参数。
-
-
对于
手动模式中的受管域,mod_md_verification模块现在检查所有使用的ServerName和ServerAlias都报告一条警告,而不是一个错误(AH10040)。 -
现在,您可以为单个域配置
MDChallengeDns01指令。
Jira:RHEL-25075[1]
PostgreSQL 16 现在提供 pgvector 扩展
postgresql:16 模块流现在与 pgvector 扩展一起分发。使用 pgvector 扩展,您可以直接存储和查询 PostgreSQL 数据库中嵌入的高维度向量,并执行向量相似性搜索。向量嵌入的是通常在机器学习和 AI 应用程序中使用的数据的数字表示,用来捕获文本的语义含义、镜像或其他数据类型。
新的 db_converter 工具,来将 libdb 数据库转换为 GDBM 格式
弃用的 Berkeley DB (libdb)现在提供 db_converter 工具,来将 lidbd 数据库转换为 GNU dbm (GDBM)数据库格式。db_converter 工具在 libdb-utils 子软件包中分发。
有关 libdb 的替代的更多信息,请参阅红帽知识库文章 RHEL 中提供的已弃用的 Berkeley DB (libdb)的替代。
完全支持一个新的 nodejs:22 模块流
RHEA-2024:11235 公告的发行版本完全支持之前作为技术预览提供的新模块流 nodejs:22。nodejs:22 模块流现在提供 Node.js 22.11,它是一个长期支持(LTS)版本。
从 RHEL 9.3 开始,与 Node.js 20 相比,包含在 RHEL 9.5 中的 Node.js 22 提供许多新功能、bug 修复、安全修复和性能改进。
主要变更包括:
-
V8JavaScript 引擎已升级至版本 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
# dnf module install nodejs:22
如果要从 nodejs:20 流升级,请参阅 切换到更新的流。
有关 nodejs 应用程序流支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期。
4.12. 编译器和开发工具 复制链接链接已复制到粘贴板!
系统 GCC 更新到版本 11.5
RHEL 9 中的 GCC 系统版本已更新至版本 11.5。这个更新提供了大量 bug 修复。
提供了一个新的用于 glibc 的可调参数,通过将动态对象放置得更接近来提高性能
在以前的版本中,glibc 的动态加载程序在整个可用的地址空间中随机放置动态对象,以增强安全性。因此,对象通常相距太远,这导致它们之间的调用效率低下。
有了此更新,您现在可以通过设置以下可调项,将对象紧密地放在一起,特别是在第一个 2 GB 的地址空间中:
export GLIBC_TUNABLES=glibc.cpu.prefer_map_32bit_exec=1
export GLIBC_TUNABLES=glibc.cpu.prefer_map_32bit_exec=1
设置这个调整参数可能导致某些应用程序的性能提升,代价是地址空间布局随机性(ASLR)略有下降。
Jira:RHEL-20172[1]
glibc 现在支持启用了 Intel APX 的函数的动态链接
不兼容的动态链接器 trampoline 被识别为 Intel Advanced Performance Extensions (APX)应用程序的潜在不兼容的源。作为临时解决方案,可以使用 BIND_NOW 可执行文件,或者只使用标准调用约定。有了此更新,glibc 的动态链接器保留了与 APX 相关的寄存器。
由于这个变化,在堆栈的顶部之外需要额外的空间。严格限制此空间的用户可能需要调整或评估堆栈限制。
Jira:RHEL-25046[1]
glibc 中 AMD Zen 3 和 Zen 4 性能的优化
在以前的版本中,AMD Zen 3 和 Zen 4 处理器有时使用 memcpy 和 memmove 库例程的 Enhanced Repeat Move String (ERMS)(ERMS)版本,无论最优选择是什么。使用这个对 glibc 的更新,AMD Zen 3 和 Zen 4 处理器使用 memcpy 和 memmove 的最优版本。
Jira:RHEL-25531[1]
GDB 的系统版本 rebase 到版本 14.2,GDB 从 GCC Toolset 中删除了
GDB 已更新至版本 14.2。从 RHEL 9.5 开始,GDB 正在过渡到一个滚动应用程序流,其系统版本被 rebase 到 RHEL 的次版本中。因此,GDB 不包含在 RHEL 9 中的 GCC Toolset 14 中。
以下段落列出了 GDB 12.1 以来 GDB 14.2 中的显著更改。
概述:
-
info breakpoints命令现在将禁用的断点的启用的断点位置显示为y-状态。 -
添加了对使用 ELF 的 Zstandard (
ELFCOMPRESS_ZSTD)压缩的 debug 部分的支持。 -
默认情况下,文本用户界面(TUI)不再为当前位置指示器突出显示的源代码和汇编代码设置样式。要重新启用样式,请使用新命令
set style tui-current-position。 -
新的
$_inferior_thread_count方便变量包含当前 下级中活跃线程的数量。 -
对于具有多个代码位置的断点,GDB 现在使用
<breakpoint_number>.<location_number>语法打印代码位置。 -
当命中断点时,GDB 现在将
$_hit_bpnum和$_hit_locno方便变量设置为命中断点数和代码位置号。现在,您可以使用disable $_hit_bpnum命令禁用最后命中的断点,或使用disable $_hit_bpnum.$_hit_locno命令禁用特定的断点代码位置。 -
添加了对
NO_COLOR环境变量的支持。 - 添加了对大于 64 位的整数类型的支持。
-
您可以使用多目标功能配置的新命令来配置远程目标功能集(请参阅命令中的
set remote <name>-packet和show remote <name>-packet)。 - 添加了对 Debugger Adapter 协议的支持。
-
现在,您可以使用新的
inferior关键字使断点特定于下级(请参阅命令中的break或watch)。 -
现在,您可以使用新的
$_shell()便捷函数在表达式评估期间运行 shell 命令。
对现有命令的更改:
break,watch-
现在,在
break和watch命令中多次使用thread或task关键字会导致错误,而不是使用关键字的最后一个实例的线程或任务 ID。 -
现在在同一
break或watch命令中使用多个thread、task和inferior关键字无效。
-
现在,在
printf,dprintf-
printf和dprintf命令现在接受%V输出格式,它与print命令格式化表达式的方式相同。您还可以通过在命令后使用方括号[…]中的附加打印选项来修改输出格式,例如:printf "%V[-array-indexes on]", <array>。
-
list-
您现在可以使用
.参数打印当前帧内执行点附近的位置,或者,如果 inferior 尚未启动,则打印main()函数开头附近的位置。 -
尝试列出文件中比可用的更多的源行,现在会发出一个警告,让用户参考
.参数。
-
您现在可以使用
记录用户定义的- 现在,可以记录用户定义的别名。
新命令:
-
set print nibbles [on|off](默认值:off),show print nibbles- 控制print/t命令是否以四位组(nibbles)的形式显示二进制值。 -
set debug infcall [on|off](默认值:off),show debug infcall- 显示关于 inferior 功能调用的额外的调试信息。 -
set debug solib [on|off](默认值:off),show debug solib- 打印有关共享的库处理的额外的调试信息。 -
set print characters <LIMIT>、show print characters、print -characters <LIMIT>- 控制可打印一个字符串的多少个字符。 -
set debug breakpoint [on|off](默认值:off),show debug breakpoint- 打印有关断点插入和删除的额外的调试信息。 -
maintenance print record-instruction [ N- 打印给定指令的记录信息。 -
maintenance info frame-unwinders- 以优先级顺序(第一个最高)列出当前有效的帧 unwinders。 -
maintenance wait-for-index-cache- 等待所有等待对索引缓存的写完成。 -
info main- 打印有关主符号的信息,以识别程序的入口点。 -
set tui mouse-events [on|off](默认值:on),show tui mouse-events- 控制鼠标点击事件是否被发送到 TUI 和 Python 扩展( 当为on时)或终端(当为off时)。
机器接口(MI)更改:
- MI 版本 1 已被删除。
-
MI 现在在反向执行历史记录耗尽时报告
no-history。 -
在
-break-insert命令的输出中,thread和task断点字段不再被报告两次。 - 不再对不存在的线程 ID 创建特定于线程的断点。
-
-stack-list-arguments、-stack-list-locals、-stack-list-variables和-var-list-children命令中的--simple-values参数现在将引用类型视为 simple(如果目标是 simple)。 -
-break-insert命令现在接受一个新的-g thread-group-id选项,来创建特定于 inferior 的断点。 -
断点创建的通知和
-break-insert命令的输出现在可以包括一个可选的用于主断点和每个断点位置的inferior字段。 -
说明
breakpoint-hit停止原因的异步记录现在包含一个可选字段locno,其在出现多位置断点的情况下提供代码位置号。
GDB Python API 中的更改:
事件
-
一个新的
gdb.ThreadExitedEvent事件。 -
一个新的
gdb.executable_changed事件注册表,它发出具有progspace和reload属性的ExecutableChangedEvent对象。 -
新的
gdb.events.new_progspace和gdb.events.free_progspace事件注册表,它发出NewProgpspaceEvent和FreeProgspaceEvent事件类型。这两个事件类型都有一个属性progspace,来指定添加到 GDB 中,或从 GDB 删除的gdb.Progspace程序空间。
-
一个新的
gdb.unwinder.Unwinder类-
name属性现在是只读的。 -
__init__函数的 name 参数必须是str类型,否则会引发一个TypeError。 -
enabled属性现在只接受bool类型。
-
gdb.PendingFrame类-
新方法:
name,is_valid,pc,language,find_sal,block和function,它们镜像gdb.Frame类的类似方法。 -
create_unwind_info函数的frame-id参数现在可以是一个整数,也可以是pc、sp和special属性的gdb.Value对象。
-
新方法:
-
一个新的
gdb.unwinder.FrameId类,它可以传递给gdb.PendingFrame.create_unwind_info函数。 -
gdb.disassembler.DisassemblerResult类不能再细分。 -
gdb.disassembler模块现在包含样式支持。 -
一个新的
gdb.execute_mi (COMMAND, [ARG]…)函数,它调用 GDB/MI 命令,并将结果返回为一个 Python 字典。 -
一个新的
gdb.block_signals()函数,它返回一个阻止 GDB 需要处理的任何信号的上下文管理器。 -
threading.Thread类的一个新gdb.Thread子类,它在start方法中调用gdb.block_signals函数。 -
gdb.parse_and_eval函数有一个新的global_context参数,来限制对全局符号的解析。 gdb.Inferior类-
一个新
arguments属性,其保留 inferior 的命令行参数(如果已知)。 -
一个新的
main_name属性,它包含 inferior 的main函数的名称(如果已知)。 -
新的
clear_env、set_env和unset_env方法,它们可在启动前修改 inferior 的环境。
-
一个新
gdb.Value类-
一个分配对象值的新的
assign方法。 -
一个将类数组值转换为数组的新的
to_array方法。
-
一个分配对象值的新的
gdb.Progspace类-
一个新的
objfile_for_address方法,它返回涵盖给定地址的gdb.Objfile对象(如果存在)。 -
一个新的
symbol_file属性,保存对应于Progspace.filename变量的gdb.Objfile对象(或None,如果文件名为None)。 -
一个新的
executable_filename属性,其保存具有由exec-file或file命令设置的文件名的字符串,如果没有设置可执行文件,则为None。
-
一个新的
gdb.Breakpoint类-
一个新的
inferior属性,其包含特定于 inferior 的断点的 inferior ID(一个整数),或None,如果没有设置这样的断点 。
-
一个新的
gdb.Type类-
新的
is_array_like和is_string_like方法,其反映一个类型可以是类似数组或类似字符串,无论类型的实际类型代码是什么。
-
新的
-
一个新的
gdb.ValuePrinter类,可用作应用 pretty-printer 的结果的基类。 -
一个新实现的
gdb.LazyString.__str__方法。 gdb.Frame类-
一个新的
static_link方法,它返回嵌套的函数帧的外部帧。 -
一个新的
gdb.Frame.language方法,它返回帧语言的名称。
-
一个新的
gdb.Command类-
GDB 现在重新格式化
gdb.Command类的 doc 字符串和gdb.Parameter子类,以便在使用字符串作为 help 输出前从每行中删除不必要的前导空格。
-
GDB 现在重新格式化
gdb.Objfile类-
一个新的
is_file属性。
-
一个新的
-
一个新的
gdb.format_address (ADDRESS, PROGSPACE, ARCHITECTURE)函数,其使用与从反汇编器中打印地址、符号和偏移信息时相同的格式。 -
一个新的
gdb.current_language函数,它返回当前语言的名称。 -
一个用于包装 GDB 的反汇编器的新 Python API,包括
gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH),gdb.disassembler.Disassembler,gdb.disassembler.DisassembleInfo,gdb.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)和gdb.disassembler.DisassemblerResult。 -
一个新的
gdb.print_options函数,它以gdb.Value.format_string函数接受的形式返回当前打印选项的字典。 gdb.Value.format_string函数-
如果在
print或其他类似的操作中被调用,GDB.Value.format_string现在使用print命令提供的格式。 -
gdb.Value.format_string现在接受summary关键字。
-
如果在
-
一个新的
gdb.BreakpointLocationPython 类型。 -
gdb.register_window_type方法现在限制一组可接受的窗口名称。
特定于架构的更改:
AMD 和 Intel 64 位构架
-
添加了对使用
libopcodes库的反汇编器样式的支持,该库现在被默认使用。您可以使用set style disassembler *命令修改反汇编器输出的样式。要使用 Python Pygments 样式,请使用新的maintenance set libopcodes-styling命令。
-
添加了对使用
64 位 ARM 架构
- 添加了为内存标记(MTE)转储内存标签数据的支持。
- 添加了对 Scalable Matrix Extension 1 和 2 (SME/SME2)的支持。有些功能仍被视为实验性的或 alpha,例如,ZA 状态的手动函数调用,或者根据 DWARF 跟踪 Scalable Vector Graphics(SVG)更改。
- 添加了对线程本地存储(TLS)变量的支持。
- 添加了对硬件观察点的支持。
64 位 IBM Z 架构
-
对 IBM Z 目标上新
arch14指令的记录和重播的支持,但专用的函数辅助指令NNPA除外。
-
对 IBM Z 目标上新
IBM Power Systems, Little Endian
- 添加了对 POWER11 的基本启用支持。
有关滚动应用程序流的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期。
Jira:RHEL-36211, Jira:RHEL-10550, Jira:RHEL-39555
elfutils rebase 到版本 0.191
elfutils 软件包已更新至版本 0.191。主要改进包括:
libdw库中的更改:-
dwarf_addrdie函数现在支持缺少debug_aranges部分的二进制文件。 - 改进了对 DWARF 软件包文件的支持。
-
已添加了一个新的
dwarf_cu_dwp_section_info函数。
-
-
debuginfod服务器中的缓存驱除逻辑已改进,以提高小、频繁或慢文件(如vdso.debug)的保留。 -
eu-srcfiles工具现在可以获取 DWARF/ELF 文件的源文件,并将它们放到zip存档中。
SystemTap rebase 到版本 5.1
SystemTap 追踪和探测工具已更新至版本 5.1。主要变更包括:
-
一个实验性 的
--build-as=USER标志,以在脚本编译过程中减少特权。 - 改进了对主机 PID 识别的容器中运行的探测进程的支持。
- 对用户空间硬件断点和监视点的新探测。
-
支持
--runtime=bpf模式的--remote操作。 - 改进了内核用户传输的稳健性。
valgrind rebase 到版本 3.23.0
Valgrind 套件已更新至版本 3.23.0。主要改进包括:
-
--track-fds=yes选项现在警告文件描述符的双重关闭,生成可抑制的错误,并支持 XML 输出。 -
--show-error-list=no|yes选项现在接受一个新值all,来也打印抑制的错误。 -
在 64 位 IBM Z 架构上,
Valgrind现在支持神经网络处理辅助(NNPA)工具向量指令:VCNF、VCLFNH、VCFN、VCLFNL、VCRNF和NNPA(z16/arch14)。 -
在 64 位 ARM 架构上,
Valgrind现在支持dotprod指令(sdot/udot)。 -
在 AMD 和 Intel 64 位构架上,
Valgrind现在为 x86_64-v3 微架构提供更准确的指令支持。 -
Valgrind现在为可检测内存重叠的wcpncpy、memccpy、strlcat和strlcpy函数提供包装器。 -
Valgrind现在支持以下 Linux syscall:mlock2、fchmodat2和pidfd_getfd。
Jira:RHEL-29534, Jira:RHEL-10551
libabigail rebase 到版本 2.5
libabigail 库已更新至版本 2.5。主要变更包括:
- 改进了灵活数组数据成员的严格转换的限制规范。
- 添加了对 C++ 二进制文件中 pointer-to-member 类型的支持。
-
改进了
abicompat工具的weak模式。 -
一个管理操作系统的 ABI 的新的
abidb工具。 - 修复多个程序错误。
Jira:RHEL-30013, Jira:RHEL-7325, Jira:RHEL-7332
新的 GCC Toolset 14
GCC Toolset 14 是一个编译器工具集,其提供开发工具的最新版本。它以 AppStream 存储库中的 Software Collection 的形式作为 Application Stream 提供。
GCC Toolset 14 提供以下工具和版本:
- GCC 14.2
-
binutils2.41 -
annobin12.70 -
dwz0.14
请注意,GDB 的系统版本已被 rebase,GDB 不再包含在 GCC Toolset 中。
要安装 GCC Toolset 14,请以 root 用户身份输入以下命令:
dnf install gcc-toolset-14
# dnf install gcc-toolset-14
要从 GCC Toolset 14 运行工具:
scl enable gcc-toolset-14 <tool>
$ scl enable gcc-toolset-14 <tool>
要运行一个 shell 会话,其中 GCC Toolset 14 的工具版本会覆盖这些工具的系统版本:
scl enable gcc-toolset-14 bash
$ scl enable gcc-toolset-14 bash
GCC Toolset 14 组件也可以在 gcc-toolset-14-toolchain 容器镜像中找到。
如需更多信息,请参阅 GCC Toolset 14 和 使用 GCC Toolset。
Jira:RHEL-29758[1], Jira:RHEL-29852
GCC Toolset 14: GCC rebase 到版本 14.2
在 GCC Toolset 14 中,GNU Compiler Collection (GCC)已更新至版本 14.2。
主要变更包括:
- 优化和诊断改进
-
新的
-fhardenedumbrella 选项,其启用一组强化标记 -
新的
-fharden-control-flow-redundancy选项,来检测将控制转换到函数中间的攻击 -
新的
strub类型属性,来控制函数和变量的堆栈清理属性 -
新的
-finline-stringops选项,来强制某些mem*函数的内联扩展 - 支持新的 OpenMP 5.1、5.2 和 6.0 功能
- 几个新的 C23 功能
- 多个新的 C++23 和 C++26 功能
- 几个已解决的 C++ 缺陷报告
- 对 C++ 库中 C++20、C++23 和 C++26 的新的和改进了的实验性支持
- 支持 64 位 ARM 架构中的新 CPU
- 64 位 Intel 架构中的多个新指令集架构(ISA)扩展,例如:AVX10.1、AVX-VNNI-INT16、SHA512 和 SM4
- GCC 的静态分析器中的新警告
- 某些警告变为错误; 详情请参阅 移植到 GCC 14
- 各种 bug 修复
有关 GCC 14 中更改的更多信息,请参阅 上游 GCC 发行注记。
Jira:RHEL-29853[1]
GCC Toolset 14: annobin rebase 到版本 12.70
在 GCC Toolset 14 中,annobin 已更新至版本 12.70。测试二进制文件的 annobin 工具的更新集合提供了各种 bug 修复,引入了新测试,并更新了构建和使用 GCC 的较新版本、Clang、LLVM 和 Go 编译器的工具。通过增强的工具,您可以检测以非标准方式构建的程序中的新问题。
Jira:RHEL-29850[1]
GCC Toolset 14: binutils rebase 到版本 2.41
RHEL 9.5 与 GCC Toolset 14 binutils 版本 2.41 一起分发。新特性包括:
-
binutils工具支持 64 位 Intel 和 ARM 架构中的架构扩展。 -
链接器现在接受
--remap-inputs <PATTERN>=<FILE>命令行选项,来使用<FILE>代替与<PATTERN>匹配的任何输入文件。另外,您可以使用--remap-inputs-file=<FILE>选项指定一个包含任意数量的这些重新映射指令的文件。 -
对于 ELF 目标,您可以使用链接器命令行选项
--print-map-locals,来在链接器映射中包含本地符号。 -
对于大多数基于 ELF 的目标,您可以使用
--enable-linker-version选项,将链接器的版本作为字符串插入到.comment部分中。 -
链接器脚本语法有一个用于输出部分的新命令
ASCIZ "<string>",其在当前位置插入一个零终止的字符串。 -
您可以使用新的
-z nosectionheader链接器命令行选项省略 ELF 部分标头。
Jira:RHEL-29851[1]
GCC Toolset 13:GCC 支持 AMD Zen 5
GCC 的 GCC Toolset 13 版本添加了对 AMD Zen 5 处理器微架构的支持。要启用支持,请使用 -march=znver5 命令行选项。
Jira:RHEL-36523[1]
LLVM Toolset 已更新至 18.1.8
LLVM Toolset 已更新至版本 18.1.8。
重要的 LLVM 更新:
-
以下指令的常量表达式变体已删除:
and,or,lshr,ashr,zext,sext,fptrunc,fpext,fptoui,fptosi,uitofp,sitofp. -
添加了
llvm.exp10内在函数。 -
添加了全局变量的
code_model属性。 - 改进了 AArch64, AMDGPU, PowerPC, RISC-V, SystemZ 和 x86 架构的后端。
- LLVM 工具已改进。
显著的 Clang 改进:
C++20 功能支持:
-
clang 不再执行 One Definition Rule(ODR)来检查全局模块片段中的声明。要启用更严格的行为,请使用
-Xclang -fno-skip-odr-check-in-gmf选项。
-
clang 不再执行 One Definition Rule(ODR)来检查全局模块片段中的声明。要启用更严格的行为,请使用
C++23 功能支持:
-
添加了一个新的诊断标记
-Wc++23-lambda-attributes,以警告对 lambdas 使用属性。
-
添加了一个新的诊断标记
C++2c 功能支持:
-
clang 现在允许在同一范围内多次使用
_字符作为占位符变量名称。 - 在是字符串文字的属性参数中,属性现在期望未评估的字符串。
- 对 C++26 中弃用的枚举的算术转换已删除。
- 改进了模板参数初始化的规范。
-
clang 现在允许在同一范围内多次使用
- 有关更改的完整列表,请参阅 Clang 的上游发行注记。
Clang 中的 ABI 变化:
-
按照 x86_64 的 SystemV ABI ,
__int128参数不再在寄存器和堆栈插槽之间拆分。 - 如需更多信息,请参阅 Clang 中 ABI 变化的列表。
重要的后向不兼容变化:
- 模板运算符的反向参数顺序中的 bug 修复破坏了之前在 C++17 中接受的 C++20 中的代码。
-
GCC_INSTALL_PREFIXCMake 变量(其设置默认的-gcc-toolchain=)已被弃用,并将被删除。改为在配置文件中指定--gcc-install-dir=或--gcc-triple=选项。 -
预编译标头(PCH)生成(
-c -xc-header和-c -xc++-header)的默认扩展名称是.pch而不是.gch。 -
当
-include a.h探测a.h.gch文件时,如果a.h.gch 不是 Clang PCH 文件或包含任何 Clang PCH 文件的目录,则 include 现在忽略a.h.gch。 -
修复了对某些 C++-11-style 属性导致
__has_cpp_attribute和__has_c_attribute返回错误值的 bug 。 -
在添加反向
operator==时查找匹配的operator!=的 bug 已修复。 - 功能模板的名称修改规则已更改为接受函数可以在其模板参数列表或 requires 子句上超载。
-
现在,在系统标头和宏上默认启用
-Wenum-constexpr-conversion警告。在下一个 Clang 版本中,它将被转换为一个硬(不可升级)错误。 - C++20 命名的模块的导入模块的路径不再被硬编码。您必须从命令行指定所有依赖的模块。
-
不再可能使用
import <module>来导入模块;Clang 使用明确构建的模块。 - 如需了解更多详细信息,请参阅 可能破坏更改的列表。
如需更多信息,请参阅 LLVM 发行注记 和 Clang 发行注记。
LLVM Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。
Rust Toolset rebase 到版本 1.79.0
Rust Toolset 已更新到版本 1.79.0。从以前可用的 1.75.0 版本开始,显著的改进包括:
-
新的
offset_of!宏 - 支持 C 字符串字面值
-
支持内联
const表达式 - 支持相关类型位置中的绑定
- 改进了自动临时生命周期扩展
-
调试
unsafe前提条件的断言
Rust Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。
Go Toolset 已 rebase 到版本 1.23
Go Toolset 已更新至版本 1.23,并发布 RHSA-2025:3773 公告。
主要改进包括:
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 版本太新的符号的引用。 -
cmd和cgo功能支持-ldflags选项,来将标记传递给 C 链接器。当您使用非常大的CGO_LDFLAGS环境变量时,go命令会自动使用这个标志来避免argument list too long错误。 -
trace工具容忍部分破坏的跟踪,并尝试恢复跟踪数据。这在崩溃时特别有用,因为您可以获得导致崩溃的跟踪。 -
在未处理的 panic 或其他致命错误之后,运行时打印的回溯带有缩进,以区分来自第一个
goroutine的goroutine的堆栈追踪。 - 使用配置文件引导的优化的编译器构建时间开销降低到个位数百分比。
-
新的
-bindnow链接器标志在构建动态链接的 ELF 二进制时启用立即函数绑定。 -
//go:linkname链接器指令不再引用标准库中的内部符号,以及没有对其定义标记为//go:linkname的运行时。 -
如果程序不再引用
Timer或Ticker,则垃圾回收会立即清理它们,即使还没有调用它们的Stop方法。与Timer或Ticker关联的计时器渠道现在没有缓冲,容量为 0。这确保每次调用Reset或Stop方法时,在调用后不会发送或接收过时的值。 -
新的
unique软件包为规范化值(如interning或hash-consing)提供了工具。 -
新的
iter软件包提供了基本定义,以与用户定义的迭代器一起工作。 -
slices和maps软件包引入了几个与迭代器一起使用的新功能。 -
新的
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-83437[1]
Go Toolset rebase 到版本 1.22
Go Toolset 已更新至版本 1.22 。
主要改进包括:
- for 循环中的变量现在在每个迭代创建,防止意外共享 bug。另外,对于循环,现在可以覆盖整数。
- 工作区中的命令现在可以使用工作区依赖项的厂商目录。
-
go get命令不再支持旧的GOPATH模式。此更改不会影响go build和go test命令。 -
vet工具已更新,以匹配 for 循环的新行为。 - 通过使基于类型的垃圾回收元数据靠近每个堆对象,而提高了 CPU 性能。
- Go 现在提供改进的内联优化和更好的配置文件指导的优化支持,从而获得更高的性能。
-
新的
math/rand/v2软件包可用。 - Go 现在提供增强的 HTTP 路由模式,支持方法和通配符。
如需更多信息,请参阅 Go 上游发行注记。
Go Toolset 是一个滚动应用程序流,仅最新版本支持。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。
Jira:RHEL-29527[1]
PCP rebase 到版本 6.2.2
Performance Co-Pilot (PCP)已更新至版本 6.2.2。与以前可用的 6.2.0 版本相比,显著变化包括:
新工具和代理
-
pcp2openmetrics:一个将 Open Metrics 格式的 PCP 指标推送到远程端点的新工具 -
pcp-geolocate:一个报告 latitude 和 longitude 指标标签的新工具 -
pmcheck:一个查询和控制 PCP 组件的新工具 -
pmdauwsgi:一个从 uWSGI 服务器导出仪表的新 PCP 代理
增强的工具
-
pmdalinux:添加新内核指标(巨页、文件系统、TCP、softnet、虚拟机气球) -
pmdalibvirt:添加了对指标标签的支持,添加了新的气球、vCPU 和域信息指标 -
pmdabpf:为使用pcp-atop工具改进了 eBPF 网络指标,
grafana rebase 到版本 10.2.6
Grafana 平台已更新至版本 10.2.6。
主要改进包括:
- 支持通过在点击和拖动时按住 shift 来放大时间序列的 y 轴和烛台可视化。
- 创建仪表板时简化数据源选择。
- 更新了用户界面,包括对导航和命令面板的更新。
-
对转换的各种改进,包括对
从计算中添加字段转换的新的一元操作模式。 - 对仪表盘和数据视觉化的各种改进,包括重新设计的空仪表盘和仪表盘面板。
- 新的地图和画布面板。
其他更改:
- 对用户、访问、身份验证、授权和安全的各种改进。
- 警报改进以及新的警报功能。
- 公共仪表盘现在可用。
有关之前可用的 Grafana 版本 9.2 以来的更改的完整列表,请参阅 上游文档。
Jira:RHEL-31246[1]
Red Hat build of OpenJDK 17 现在是 RHEL 9 中的默认 Java 实现
默认的 RHEL 9 Java 实现在从 OpenJDK 11(其已到达生命终结)变化为 OpenJDK 17。此更新后,提供 OpenJDK 17 Java 运行时环境和 OpenJDK 17 Java 软件开发工具包的 java-17-openjdk 软件包也提供 java 和 java-devel 软件包。如需更多信息,请参阅 OpenJDK 文档。
RHEL 9 中直接调用 java/bin 或 java-openjdk/bin 的现有软件包将马上能够使用 OpenJDK 17。
RHEL 9 中需要直接需要 java 或 java-devel 的软件包的现有软件包(即 tomcat 和 systemtap-runtime-java )将自动拉取合适的依赖项。
在 RHEL 9.5 正式发布后,通过 javapackages-tools 软件包间接使用 Java 的 Ant、Maven 和软件包将很快进行异步更新。
如果您需要首次安装 OpenJDK,或者默认软件包没有通过依赖项链安装,请使用 DNF:
dnf install java-17-openjdk-devel
# dnf install java-17-openjdk-devel
如需更多信息,请参阅 使用 yum 在 RHEL 上安装 OpenJDK 的红帽构建的多个次版本。
RHEL 9 中的当前 java-11-openjdk 软件包将不会收到任何进一步的更新。但是,红帽将为 OpenJDK 11 的红帽构建提供带有更新的延长生命周期支持(ELS)阶段 1 ,直到 2027 年 10 月 31 日为止。详情请参阅 OpenJDK 11 延长生命周期支持 (ELS-1) 可用性的红帽构建。
有关特定于 OpenJDK ELS 计划和 OpenJDK 生命周期的详情,请查看 OpenJDK 生命周期和支持策略。
如果您将 alternatives 命令设置为 java 及相关组件的 手动 模式,则在更新后仍将使用 OpenJDK 11。在这种情况下,要使用 OpenJDK 17,请将 alternatives 设置改为 auto,例如:
alternatives --auto java alternatives --auto javac
# alternatives --auto java
# alternatives --auto javac
使用 alternatives --list 命令验证设置。
Jira:RHEL-56094[1]
4.13. 身份管理 复制链接链接已复制到粘贴板!
python-jwcrypto rebase 到版本 1.5.6
python-jwcrypto 软件包已更新至版本 1.5.6。此版本包括针对一个问题的安全修复,其中攻击者可以通过传递一个具有高压缩率的恶意 JWE Token 来拒绝服务攻击。
Jira:RHELDOCS-18197[1]
ansible-freeipa rebase 到 1.13.2
ansible-freeipa 软件包已从版本 1.12.1 rebase 到 1.13.2。主要改进包括:
-
您可以为
ansible-freeipaplaybook 动态地创建一个身份管理(IdM)服务器的清单。freeipa插件收集有关域中 IdM 服务器的数据,并只选择分配了指定的 IdM 服务器角色的服务器。例如,如果要搜索域中所有 IdM DNS 服务器的日志,以检测可能的问题,则插件确保所有具有 DNS 服务器角色的 IdM 副本都被检测到,并自动添加到受管节点中。 -
ansible-freeipa软件包需要至少ansible-core软件包版本 2.14 。ansible-core2.14 和ansible-freeipa的最新版本都在 Appstream 存储库中提供。因此,不需要手动更新ansible-core。 您可以更有效地运行使用单个 Ansible 任务的
ansible-freeipaplaybook,来添加、修改和删除多个身份管理(IdM)用户、用户组、主机和服务。在以前的版本中,用户列表中的每个条目都有其专用的 API 调用。有了此增强,几个 API 调用被合并为一个任务中的一个 API 调用。这同样适用于用户组、主机和服务的列表。因此,使用
ipauser,ipagroup,ipahost和ipaservice模块添加、修改和删除这些 IdM 对象的速度增加了。使用客户端上下文时,可以看到最大的好处。ansible-freeipa还将角色和模块作为ansible-freeipa-collection子软件包中的 Ansible 集合提供。要使用新集合:-
安装
ansible-freeipa-collection子软件包。 -
将
freeipa.ansible_freeipa前缀添加到角色和模块的名称中。使用完全限定名称遵循 Ansible 建议。例如,要引用ipahbacrule模块,请使用freeipa.ansible_freeipa.ipahbacrule。
您可以通过应用
module_defaults来简化是freeipa.ansible_freeipa集合一部分的模块的使用。-
安装
iparebase 到版本 4.12.0
ipa 软件包已从 4.11 版本更新至 4.12.0。主要变更包括:
- 您可以为不提供 OTP 令牌的用户强制 LDAP 身份验证失败。
- 您可以使用可信的活动目录用户注册身份管理(IdM)客户端。
- FreeIPA 中身份映射的文档现在可用。
-
python-dns软件包已 rebase 到版本 2.6.1-1.el10。 -
ansible-freeipa软件包已从 1.12.1 rebase 到 1.13.2。
如需更多信息,请参阅 FreeIPA 和 ansible-freeipa 上游发行注记。
certmonger rebase 到版本 0.79.20
certmonger 软件包已 rebase 到版本 0.79.20。此更新包括各种 bug 修复和增强,最重要的是:
- 增强了内部令牌中新证书的处理,并改进了续订的删除过程。
-
删除了对
CKM_RSA_X_509加密机制的令牌的限制。 -
修复了
getcert add-scep-ca,--ca-cert和--ra-cert选项的文档。 - 重命名 D-Bus 服务和配置文件以匹配规范名称。
-
在
getcert-resubmit手册页中添加了缺失的.TP标签。 - 迁移到 SPDX 许可证格式。
-
在
getcert list输出中包含了所有者和权限信息。 -
在
cm_certread_n_parse函数中删除了对 NSS 数据库的要求。 - 添加了对简体中文、Georgian 和俄语使用 Webplate 的翻译。
389-ds-base rebase 到版本 2.5.2
389-ds-base 软件包已更新至版本 2.5.2。与 2.4.5 版本相比,重要的 bug 修复和增强包括:
改进了 MIT krb5 TCP 连接超时处理
在以前的版本中,TCP 连接在 10 秒后超时。有了此更新,MIT krb5 TCP 连接处理已被修改为不再使用默认超时。request_timeout 设置现在限制总请求持续时间,而不是单个 TCP 连接的持续时间。这个变化解决了 SSSD 的集成问题,特别是对于双因素验证用例。因此,用户会体验到更一致的 TCP 连接的处理,因为 request_timeout 设置现在可以有效地控制全局请求最长持续时间。
Jira:RHEL-17132[1]
4.14. SSSD 复制链接链接已复制到粘贴板!
samba rebase 到版本 4.20.2
samba 软件包升级至上游版本 4.20.2,与之前的版本相比,它提供了 bug 修复和增强。最显著的更改有:
-
smbacls工具现在保存和恢复自主访问控制列表(DACL)条目。此功能模仿 Windowsicacls.exe工具的功能。 - Samba 现在支持条件访问控制条目(ACE)。
-
Samba 不再从
/var/run/utmp文件中读取当前登录的用户。此功能已从NetWkstaGetInfo级别 102 和NetWkstaEnumUsers级别 0 和 1 功能中删除,因为/var/run/utmp使用的时间格式不符合 2038 年的安全要求。
请注意,从 Samba 4.11 开始,服务器消息块块版本 1 (SMB1)协议已被弃用,并将在以后的发行版本中删除。
在启动 Samba 前备份数据库文件。当 smbd、nmbd 或 winbind 服务启动时,Samba 会自动更新其 tdb 数据库文件。红帽不支持降级 tdb 数据库文件。
更新 Samba 后,使用 testparm 工具来验证 /etc/samba/smb.conf 文件。
Jira:RHEL-33645[1]
新的 SSSD 选项:failover_primary_timeout
您可以使用 failover_primary_timeout 选项为 sssd 服务指定以秒为单位的时间间隔,以尝试在切换到备份服务器后重新连接到主 IdM 服务器。默认值为 31 秒。在以前的版本中,如果主服务器不可用,SSSD 会在固定的超时时间 31 秒后自动切换到备份服务器。
Jira:RHEL-17659[1]
4.15. 桌面 复制链接链接已复制到粘贴板!
GNOME 在线帐户可以限制提供者可以使用哪些功能
您可以使用系统配置目录中的新的 goa.conf 文件(通常名为 /etc/goa.conf ),来限制每个提供者可以使用哪些功能。
在 goa.conf 文件中,组名称定义提供者类型,键定义禁用单个功能的布尔值开关。如果您没有为功能设置任何密钥或部分,则功能被启用。
例如,要为 Google 帐户禁用邮件功能,请使用以下设置:
[google] mail=false
[google]
mail=false
您可以使用 all 特殊部分名称覆盖每个提供者。如果特定提供者中的值存在并且包含有效的布尔值,则该值具有优先权。请注意,某些禁用的功能组合可能导致不完整或无效的帐户在被 GOA 用户读取,如 Evolution 应用程序。始终首先测试更改。重启 GNOME 在线帐户,以使更改的配置生效。
4.16. Web 控制台 复制链接链接已复制到粘贴板!
新软件包:cockpit-files
cockpit-files 软件包在 RHEL web 控制台中提供文件管理器页面。使用文件管理器,您可以执行以下操作:
- 浏览文件系统上您可以访问的文件和目录
- 根据各种条件对文件和目录进行排序
- 按子字符串过滤显示的文件
- 复制、移动、删除和重命名文件和目录
- 创建目录
- 上传文件
- 将文件路径加入书签
- 对操作使用快捷键
Jira:RHELDOCS-16362[1]
4.17. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
支持新的 ha_cluster 系统角色功能
ha_cluster 系统角色现在支持以下功能:
- 为节点和原语资源配置 utilization 属性。
-
使用
ha_cluster_node_options变量配置节点地址和 SBD 选项。如果同时定义了ha_cluster_node_options和ha_cluster变量,则会合并它们的值,ha_cluster_node_options的值具有优先权。 - 配置访问控制列表(ACL)。
- 当集群事件,如节点失败或发生资源启动或停止时,将 Pacemaker 警报配置为采取外部操作。
-
通过将
ha_cluster_install_cloud_agents变量设置为true,为云环境轻松安装代理。
Jira:RHEL-30111, Jira:RHEL-17271, Jira:RHEL-27186, Jira:RHEL-33532
支持使用 RHEL 系统角色配置 GFS2 文件系统
Red Hat Enterprise Linux 9.5 支持使用 gfs2 RHEL 系统角色配置和管理 Red Hat Global File System 2 (GFS2)。角色使用 pcs 命令行界面在 Pacemaker 集群中创建 GFS2 文件系统。
在以前的版本中,在支持的配置中设置 GFS2 文件系统需要您遵循一系列步骤,来配置存储和集群资源。gfs2 角色简化了这个过程。使用该角色,您可以在 RHEL 高可用性集群中只指定配置 GFS2 文件系统所需的最少信息。
gfs2 角色执行以下任务:
- 为在红帽高可用性集群中配置 GFS2 文件系统安装所需的软件包
-
设置
dlm和lvmlockd集群资源 - 创建 GFS2 文件系统所需的 LVM 卷组和逻辑卷
- 使用必要的资源约束创建 GFS2 文件系统和集群资源
Jira:RHELDOCS-18629[1]
新的 sudo RHEL 系统角色
sudo 是 RHEL 系统配置的关键部分。使用新的 sudo RHEL 系统角色,您可以在 RHEL 系统中一致地大规模管理 sudo 配置。
storage RHEL 系统角色现在可以管理 Stratis 池
有了此增强,您可以使用 storage RHEL 系统角色完成以下任务:
- 创建一个新的加密且未加密的 Stratis 池
- 向现有 Stratis 池添加新卷
- 向 Stratis 池添加新磁盘
有关如何管理 Stratis 池和其他相关信息的详情,请查看 /usr/share/doc/rhel-system-roles/storage/ 目录中的资源。
journald RHEL 系统角色中的新变量:journald_rate_limit_interval_sec 和 journald_rate_limit_burst
以下两个变量已添加到 journald RHEL 系统角色中:
-
journald_rate_limit_interval_sec(整数,默认为 30):配置一个时间间隔(以秒为单位),在这期间,只处理journald_rate_limit_burst日志消息。journald_rate_limit_interval_sec变量对应于journald.conf文件中的RateLimitIntervalSec设置。 -
journald_rate_limit_burst(整数,默认为 10 000):配置日志消息的上限,日志消息在journald_rate_limit_interval_sec定义的时间内被处理。journald_rate_limit_burst变量对应于journald.conf文件中的RateLimitBurst设置。
因此,您可以使用这些设置调优 journald 服务的性能,以便在短时间内处理记录很多消息的应用程序。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/journald/ 目录中的资源。
podman RHEL 系统角色中的新变量:podman_registry_username 和 podman_registry_password
podman RHEL 系统角色现在使您能够全局或在每个规范的基础上指定容器镜像注册中心凭证。为此,您必须配置两个角色变量:
-
podman_registry_username(字符串,默认为 unset):配置使用容器镜像注册中心进行身份验证的用户名。您还必须设置podman_registry_password变量。您可以使用registry_username变量,根据每个规范覆盖podman_registry_username。然后,每个涉及凭证的操作都会根据该规范中定义的详细规则和协议来执行。 -
podman_registry_password(字符串,默认为 unset):配置使用容器镜像注册中心进行身份验证的密码。您还必须设置podman_registry_username变量。您可以使用registry_password变量,根据每个规范覆盖podman_registry_password。然后,每个涉及凭证的操作都会根据该规范中定义的详细规则和协议来执行。为安全起见,使用 Ansible Vault 功能加密密码。
因此,您可以使用 podman RHEL 系统角色管理带有镜像的容器,其注册中心需要进行身份验证才能访问。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。
postfix RHEL 系统角色中的新变量:postfix_files
postfix RHEL 系统角色现在使您能够为 Postfix 邮件传输代理配置额外的文件。为此,您可以使用以下角色变量:
postfix_files-
定义要放入
/etc/postfix/目录中的文件的列表,如果需要,它们可以转换为 Postfix 查找表。此变量使您能够配置简单身份验证和安全层(SASL)凭证等。为安全起见,使用 Ansible Vault 功能加密包含凭据和其他 secret 的文件。
因此,您可以使用 postfix RHEL 系统角色创建这些额外文件,并将其集成到 Postfix 配置中。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/postfix/ 目录中的资源。
snapshot RHEL 系统角色现在支持管理 LVM 精简池的快照
有了精简配置,您可以使用 snapshot RHEL 系统角色管理 LVM 精简池的快照。这些精简快照可以节省空间,并且仅在进行快照后写入或修改数据时才增长。角色自动检测指定的卷是否被计划用于精简池。添加的功能在您无需消耗大量物理存储的就可以频繁进行快照的环境中非常有用。
logging RHEL 系统角色中的新选项:reopen_on_truncate
logging_inputs 变量的 files 输入类型现在支持以下选项:
reopen_on_truncate(布尔值,默认为 false)-
将
rsyslog服务配置为在输入日志文件被截断时重新打开,如在日志轮转期间。reopen_on_truncate角色选项对应于rsyslog的reopenOnTruncate参数。
因此,您可以通过 logging RHEL 系统角色以自动的方式配置 rsyslog,以便在输入日志文件被截断时重新打开它。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/logging/ 目录中的资源。
Jira:RHEL-46590[1]
logging RHEL 系统角色中的新变量:logging_custom_config_files
您可以使用以下变量,为 logging RHEL 系统角色提供自定义日志配置文件:
logging_custom_config_files(列表)-
配置要复制到默认日志记录配置目录的配置文件的列表。例如,对于
rsyslog服务,它是/etc/rsyslog.d/目录。这假设默认日志记录配置加载并处理该目录中的配置文件。默认的rsyslog配置有一个指令,如$IncludeConfig /etc/rsyslog.d86].conf。
因此,您可以使用不是由 logging RHEL 系统角色提供的自定义配置。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/logging/ 目录中的资源。
logging RHEL 系统角色可以为 rsyslog 文件和目录设置所有权和权限
logging_outputs 变量的 files 输出类型现在支持以下选项:
-
mode(raw,默认为 null):配置与rsyslog服务中的omfile模块关联的FileCreateMode参数。 -
owner(字符串,默认为 null):配置与rsyslog中的omfile模块关联的fileOwner或fileOwnerNum参数。如果值为整数,它会设置fileOwnerNum。否则,它会设置fileOwner。 -
group(字符串,默认为 null):配置与rsyslog中的omfile模块关联的fileGroup或fileGroupNum参数。如果值为整数,它会设置fileGroupNum。否则,它会设置fileGroup。 -
dir_mode(默认为 null):配置与rsyslog中的omfile模块关联的DirCreateMode参数。 -
dir_owner(默认为 null):配置与rsyslog中的omfile模块关联的dirOwner或dirOwnerNum参数。如果值为整数,它会设置dirOwnerNum。否则,它会设置dirOwner。 -
dir_group(默认为 null):配置与rsyslog中的omfile模块关联的dirGroup或dirGroupNum参数。如果值为整数,它会设置dirGroupNum。否则,它会设置dirGroup。
因此,您可以为 rsyslog 创建的文件和目录设置所有权和权限。
请注意,文件或目录属性与 Ansible file 模块中相应的变量相同。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/logging/ 目录中的资源。或者,检查 ansible-doc file 命令的输出。
Jira:RHEL-34935[1]
使用 storage RHEL 系统角色在受管节点上创建指纹
如果不存在,storage 会在每次运行此角色时创建一个唯一标识符(指纹)。指纹具有 # system_role:storage 字符串的形式,写到受管节点上的 /etc/fstab 文件中。因此,您可以跟踪哪些节点由 storage 管理。
podman RHEL 系统角色中的新变量:podman_registry_certificates 和 podman_validate_certs
以下两个变量已添加到 podman RHEL 系统角色中:
-
podman_registry_certificates(字典元素的列表):使您能够管理用于连接到指定的容器镜像注册中心的 TLS 证书和密钥。 -
podman_validate_certs(布尔值,默认为 null):控制从容器镜像注册中心拉取镜像是否将验证 TLS 证书。默认的 null 值意味着无论containers.podman.podman_image模块配置的默认值是什么,都会使用它。您可以使用validate_certs变量,根据每个规范覆盖podman_validate_certs变量。
因此,您可以使用 podman RHEL 系统角色配置 TLS 设置,以连接到容器镜像注册中心。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。或者,您可以查看 containers-certs (5) 手册页。
podman RHEL 系统角色中的新变量:podman_credential_files
有些操作需要以自动或无人值守的方式从注册中心拉取容器镜像,且不能使用 podman_registry_username 和 podman_registry_password 变量。
因此,podman RHEL 系统角色现在接受 containers-auth.json 文件,来对容器镜像注册中心进行身份验证。为此,您可以使用以下角色变量:
podman_credential_files(字典元素的列表)- 列表中的每个字典元素定义都定义了一个带有用户凭据的文件,来向私有容器镜像注册中心进行身份验证。为安全起见,请使用 Ansible Vault 功能加密这些凭据。您可以指定文件名、模式、所有者、文件的组,并且可以以不同的方式指定内容。如需了解更多详细信息,请参阅角色文档。
因此,您可以输入容器镜像注册中心凭证来执行自动和无人值守的操作。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。或者,您可以查看 containers-auth.json (5) 和 containers-registries.conf (5) 手册页。
nbde_client RHEL 系统角色现在可让您跳过运行某些配置
使用 nbde_client RHEL 系统角色,您现在可以禁用以下机制:
- 初始 ramdisk
- NetworkManager flush 模块
- Dracut flush 模块
clevis-luks-askpass 工具在 NetworkManager 服务将操作系统放在网络上后,会解锁一些存储卷。因此,不需要对上述机制进行配置更改。
因此,您可以禁止运行上述配置,来支持高级网络设置,或者将在引导过程后期发生的卷解密。
ssh RHEL 系统角色现在可以识别 ObscureKeystrokeTiming 和 ChannelTimeout 配置选项
ssh RHEL 系统角色已更新,以反映在 OpenSSH 工具套件中添加以下配置选项:
-
ObscureKeystrokeTiming(yes|no|interval 指定符,默认为 20):配置ssh工具是否应该隐藏来自网络流量被动观察者中的按键间隔时间。 -
ChannelTimeout:配置ssh工具是否应该关闭不活跃的渠道,以及关闭的速度。
使用 ssh RHEL 系统角色时,您可以使用新选项,如本示例中所示:
src 参数已添加到 network RHEL 系统角色中
已向 network_connections 变量的 ip 选项 的 route 子选项中添加了 src 参数。这个参数指定路由的源 IP 地址。通常,它可用于多 WAN 连接。这些设置可确保机器有多个公共 IP 地址,且出站流量使用绑定到特定网络接口的特定 IP 地址。因此,支持 src 参数通过在上述场景中确保更健壮且更灵活的网络配置功能,来更好地控制流量路由。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/network/ 目录中的资源。
storage RHEL 系统角色现在可以调整 LVM 物理卷的大小
如果块设备的大小已更改,且您在 LVM 中使用这个设备,则您也可以调整 LVM 物理卷。有了这个增强,您可以使用 storage RHEL 系统角色调整 LVM 物理卷大小,以便在调整大小后与底层块设备的大小匹配。要启用自动调整大小,请在 playbook 中对池设置 grow_to_fill: true。
4.18. 虚拟化 复制链接链接已复制到粘贴板!
64 位 ARM 主机的新功能
以下虚拟化功能现在已在 64 位 ARM 架构上完全支持:
- 4kiB 内存页大小主机上的 4 KiB 内存页大小虚拟机(VM)。请注意,具有不同页大小的主机和客户机仍不被支持。唯一支持的页大小组合为 4 KiB/4 KiB 和 64 KiB/64 KiB。
-
在主机和虚拟机之间共享文件的
virtiofs功能 - 客户机错误 RAS 恢复(可靠性、可用性、可服务性)
-
pvpanic事件日志记录设备 -
动态内存分配的
virtio-mem功能
因此,运行在 64 位 ARM 系统上的 RHEL 9 上托管的虚拟机将能够使用这些功能。
Jira:RHEL-43234[1]
RHEL 支持实时迁移附加了 NVIDIA vGPU 的虚拟机
有了此更新,您可以将附加了 vGPU 的虚拟机实时迁移到另一个 KVM 主机。目前,这可能只对带有 NVIDIA GPU 的虚拟机适用。
此功能仅适用于某些 NVIDIA Virtual GPU 软件驱动程序版本。如需了解更多详细信息,请参阅相关的 NVIDIA vGPU 文档。
Jira:RHELDOCS-16572[1]
nbdkit rebase 到版本 1.38
nbdkit 软件包已 rebase 到上游版本 1.38 ,其提供了各种 bug 修复和增强。最显著的更改如下:
- 块大小广告已被改进,并添加了新的只读过滤器。
- Python 和 OCaml 绑定支持服务器 API 的更多功能。
- 添加了内部结构完整性检查,使服务器更加强大。
有关更改的完整列表,请参阅 上游发行注记。
为 NetKVM 驱动程序添加的可调整数据包丢失预防
此更新为 NetKVM 驱动程序添加了 MinRxBufferPercent 参数,您可以使用它来降低在 Windows 虚拟机中接收的数据包丢失的风险。MinRxBufferPercent 的默认值为 0,设置更高的值(最多 100)可提高预防数据包丢失,但可能会在高网络流量期间增加 CPU 消耗。
4.19. 云环境中的 RHEL 复制链接链接已复制到粘贴板!
OpenTelemetry Collector 可用于 AWS 上的 RHEL
在 Amazon Web Services (AWS)上运行 RHEL 时,您现在可以使用 OpenTelemetry (OTel)框架来收集和发送遥测数据,如日志。您可以使用 OTel 框架维护和调试 RHEL 云实例。有了此更新,RHEL 包含 OTel Collector 服务,您可以使用它来管理日志。OTel Collector 收集、处理、转换和从不同格式和外部后端导出或导入到其中的日志。
您还可以使用 OTel Collector 聚合收集的数据,并生成对分析服务有用的指标。例如,您可以配置 OTel Collector ,来将数据发送到 Amazon Web Services (AWS) CloudWatch,这提高了 CloudWatch 从 RHEL 实例获取的数据的范围和准确性。
详情请参阅在 为公有云平台上的 RHEL 配置 OpenTelemetry Collector。
Jira:RHELDOCS-18125[1]
为 AWS 上的 RHEL 正式发布了 awscli2
使用 awscli2 工具,您现在可以使用 RHEL 实例中的 Amazon Web Services (AWS) API 来部署新的基础设施产品,并管理现有的部署。请注意,从 Red Hat Enterprise Linux 存储库安装 awscli2 确保从可信源安装 awscli2 ,并接收自动更新。因此,您可以收集有关云部署服务、管理基础架构资源的信息,并请参考 awscli2 提供的内置文档。
Jira:RHEL-14523[1]
现在默认禁用 Azure 上的日志收集
在以前的版本中,Microsoft Azure 中的 Windows Azure Linux Agent (WALA)默认收集虚拟机(VM)上的调试日志。但是,这些代理日志可能包含机密信息。为了提高数据安全性,现在默认禁用 WALA,且不会收集虚拟机上的任何数据。要重新启用日志收集,请执行以下操作:
-
编辑
/etc/waagent.conf文件。 -
将
Logs.Collect参数值设置为y。
Jira:RHEL-7273[1]
4.20. 支持性 复制链接链接已复制到粘贴板!
--api-url 选项现在可用
使用 -api-url 选项,您可以根据需要调用另一个 API。例如,OCP 集群的 API。示例:sos collect --cluster-type=ocp --cluster-option ocp.api-url=_<API_URL> --alloptions.
新的 -skip-cleaning-files 选项现在可用
sos report 命令的 --skip-cleaning-files 选项允许您跳过清理所选文件。选项支持 globs 和通配符。示例: sos report -o host --batch --clean --skip-cleaning-files 'hostname' 。
Jira:RHEL-30893[1]
plugin 选项名称现在使用连字符而不是下划线
要确保 sos 全局选项的一致性,plugin 选项名称现在只使用连字符而不是下划线,例如,网络插件 namespace_pattern 选项现在是 namespace-pattern,且必须使用-- plugin-option networking.namespace-pattern=<pattern> 语法来指定。
Jira:RHELDOCS-18655[1]
4.21. 容器 复制链接链接已复制到粘贴板!
RHEL 的镜像模式现在支持 FIPS 模式
有了此增强,您可以在构建 bootc 镜像时启用 FIPS 模式,来将系统配置为只使用 FIPS 批准的模块。您可以使用 bootc-image-builder,它需要在 Containerfile 配置中启用 FIPS 加密策略,或使用 RHEL Anaconda 安装,另外在 Containerfile 中启用 FIPS 模式,还需要在引导系统安装时添加 fips=1 内核参数。如需了解更多详细信息,请参阅 安装启用了 FIPS 模式的系统。
以下是一个 Containerfile,带有启用 fips=1 内核参数的指令:
Jira:RHELDOCS-18585[1]
RHEL 的镜像模式现在支持逻辑绑定的应用程序镜像
有了此增强,您可以支持生命周期绑定到基本 bootc 镜像的容器镜像。这有助于统一应用程序和操作系统的不同的操作过程,应用程序镜像可以作为镜像文件或等效文件从基础镜像引用。因此,您可以管理用于系统安装的多个容器镜像,例如,对于断开连接的安装,系统必须是镜像的,而不能仅是一台机器。
Jira:RHELDOCS-18666[1]
Podman 和 Buildah 支持将 OCI 工件添加到镜像索引中
有了此更新,您可以创建工件清单,并将其添加到镜像索引中。
buildah manifest add 命令现在支持以下选项:
-
创建工件清单的
--artifact选项 -
--artifact-type,--artifact-config-type,--artifact-layer-type,--artifact-exclude-titles和--subject选项来调整其创建的工件清单的内容。
buildah manifest annotate 命令现在支持以下选项:
-
--index选项对索引本身设置注解,而不是镜像索引中的一个条目 -
用来设置镜像索引的 subject 字段的
--subject选项。
buildah manifest create 命令现在支持 the- annotation 选项,来将注解添加到新镜像索引中。
提供了用于禁用 Podman 健康检查事件的选项
此增强在 [engine] 部分下的 containers.conf 配置文件中添加了一个新的 healthcheck_events 选项,以禁用 health_status 事件的生成。设置 healthcheck_events=false ,来禁用日志记录健康检查事件。
Podman 中的运行时资源更改是持久的
使用 podman update 命令更新容器配置是持久的。请注意,这个增强用于 SQLite 和 BoltDB 数据库后端。
完全支持构建多架构镜像
现在完全支持创建多架构容器镜像的 podman farm build 命令。
农场是在其中运行了 UNIX Podman 套接字的一组计算机。场中的节点可以有不同架构的机器。podman farm build 命令比 podman build --arch --platform 命令快。
您可以使用 podman farm build 来执行以下操作:
- 在农场的所有节点上构建一个镜像。
- 将场中所有节点上的镜像捆绑到清单列表中。
-
在所有农场节点上运行
podman build命令。 -
将镜像推送到
--tag选项指定的注册中心。 - 本地创建一个清单列表。
- 将清单列表推送到注册中心。
清单列表包含场中存在的每个原生架构类型的一个镜像。
Podman 中用于 pod 的 Quadlets 可用
从 Podman v5.0 开始,您可以使用 Quadlet 从 pod 描述中自动生成 systemd 服务文件。
Podman v2.0 RESTful API 已更新
新字段已添加到 libpod/images/json 端点中:
-
isManifest布尔值字段确定目标是否为清单。libpod端点返回镜像和清单列表。 -
镜像列表的
os和arch字段。
Kubernetes YAML 现在支持数据卷容器作为 init 容器
现在可以使用 "io.podman.annotations.kube.image.automount/$ctrname" 注解在 Kubernetes YAML 中指定自动挂载为卷的镜像的列表。使用 podman run --mount type=image,source=<image>,dst=<path>,subpath=<path> 的基于镜像的挂载现在支持一个新的选项 subpath,来仅将镜像的一部分挂载到容器中。
Container Tools 软件包已更新
现在提供了更新的 Container Tools RPM meta-package,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具。与之前的版本相比,Podman v5.0 包含以下值得注意的 bug 修复和增强:
-
podman manifest add命令现在支持一个新的--artifact选项,来将 OCI 工件添加到清单列表中。 -
podman create、podman run和podman push命令现在支持--retry和-retry-delay选项,来为推送和拉取镜像配置重试。 -
podman run和podman exec命令现在支持--preserve-fd选项,来将文件描述符的列表传到容器中。它是-preserve-fds的一种替代方法,其传递特定数量的文件描述符。 - Quadlet 现在支持模板单元。
-
podman kube play命令现在可以使用volume.podman.io/image注解创建基于镜像的卷。 -
使用
podman kube play命令创建的容器现在可以使用新注解io.podman.annotations.volumes-from来包含其他容器中的卷。 -
使用
podman kube play命令创建的 Pod 现在可以使用 pod 定义中的io.podman.annotations.userns 注解来设置用户命名空间选项。 -
podman create和podman run的--gpus选项现在与 Nvidia GPU 兼容。 -
podman create和podman run的--mount选项支持一个新的挂载选项no-dereference,来将符号链接而不是其取消引用的目标挂载到容器。 -
Podman 现在支持新的
--config全局选项,以指向可以获取注册中心登录凭据的 Docker 配置。 -
podman ps --format命令现在支持新的.Label格式指定符。 -
podman run --userns=auto的uidmapping和gidmapping选项现在可以使用@符号作为主机 ID 的前缀来映射到主机 ID。 - Quadlet 现在支持 systemd 样式的插入目录。
-
Quadlet 现在支持使用新的
.pod单元文件创建 pod。 -
Quadlet 现在在
.container文件中支持两个新键,Entrypoint和StopTimeout。 -
Quadlet 现在支持在
.container文件中多次指定Ulimit键,以便对容器设置多个ulimit。 -
Quadlet 现在支持在
.container文件中将Notify键设置为healthy,以便在健康检查开始传递时仅通知容器已启动。 -
用于容器的
podman inspect命令的输出已更改。Entrypoint字段从字符串改为字符串数组,StopSignal字段从整数改为字符串。 -
当在没有健康检查的情况下检查容器时,容器的
podman inspect命令现在对健康检查返回 nil 。 - 不再可以创建新的 BoltDB 数据库。尝试这样做会导致一个错误。所有新的 Podman 安装现在都使用 SQLite 数据库后端。现有的 BoltDB 数据库仍然可用。
- 对 CNI 网络的支持由构建标签控制,且默认不启用。
-
Podman 现在在
cgroup v1系统上使用时打印警告。对cgroup v1的支持已弃用,并将在以后的发行版本中删除。您可以设置PODMAN_IGNORE_CGROUPSV1_WARNING环境变量来压制警告。 - 现在,通过 Docker 兼容的 API 发送的网络统计信息是按每个接口的,而不是聚合的,这提高了 Docker 兼容性。
-
无根网络的默认工具已从
slirp4netns改为pasta,以提高性能。因此,名为pasta的网络不再被支持。 - 将多个过滤器与 List Images REST API 一起使用现在将使用 AND 而不是 OR 来组合过滤器,改进了 Docker 兼容性。
接受数组的多个 Podman CLI 选项的解析已改为不再接受字符串分隔的列表,而是要求多次传递选项。这些选项是:
-
podman manifest annotate和podman manifest add的--annotation选项 -
podman kube play的----configmap,--log-opt和--annotation选项
-
podman image trust set的--pubkeysfile选项-
podman create、podman run、podman push和podman pull的--encryption-key和--decryption-key选项 -
podman exec的--env-file选项,podman create和podman run的--bkio-weight-device,--device-read-bps,--device-write-bps,--device-read-iops,--device-write-iops,--device,--label-file,--chrootdirs,--log-opt,--env-file选项 -
--hooks-dir和--module全局选项
-
-
podman system reset命令不再等待运行的容器停止,而是立即发送SIGKILL信号。 -
podman network inspect命令现在包含在其输出中使用网络的正在运行的容器。 -
现在,除了 AMD 和 Intel 64 位构架(x86-64-v2)以及 64 位 ARM 架构(ARMv8.0-A)外,在其它架构上也支持
podman compose命令。 -
podman kube play和podman kube generate命令的-no-trunc选项已弃用。Podman 现在遵循 Kubernetes 的注解大小的规范,这删除了对此选项的需要。 -
来自
podman system connection命令的连接和来自podman farm命令的场现在被写入一个名为podman-connections.conf文件的新配置文件。因此,Podman 不再写入containers.conf文件。Podman 仍然尊重containers.conf中的现有连接。 -
大多数
podman farm子命令不再需要连接到场中的机器才能运行。 -
当容器镜像没有定义入口点时,
podman create和podman run命令不再需要在命令行中指定入口点。在这种情况下,一个空命令被传递给 OCI 运行时,产生的行为是特定于运行时的。 -
添加了一个新的 API 端点
/libpod/images/$name/resolve,以将潜在的短名称解析为可用来拉取镜像的完全限定镜像引用 Podman 的列表。
有关显著变化的更多信息,请参阅 上游发行注记。
为 Podman 和 Buildah 提供了 --compat-volumes 选项
您可以将新的 -compat-volumes 选项与 buildah build、podman build 和 podman farm build 命令一起使用。此选项触发了对使用 VOLUME 指令标记的目录内容的特殊处理,以便其内容随后只能被 ADD 和 COPY 指令修改。在这些位置通过 RUN 指令所做的任何更改将被丢弃。在以前的版本中,此行为是默认的,但现在默认被禁用。
一个新的 rhel10-beta/rteval 容器镜像
现在,Red Hat Container Registry 中提供实时 registry.redhat.io/rhel10-beta/rteval 容器镜像,以便对独立的 RHEL 安装运行延迟分析。使用 rhel10-beta/rteval 容器镜像,您可以在容器化设置中执行延迟测试,以确定此解决方案是否适用于您的实时工作负载,或者将结果与运行 rteval 的裸机进行比较。要使用此功能,请订阅带有实时支持的 RHEL。不提供调优指南。
Jira:RHELDOCS-18522[1]
containers.conf 文件现在是只读的
现在,存储在 containers.conf 文件中的系统连接和场信息是只读的。系统连接和场信息现在将被存储在 podman.connections.json 文件中,仅由 Podman 管理。Podman 继续支持旧的配置选项,如 [engine.service_destinations] 和 [farms] 部分。但是,如果需要,您仍然可以手动添加连接或场,但无法使用 podman system connection rm 命令从 containers.conf 文件中删除连接。
如果需要,您仍然可以手工编辑 containers.conf 文件。Podman v4.0 添加的系统连接在升级到 Podman v5.0 后保持不变。
macvlan 和 ipvlan 网络接口名称可在 containers.conf 中进行配置
要指定 macvlan 和 ipvlan 网络,您可以使用 containers.conf 配置文件中的新的 interface_name 字段来调整容器中创建的网络接口的名称。
Jira:RHELDOCS-18769[1]
bootc-image-builder 现在支持定义自定义 Kickstart 文件,并将其注入到 ISO 构建中
有了此增强,您可以通过设置用户、自定义分区、注入密钥来定义 Kickstart,并将 Kickstart 文件注入到 ISO 构建来配置安装过程。生成的磁盘镜像会创建一个自包含安装程序,其可在其他系统之间自动化和部署设备、断开系统、边缘设备。因此,使用 bootc-image-builder 创建自定义介质更加容易。
Jira:RHELDOCS-18734[1]
支持使用 bootc-image-builder 构建 GCP 镜像
通过使用 bootc-image-builder 工具,您现在可以生成 .gce 磁盘镜像,并在 Google Compute Engine (GCE)平台上置备实例。
Jira:RHELDOCS-18472[1]
支持使用 bootc-image-builder 创建和部署 VMDK
有了此增强,您可以使用 bootc-image-builder 工具从 bootc 镜像创建虚拟机磁盘(VMDK),并将 VMDK 镜像部署到 VMware vSphere。
Jira:RHELDOCS-18398[1]
podman pod inspect 命令现在提供一个 JSON 数组,而不考虑 pod 的数量
在以前的版本中,在检查单个 pod 时,podman pod inspect 命令会忽略 JSON 数组。有了此更新,podman pod inspect 命令现在在输出中生成一个 JSON 数组,而不考虑检查的 pod 的数量。
Jira:RHELDOCS-18770[1]
第 5 章 对外部内核参数的重要更改 复制链接链接已复制到粘贴板!
本章为系统管理员提供了与 Red Hat Enterprise Linux 9.5 一起分发的内核中的显著变化的总结。这些更改可能包括,例如,添加或更新的 proc 条目、sysctl 和 sysfs 默认值、引导参数、内核配置选项或任何明显的行为更改。
新内核参数
numa_cma=<node>:nn[MG][,<node>:nn[MG]]
[KNL,CMA]
为连续内存分配设置内核 numa 内存区域的大小。它将为指定的节点保留 CMA 区域。
启用 numa CMA 后,节点 nid 上的 DMA 用户将首先尝试从位于节点 nid 的 numa 区域分配缓冲区,如果分配失败,它们将回退到全局默认内存区域。
reg_file_data_sampling=
[x86]
控制寄存器文件数据采样(RFDS)漏洞的缓解。RFDS 是一个 CPU 漏洞,它可能允许用户空间推断之前存储在浮点寄存器、向量寄存器或整数寄存器中的内核数据值。RFDS 仅影响 Intel Atom 处理器。
值:
-
on:: 打开缓解 -
off:: 关闭缓解
此参数覆盖 CONFIG_MITIGATION_RFDS 默认设定的编译时间。当启用了其他基于 VERW 的缓解(如 MDS)时,缓解无法被禁用。要禁用 RFDS 缓解,所有基于 VERW 的缓解方案需要被禁用。
详情请查看:Documentation/admin-guide/hw-vuln/reg-file-data-sampling.rst
locktorture.acq_writer_lim=
[KNL]
为锁获取设置时间限制(以 jiffies 为单位)。完成后,超出此限制的获取将导致失败。
locktorture.bind_readers=
[KNL]
指定读卡器要绑定到的 CPU 的列表。
locktorture.bind_writers=
[KNL]
指定写卡器要绑定到的 CPU 的列表。
locktorture.call_rcu_chains=
[KNL]
指定要设置的自传播 call_rcu() 链的数量。它们用于确保在任意给定时间都有很高的出现 RCU 宽限期的概率。默认为 0,它会禁用这些 call_rcu() 链。
locktorture.long_hold=
[KNL]
指定偶尔长时间锁定保持时间的持续时间(以毫秒为单位)。默认值为 100 毫秒。选择 0 来禁用。
locktorture.nested_locks=
[KNL]
指定锁定 torture 要进行的最大锁嵌套深度,最多为 8 (MAX_NESTED_LOCKS)。指定 zero 来禁用。请注意,此参数对不支持嵌套获取的锁类型无效。
workqueue.default_affinity_scope=
选择用于未绑定工作队列的默认关联性范围。可以是 "cpu", "smt", "cache", "numa" 和 "system" 之一。默认为 "cache"。如需更多信息,请参阅 Documentation/core-api/workqueue.rst 中的 Affinity Scopes 部分。
这可以在启动后通过写入匹配的 /sys/module/workqueue/parameters 文件来进行更改。带有 "default" 关联性范围的所有工作队列都会被相应地更新。
locktorture.rt_boost=
[KNL]
进行实时锁优先级的定期测试。选择 0 来禁用,1 来仅提升 rt_mutex,2 来无条件提升。默认值为 2,它似乎是一个奇数选择,但因为禁用了抢占功能,其对于非实时启动锁应该无害。请注意,非实时互斥锁禁用提升。
locktorture.writer_fifo=
[KNL]
以 sched_set_fifo() 实时优先级运行写侧 locktorture kthreads。
locktorture.rt_boost_factor=
[KNL]
执行优先级提升的频率和时长的数字。这根据写卡器的数量而缩减,以便每单元时间的提升数量随着写卡器数量的增加而大致保持不变。但是,每次提升的持续时间都会随着 writer 数而增加。
microcode.force_minrev=
[X86]
格式: <bool>
为运行时微代码加载程序启用或禁用微代码最小修订强制。
module.async_probe=<bool>
[KNL]
当设置为 true 时,模块默认将使用异步探测。要为特定模块启用或禁用异步探测,请使用 <module>.async_probe 下记录的特定于模块的控制。当同时指定了 module.async_probe 和 <module>.async_probe 时,<module>.async_probe 优先于特定的模块。
module.enable_dups_trace
[KNL]
当设置了 CONFIG_MODULE_DEBUG_AUTOLOAD_DUPS 时,这意味着重复的 request_module() 调用将触发 WARN_ON() 而不是 pr_warn()。请注意,如果设置了 MODULE_DEBUG_AUTOLOAD_DUPS_TRACE,则始终将发出 WARN_ON(),这个选项不执行任何操作。
nfs.delay_retrans=
[NFS]
指定 NFSv4 客户端在服务器回复 NFS4ERR_DELAY 后,在返回 EAGAIN 错误之前重试请求的次数。仅在启用了 softerr 挂载选项且指定的值是 >= 0 时应用。
rcutree.do_rcu_barrier=
[KNL]
请求调用 rcu_barrier()。这是受到限制的,因此可以安全地对 sysfs 变量执行用户空间测试(如果他们选择的话)。如果在 RCU grace-period machinery 完全激活之前被触发了,则会出现 EAGAIN 错误。
rcuscale.minruntime=
[KNL]
设置最小测试运行时间(以秒为单位)。这不会影响数据收集间隔,而是允许更好地测量诸如 CPU 消耗的事情。
rcuscale.writer_holdoff_jiffies=
[KNL]
宽限期之间额外的写入端延迟,但以 jiffies 为单位。默认值零表示没有延迟。
rcupdate.rcu_cpu_stall_notifiers=
[KNL]
提供 RCU CPU 停滞通知程序,但在 RCU_CPU_STALL_NOTIFIER Kconfig 选项的帮助文本中看到警告。TL;DR :您几乎肯定不需要 rcupdate.rcu_cpu_stall_notifiers。
rcupdate.rcu_task_lazy_lim=
[KNL]
指定 CPU 上的回调次数,将取消该 CPU 上的惰性。使用 -1 禁用惰性的取消,但要注意这样做会因为回调泛滥而增加 OOM 的危险。
rcupdate.rcu_tasks_lazy_ms= ++
[KNL]
对 call_rcu_tasks() 的 RCU 任务异步批处理设置超时(以毫秒为单位)。负值将采用默认值。零值将禁用批处理。对于 synchronize_rcu_tasks(),始终禁用批处理。
rcupdate.rcu_tasks_rude_lazy_ms=
[KNL]
对 call_rcu_tasks_rude () 的 RCU 任务 Rude 异步回调批处理设置超时(以毫秒为单位)。负值将采用默认值。零值将禁用批处理。对于 synchronize_rcu_tasks_rude(),始终禁用批处理。
rcupdate.rcu_tasks_trace_lazy_ms=
[KNL]
对 call_rcu_tasks_trace()的 RCU 任务跟踪异步回调批处理设置超时(以毫秒为单位)。负值将采用默认值。零值将禁用批处理。对于 synchronize_rcu_tasks_trace (),始终禁用批处理。
spectre_bhi=
[X86]
控制 Branch History Injection (BHI)(BHI)漏洞的缓解。此设置会影响 HW BHI 控制和 SW BHB 清除顺序的部署。
值:
on- (默认)根据需要启用 HW 或 SW 缓解。
off- 禁用缓解。
unwind_debug
[X86-64]
启用 unwinder 调试输出。这可用于调试某些展开器错误情况,包括损坏的堆栈和坏的或缺失的展开器元数据。
workqueue.cpu_intensive_thresh_us=
为超过这个阈值运行的每个 cpu 工作项目被自动被视为 CPU 密集型,并从并发管理中排除,以防止它们明显延迟其他每个 cpu 工作项目。默认值为 10000 (10ms)。
如果设置了 CONFIG_WQ_CPU_INTENSIVE_REPORT,内核将报告重复违反此阈值的工作功能。对于使用 WQ_UNBOUND 工作队列,它们可能是好的候选者。
workqueue.cpu_intensive_warning_thresh=<uint> ,如果设置了 CONFIG_WQ_CPU_INTENSIVE_REPORT,内核将报告反复违反 intensive_threshold_us 的工作功能。要防止假的警告,只有在工作函数违反了这个阈值多次数后才开始打印。
默认值为 4 次。0 禁用警告。
workqueue.default_affinity_scope=
选择用于未绑定工作队列的默认关联性范围。可以是 "cpu", "smt", "cache", "numa" 和 "system" 之一。默认为 "cache"。如需更多信息,请参阅 Documentation/core-api/workqueue.rst 中的 Affinity Scopes 部分。
这可以在启动后通过写入匹配的 /sys/module/workqueue/parameters 文件来进行更改。带有 "default" 关联性范围的所有工作队列都会被相应地更新。
xen_msr_safe=
[X86,XEN]
格式: <bool>
选择在作为 Xen PV 客户机运行时,始终使用非错误(安全)MSR 访问功能。默认值由 CONFIG_XEN_PV_MSR_SAFE 控制。
更新的内核参数
clearcpuid=
X[,X...] [X86]
为内核禁用 CPUID 功能 X。请参阅数字 X。
请注意,特定于 Linux 的位不一定比内核选项稳定,但特定于提供商的位应该比内核选项稳定。X 也可以是出现在标志中的字符串:/proc/cpuinfo 中的行,它没有上述不稳定问题。但是,并非所有功能都在 /proc/cpuinfo 中有名称。请注意,使用这个选项会玷污内核。
另请注意,直接调用 CPUID 或使用该功能而无需检查任何内容的用户程序仍会看到它。这只是防止它被内核使用,或者在 /proc/cpuinfo 中显示。另外请注意,如果您禁用了一些关键位,内核可能会出现故障。
cma_pernuma=nn[MG]
[KNL,CMA]
设置用于连续内存分配的每个内存区域的内核的大小。值 0 完全禁用每个 numa CMA。并且未指定这个选项,则默认值为 0 。启用每个numa CMA 后,节点 nid 上的 DMA 用户首先尝试从节点 nid 中的 pernuma 区域分配缓冲区,如果分配失败,它们将回退到全局默认内存区域。
csdlock_debug=
[KNL]
启用跨 CPU 功能调用处理的调试附加组件。当打开时,如果检测到 CPU 挂起,会将额外的调试数据打印到控制台,并且再次 ping CPU 以尝试解决挂起的情况。这个选项的默认值取决于 CSD_LOCK_WAIT_DEBUG_DEFAULT Kconfig 选项。
<module>.async_probe[=<bool>]
[KNL]
如果没有指定 <bool> 值,或者指定的值不是有效的 <bool>,请对此模块启用异步探测。否则,按照 <bool> 值的指示,对此模块启用或禁用异步探测。另请参阅:module.async_probe
earlycon=
[KNL]
输出早期控制台设备和选项。
当与无选项一起使用时,早期控制台是由设备树选择的节点中的 stdout-path 属性或 ACPI SPCR (如果平台支持)决定的。
cdns,<addr>[,options] 在指定地址的 Cadence (xuartps)串行端口上启动一个早期的、轮询模式的控制台。唯一支持的选项是波特率。如果没有指定波特率,则必须已设置和配置了串行端口。
uart[8250],io,<addr>[,options[,uartclk]]uart[8250],mmio,<addr>[,options[,uartclk]]uart[8250],mmio32,<addr>[,options[,uartclk]]uart[8250],mmio32be,<addr>[,options[,uartclk]]uart[8250],0x<addr>[,options]
在位于指定的 I/O 端口或 MMIO 地址的 8250/16550 UART 上启动一个早期的、轮询模式的控制台。MMIO 寄存器间地址步幅是 8 位(mmio)或 32 位(mmio32 或 mmio32be)。如果没有 [io|mmio|mmio32|mmio32be], 假设 <addr> 等同于 'mmio'。'options' 的指定格式与 "console=ttyS<n>" 描述的格式相同;如果未指定,h/w 不会被初始化。"uartclk' 是 uart 时钟频率;如果未指定,它被设置为 'BASE_BAUD' * 16。
earlyprintk=
[X86,SH,ARM,M68k,S390]
earlyprintk=vga earlyprintk=sclp earlyprintk=xen earlyprintk=serial[,ttySn[,baudrate]] earlyprintk=serial[,0x…[,baudrate]] earlyprintk=ttySn[,baudrate] earlyprintk=dbgp[debugController#] earlyprintk=pciserial[,force],bus:device.function[,baudrate] earlyprintk=xdbc[xhciController#]
当内核在正常的控制台被初始化前崩溃时,earprintk 很有用。默认情况下不会启用它,因为它有一些外观问题。
当实际控制台接管时,附加",keep"来不禁用它。
一次只能使用 vga、efi、serial 或 USB 调试端口之一。
目前,只能按照名称指定 ttyS0 和 ttyS1。通过将 ttySn 替换为 I/O 端口地址(如 earlyprintk=serial,0x1008,115200)来在某些架构 (至少 x86 和 arm )上明确指定其他 I/O 端口,您可以在 /proc/tty/driver/serial: 2: uart:ST16650V2 port:00001008 irq:18 中找到给定设备的端口。
与标准串行驱动程序的交互并不好。
VGA 和 EFI 输出最终被实际的控制台覆盖。
xen 选项只能在 Xen 域中使用。
sclp 输出只能在 s390 上使用。
可选的 "force" 到 "pciserial" 允许使用 PCI 设备,即使其类代码不是 UART 类。
iommu.strict=
[ARM64, X86, S390]
配置 TLB 无效行为。
格式:{ "0" | "1" }
0- lazy 模式- 请求 DMA 取消映射操作使用硬件 TLB 的延迟无效,以减少设备隔离为代价来提高吞吐量。如果相关 IOMMU 驱动程序不支持,将回退到 strict 模式。
1- Strict 模式- DMA 取消映射操作会同步使 IOMMU 硬件 TLB 无效。
unset- 使用 CONFIG_IOMMU_DEFAULT_DMA_{LAZY,STRICT} 的值。
在 x86 上,通过传统的特定于驱动程序的一个选项指定的 strict 模式具有优先权。
mem_encrypt=
[x86_64]
AMD 安全内存加密(SME)控制。
有效参数:on、off
默认:off
mem_encrypt=on: Activate SME mem_encrypt=off: 不要激活 SME
mitigations=
[X86,PPC,S390,ARM64]
控制可选的 CPU 漏洞的缓解。这是一组策展的、架构独立的选项,每个选项都是现有的特定架构选项的聚合。
值: off
禁用所有可选的 CPU 缓解。这提高了系统性能,但可能将用户暴露给几个 CPU 漏洞。等同于:如果 nokaslr,则 kpti=0 [ARM64] gather_data_sampling=off [X86] kvm.nx_huge_pages=off [X86] l1tf=off [X86] mds=off [X86] mmio_stale_data=off [X86] no_entry_flush [PPC] no_uaccess_flush [PPC] nobp=0 [S390] nopti [X86,PPC] nospectre_bhb [ARM64] nospectre_v1 [X86,PPC] nospectre_v2 [X86,PPC,S390,ARM64] reg_file_data_sampling=off [X86] retbleed=off [X86] spec_rstack_overflow=off [X86] spec_store_bypass_disable=off [X86,PPC] spectre_bhi=off [X86] spectre_v2_user=off [X86] srbds=off [X86,INTEL] ssbd=force-off [ARM64] tsx_async_abort=off [X86]
nosmap
[PPC]
禁用 SMAP (Supervisor Mode Access Prevention),即使处理器支持它。
nosmep
[PPC64s]
禁用 SMEP (Supervisor Mode Execution Prevention),即使处理器支持它。
nox2apic
[x86_64,APIC]
不要启用 x2APIC 模式。
这个参数将在 IA32_XAPIC_DISABLE_STATUS MSR 中设置了 LEGACY_XAPIC_DISABLED 位的系统上被忽略。
panic_print=
发生 panic 时用于打印系统信息的位掩码。用户可以选择以下位的组合:
- 位 0:打印所有任务信息
- 位 1:打印系统内存信息
- 位 2:打印计时器信息
- 位 3:如果 CONFIG_LOCKDEP 是 on ,则打印锁信息
- 位 4:打印 ftrace 缓冲区
- 位 5:打印缓冲区中的所有 printk 消息
- 位 6:打印所有 CPU 回溯(如果 arch 中有)
这个选项可能会打印 很多 行,因此有在日志中丢失旧消息的风险。谨慎使用这个选项,您可以考虑使用 "log_buf_len" 和此选项设置更大的日志缓冲。
pcie_aspm=
[PCIE]
强制启用或禁用 PCIe 活动状态电源管理。
值:
off- 根本不要触碰 ASPM 配置。保持固件所完成的任何配置不变。
force- 即使在声称不支持它的设备上也启用 ASPM。
强制打开 ASPM 可能会导致系统锁定。
s390_iommu=
[HW,S390]
设置 s390 IOTLB 刷新模式。
值:
strict- 使用严格的清除每个未映射操作将导致 IOTLB 刷新。
default- 在重复使用前是惰性刷新,其速度更快。
Deprecated- equivalent to iommu.strict=1.
spectre_v2=
[x86]
控制 Spectre 变体 2(间接分支推测)漏洞的缓解。默认的操作可以防止内核免受用户空间的攻击。
值:
on- 无条件启用,意味着 spectre_v2_user=on。
off- 无条件禁用,意味着 spectre_v2_user=off。
auto- 内核检测您的 CPU 型号是否存在漏洞。
选择 'on' 将会,选择'auto' 可能会在运行时根据 CPU、可用的微码、 CONFIG_MITIGATION_RETPOLINE 配置选项的设置以及构建内核的编译器选择缓解方法。
usbcore.quirks=
[USB]
添加内置 USB 内核 quirk 列表的 quirk 条目列表。列表条目用逗号分开。每个条目的形式为 VendorID:ProductID:Flags。ID 是 4 位十六进制数,标记是一组字母。每个字母都会改变内置的 quirk ; 如果当前被清除,则设置它,如果当前是设置的,则清除它。字母的含义如下:
- a = USB_QUIRK_STRING_FETCH_255(不能使用 255 字节读获取字符串描述符);
- b = USB_QUIRK_RESET_RESUME (设备无法正确恢复,因此重置它);
- c = USB_QUIRK_NO_SET_INTF (设备无法处理 Set-Interface 请求);
- d = USB_QUIRK_CONFIG_INTF_STRINGS (设备无法处理其配置或接口字符串);
- e = USB_QUIRK_RESET (设备无法被重置(例如 morph 设备), 不要使用重置);
-
F = USB_QUIRK_HONOR_BNUMINTERFACES (设备有比
bNumInterfaces计数更多的接口描述,无法处理与这些接口的通信); - g = USB_QUIRK_DELAY_INIT (在读设备描述符后,设备在初始化过程中需要暂停);
- H = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL (对于高速和超高速中断端点,USB 2.0 和 USB 3.0 规范要求以微帧为单位的间隔(1微帧=125微秒)被计算为间隔 = 2 ^(bInterval-1)。具有此怪癖的设备会将其 bInterval 报告为此计算的结果,而不是计算中使用的指数变量);
- i = USB_QUIRK_DEVICE_QUALIFIER (设备无法处理 device_qualifier 描述符请求);
- J = USB_QUIRK_IGNORE_REMOTE_WAKEUP (设备产生假唤醒,忽略远程唤醒功能);
- k = USB_QUIRK_NO_LPM (设备无法处理链路电源管理);
- l = USB_QUIRK_LINEAR_FRAME_INTR_BINTERVAL (设备将其 bInterval 报告为线性帧,而不是 USB 2.0 计算);
- M = USB_QUIRK_DISCONNECT_SUSPEND (在暂停前需要断开设备,以防止假唤醒);
- n = USB_QUIRK_DELAY_CTRL_MSG (在每个控制消息后设备需要暂停);
- o = USB_QUIRK_HUB_SLOW_RESET (在重置其端口后,Hub 需要额外的延迟);
- P = USB_QUIRK_SHORT_SET_ADDRESS_REQ_TIMEOUT (将 SET_ADDRESS 请求的超时从 5000 ms 减到 500 ms);
示例:quirks=0781:5580:bk,0a5c:5834:gij
删除的内核参数
-
[BUGS=X86]
noclflush:: 不要使用 CLFLUSH 指令。 -
Workqueue.disable_numa -
[X86]
noexec -
[BUGS=X86-32]
nosep:: 禁用 x86 SYSENTER/SYSEXIT 支持。 -
[X86]
nordrand:: 禁用 RDRAND 的内核使用。 -
thermal.nocrt
新的 sysctl 参数
oops_limit
当未设置 panic_on_oops 时,内核应在多少个 oopses 后 panic 。把它设置为 0 来禁止检查计数。把它设置为 1 与设置 panic_on_oops=1 的作用一样。默认值为 10000。
warn_limit
当未设置 panic_on_warn 时,内核应在多少内核警告后 panic 。把它设置为 0 来禁止检查警告计数。把它设置为 1 与设置 panic_on_warn=1 的作用一样。默认值为 0。
kexec_load_limit_panic
这个参数指定了对通过 crash 镜像调用系统调用 kexec_load 和 kexec_file_load 的次数的限制。它只能使用比当前的值更严格的值进行设置。
值:
-1- 对 kexec 的无限调用。这是默认设置。
N- 剩余的调用数。
kexec_load_limit_reboot
与 kexec_load_limit_panic 类似,但用于普通镜像。
numa_balancing_promote_rate_limit_MBps
不同内存类型之间过高的提升或降级吞吐量可能会损害应用程序延迟。您可以使用此参数来对提升吞吐量进行速率限制。每节点的最大提升吞吐量(以 MB/s 为单位)被限制为不超过设置值。
将此参数设置为小于 PMEM 节点写带宽的 1/10。
更新了 sysctl 参数
kexec_load_disabled
一个切换开关,表示系统调用 kexec_load 和 kexec_file_load 是否被禁用了。这个值默认为 0 (false: kexec kexecload 启用了),但可以被设置为 1 (true: kexec observabilityload 禁用了)。
为 true 后,kexec 将不再被使用,切换开关无法被设置回 false。这允许在禁用 syscall 前加载 kexec 镜像,以允许系统在不更改的情况下设置(并在之后使用)镜像。通常与 'modules_disabled'_ sysctl 一起使用。
panic_print
发生 panic 时用于打印系统信息的位掩码。用户可以选择以下位的组合:
- 位 0 打印所有任务信息
- 位 1 打印系统内存信息
- 位 2 打印计时器信息
-
如果
CONFIG_LOCKDEP为 on ,则位 3 打印锁信息 - 位 4 打印 ftrace 缓冲区
- 位 5 打印缓冲区中的所有 printk 消息
- 位 6 打印所有 CPU 回溯追踪(如果在 arch 中可用)
sched_energy_aware
启用或禁用 Energy Aware Scheduling (EAS)。EAS 在其可运行的平台上自动启动(即具有非对称 CPU 拓扑的平台,并且有 Energy Model 可用)。如果您的平台恰好符合 EAS 的要求,但您不想使用它,请将此值更改为 0。在非 EAS 平台上,写操作失败,读不会返回任何内容。
第 6 章 设备驱动程序 复制链接链接已复制到粘贴板!
6.1. 新驱动程序 复制链接链接已复制到粘贴板!
| 描述 | Name | 仅限于构架 |
|---|---|---|
| IAA 压缩加速器加密驱动程序 | iaa_crypto | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | intel_qat | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | qat_4xxx | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | qat_c3xxx | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | qat_c3xxxvf | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | qat_c62x | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | qat_c62xvf | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | qat_dh895xcc | AMD 和 Intel 64 位构架 |
| Intel® QuickAssist Technology - 0.6.0 | qat_dh895xccvf | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| bcm-phy-ptp | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| mt7925-common | 64 位 ARM 架构、AMD 和 Intel 64 位构架 | |
| mt7925e | 64 位 ARM 架构、AMD 和 Intel 64 位构架 | |
| mt792x-lib | 64 位 ARM 架构、AMD 和 Intel 64 位构架 | |
| PCI 总线上 Bosch M_CAN 控制器的 CAN 总线驱动程序 | m_can_pci | IBM Power 系统、AMD 和 Intel 64 位构架 |
| Bosch M_CAN 控制器的 CAN 总线驱动程序 | m_can | IBM Power 系统、AMD 和 Intel 64 位构架 |
| 8 个设备 USB2CAN 接口的 CAN 驱动程序 | usb_8dev | IBM Power 系统、AMD 和 Intel 64 位构架 |
| EMS Dr 的 CAN 驱动程序。Thomas Wuensche CAN/USB 接口 | ems_usb | IBM Power 系统、AMD 和 Intel 64 位构架 |
| Kvaser CAN/USB 设备的 CAN 驱动程序 | kvaser_usb | IBM Power 系统、AMD 和 Intel 64 位构架 |
| PEAK-系统 USB 适配器的 CAN 驱动程序 | peak_usb | IBM Power 系统、AMD 和 Intel 64 位构架 |
| Intel® Infrastructure Data Path Function Linux 驱动程序 | idpf | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| Marvell 88Q2XXX 100/1000BASE-T1 Automotive Ethernet PHY 驱动程序 | marvell-88q2xxx | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| Marvell Octeon EndPoint NIC 驱动程序 | octeon_ep | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| Microchip 251x/25625 CAN 驱动程序 | mcp251x | AMD 和 Intel 64 位构架 |
| Microchip MCP251xFD 系列 CAN 控制器驱动程序 | mcp251xfd | AMD 和 Intel 64 位构架 |
| NXP imx8 DWMAC Specific Glue 层 | dwmac-imx | 64 位 ARM 架构 |
| bcm-phy-ptp | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| Realtek 802.11ax wireless 8852C 驱动程序 | rtw89_8852c | 64 位 ARM 架构、AMD 和 Intel 64 位构架 |
| Realtek 802.11ax wireless 8852CE 驱动程序 | rtw89_8852ce | 64 位 ARM 架构、AMD 和 Intel 64 位构架 |
| 串行线 CAN 接口 | slcan | IBM Power 系统、AMD 和 Intel 64 位构架 |
| PEAK PCAN PCIe/M.2 FD 系列卡的 Socket-CAN 驱动程序 | peak_pciefd | IBM Power 系统、AMD 和 Intel 64 位构架 |
| bcm-phy-ptp | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| mt7925-common | 64 位 ARM 架构、AMD 和 Intel 64 位构架 | |
| mt7925e | 64 位 ARM 架构、AMD 和 Intel 64 位构架 | |
| mt792x-lib | 64 位 ARM 架构、AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| AMD HSMP Platform Interface 驱动程序 - 2.0 | amd_hsmp | AMD 和 Intel 64 位构架 |
| AMD Platform Management Framework 驱动程序 | amd-pmf | AMD 和 Intel 64 位构架 |
| Intel TPMI 枚举模块 | intel_vsec_tpmi | AMD 和 Intel 64 位构架 |
| Intel TPMI SST 驱动程序 | isst_tpmi | AMD 和 Intel 64 位构架 |
| Intel TPMI UFS 驱动程序 | intel-uncore-frequency-tpmi | AMD 和 Intel 64 位构架 |
| Intel Uncore Frequency 通用模块 | intel-uncore-frequency-common | AMD 和 Intel 64 位构架 |
| Intel Uncore Frequency Limits 驱动程序 | intel-uncore-frequency | AMD 和 Intel 64 位构架 |
| Intel WMI Thunderbolt 强制电源驱动程序 | intel-wmi-thunderbolt | AMD 和 Intel 64 位构架 |
| Mellanox PMC 驱动程序 | mlxbf-pmc | 64 位 ARM 架构 |
| intel-hid | AMD 和 Intel 64 位构架 | |
| isst_tpmi_core | AMD 和 Intel 64 位构架 |
| 描述 | Name | 仅限于构架 |
|---|---|---|
| AMD XCP 平台设备 | amdxcp | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| DRM 执行上下文 | drm_exec | |
| 范围子分配器帮助程序 | drm_suballoc_helper | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| regmap-ram | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| regmap-raw-ram | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| regmap-ram | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| regmap-raw-ram | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| regmap-ram | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| regmap-raw-ram | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 | |
| Arm FF-A 接口驱动程序 | ffa-module | 64 位 ARM 架构 |
| NVIDIA BlueField-3 GPIO 驱动程序 | gpio-mlxbf3 | 64 位 ARM 架构 |
| passthrough 设备的 I/O 地址空间管理 | iommufd | |
| CS42L43 核心驱动程序 | cs42l43 | AMD 和 Intel 64 位构架 |
| CS42L43 SoundWire 驱动程序 | cs42l43-sdw | AMD 和 Intel 64 位构架 |
| MEI GSC 代理 | mei_gsc_proxy | AMD 和 Intel 64 位构架 |
| pwrseq_emmc | 64 位 ARM 架构 | |
| pwrseq_simple | 64 位 ARM 架构 | |
| Synopsys DWC MSHC 的 SDHCI 平台驱动程序 | sdhci-of-dwcmshc | 64 位 ARM 架构 |
| arm_cspmu_module | 64 位 ARM 架构 | |
| NVIDIA pinctrl 驱动程序 | pinctrl-mlxbf3 | 64 位 ARM 架构 |
| NXP i.MX93 电源域驱动程序 | imx93-pd | 64 位 ARM 架构 |
| Intel RAPL TPMI 驱动程序 | intel_rapl_tpmi | AMD 和 Intel 64 位构架 |
| Mellanox BlueField 电源驱动程序 | pwr-mlxbf | 64 位 ARM 架构 |
| NXP i.MX93 src 驱动程序 | imx93-src | 64 位 ARM 架构 |
| 通过 configfs 提供信任的安全模块证明报告 | tsm | AMD 和 Intel 64 位构架 |
6.2. 更新的驱动程序 复制链接链接已复制到粘贴板!
| 描述 | Name | 当前版本 | 仅限于构架 |
|---|---|---|---|
| Broadcom MegaRAID SAS 驱动程序 | megaraid_sas | 07.727.03.00-rc1 | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| Microchip Smart 系列控制器的驱动程序 | smartpqi | 2.1.24-046 | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| Emulex LightPulse Fibre Channel SCSI 驱动程序 | lpfc | 0:14.2.0.16 | 64 位 ARM 架构、IBM Power 系统、AMD 和 Intel 64 位构架 |
| MPI3 Storage Controller Device 驱动程序 | mpi3mr | 8.5.0.0.50 |
第 7 章 可用的 BPF 功能 复制链接链接已复制到粘贴板!
本章提供了此 Red Hat Enterprise Linux 9 版本中提供的 Berkeley Packet Filter (BPF)功能的完整列表。表包括以下列表:
本章包含 bpftool feature 命令自动生成的输出。
| 选项 | value |
|---|---|
| unprivileged_bpf_disabled | 2 (bpf() 系统调用限制为特权用户,管理员可以改变。) |
| bpf_jit_enable | 1(启用) |
| bpf_jit_harden | 1(启用) |
| bpf_jit_kallsyms | 1(启用) |
| bpf_jit_limit | 528482304 |
| CONFIG_BPF | y |
| CONFIG_BPF_SYSCALL | y |
| CONFIG_HAVE_EBPF_JIT | y |
| CONFIG_BPF_JIT | y |
| CONFIG_BPF_JIT_ALWAYS_ON | y |
| CONFIG_DEBUG_INFO_BTF | y |
| CONFIG_DEBUG_INFO_BTF_MODULES | y |
| CONFIG_CGROUPS | y |
| CONFIG_CGROUP_BPF | y |
| CONFIG_CGROUP_NET_CLASSID | y |
| CONFIG_SOCK_CGROUP_DATA | y |
| CONFIG_BPF_EVENTS | y |
| CONFIG_KPROBE_EVENTS | y |
| CONFIG_UPROBE_EVENTS | y |
| CONFIG_TRACING | y |
| CONFIG_FTRACE_SYSCALLS | y |
| CONFIG_FUNCTION_ERROR_INJECTION | y |
| CONFIG_BPF_KPROBE_OVERRIDE | n |
| CONFIG_NET | y |
| CONFIG_XDP_SOCKETS | y |
| CONFIG_LWTUNNEL_BPF | y |
| CONFIG_NET_ACT_BPF | m |
| CONFIG_NET_CLS_BPF | m |
| CONFIG_NET_CLS_ACT | y |
| CONFIG_NET_SCH_INGRESS | m |
| CONFIG_XFRM | y |
| CONFIG_IP_ROUTE_CLASSID | y |
| CONFIG_IPV6_SEG6_BPF | y |
| CONFIG_BPF_LIRC_MODE2 | n |
| CONFIG_BPF_STREAM_PARSER | y |
| CONFIG_NETFILTER_XT_MATCH_BPF | m |
| CONFIG_BPFILTER | n |
| CONFIG_BPFILTER_UMH | n |
| CONFIG_TEST_BPF | m |
| CONFIG_HZ | 1000 |
| bpf() syscall | 可用 |
| 大型程序大小限制 | 可用 |
| Bounded loop support | 可用 |
| ISA extension v2 | 可用 |
| ISA extension v3 | 可用 |
| 程序类型 | 可用的帮助程序 |
|---|---|
| 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 |
| 映射类型 | 可用 |
|---|---|
| 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 | 是 |
第 8 章 程序错误修复 复制链接链接已复制到粘贴板!
这部分论述了 Red Hat Enterprise Linux 9.5 中修复的、对用户有严重影响的 bug。
8.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
Kickstart 安装现在可以正确地应用 dhcpclass 选项
使用 NetworkManager API ,Kickstart 配置的应用程序被从 NetworkManager 移到 Anaconda。在以前的版本中,Anaconda 仅处理 %pre 部分中指定的命令。在安装过程中,这个更改导致在 Kickstart network 命令中遗漏了 dhcpclass 选项,这导致网络配置的应用程序不正确。有了此更新,使用 NetworkManager API 在 Anaconda 中处理 dhcpclass 选项已被修正。因此,在 Kickstart 配置中定义的 dhcpclass 选项现在在安装过程中可以被正确地应用。
改进了虚拟网络设备配置过程中安装程序的稳定性
在以前的版本中,当在 GUI 中的现有虚拟网络设备(如 Team 或 Bond)上创建 VLAN 网络设备时,安装程序可能会崩溃。当在配置更新新设备状态的用户界面的过程中,底层设备的状态发生变化时会出现这种情况。
有了此更新,在 GUI 中刷新联网状态的进程得到了优化,以处理虚拟设备状态中的变化。因此,安装程序不再因 GUI 中配置的虚拟网络设备的更改而崩溃。
当 rhc_auth 包含激活码时,rhc 系统角色不会在注册的系统上失败
在以前的版本中,当使用 rhc_auth 参数中指定的激活码在注册的系统上执行 playbook 文件时,会出现失败。这个问题已解决。现在,可以在已经注册的系统上执行 playbook 文件,即使在 rhc_auth 参数中提供了激活码。
过时的网络链接配置文件不再会导致操作系统无法启动
在以前的版本中,RHEL 安装程序在安装过程中创建了过时的 /etc/systemd/network/ 链接配置文件。过时的配置文件会干扰预期的网络设置。如果是从通过 TCP 的 NVMe 引导,则会导致无法引导的系统。有了此修复,用户不再需要手动删除 /etc/systemd/network/10-anaconda-ifname-nbft*.link 文件,并通过运行 dracut -f 命令重新生成 initramfs。
8.2. 安全性 复制链接链接已复制到粘贴板!
从 OpenSSL EC 签名中删除了非恒定时间代码路径
在以前的版本中,OpenSSL 为 Elliptic Curve Digital Signature Algorithm (ECDSA)签名使用非恒定时间代码路径。这可能会类似 Minerva 攻击那样向攻击公开签名操作,并可能泄露私钥。此更新删除了 OpenSSL EC 签名中的非恒定时间代码路径,因此不再存在此漏洞。
SELinux 策略正确标记了 npm
在以前的版本中,npm 服务可执行文件使用通用的 lib_t SELinux 类型进行了标记。因此,无法执行 npm。在此更新中,已使用 bin_t 类型在 SELinux 策略中对 npm 可执行文件进行了明确标记。因此,npm 服务成功启动,并在 unconfined_service_t 域中运行。
SELinux 策略为 sysadm_r 用户添加了规则,以通过 sudo 定义输入/输出日志目录
在以前的版本中,当在 sudo 配置中定义了 iolog_dir 选项时,SELinux 策略不包含允许受限的管理员使用 sudo 运行任何指定输入/输出日志目录的命令的规则。因此,sysadm_r 角色中受限的管理员无法通过使用带有 iolog_dir 选项的 sudo 运行命令。此更新在 SELinux 策略中添加了一条规则,因此 sysadm_r 用户可以通过使用带有 iolog_dir 的 sudo 运行命令。
/proc 的审计规则现在在引导过程中可以被正确载入
在此次更新之前,系统无法在引导阶段为 /proc 目录加载审计监视规则。因此,管理员必须稍后手动加载规则,并且无法在引导过程中应用规则。这个 bug 已被修复,系统现在可以在引导阶段将相关的审计规则载入到 /proc 。
在不可变模式下的审计不再阻止 auditd 启动
在以前的版本中,如果通过添加 -e 2 规则将审计系统设置为不可变模式,则在重启 auditd 服务或运行 augenrules --load 命令时,augenrules 命令会以返回码 1 而不是 0 退出。因此,系统会将返回码 1 解释为一个错误,这阻止其在引导时启动 auditd。有了此更新,当审计被设置为不可变模式时,augenrules 以 0 返回码退出,且系统可以在此场景下正确启动 auditd。
IPsec ondemand 连接不再无法建立
在以前的版本中,当使用 TCP 协议设置带有 ondemand 选项的 IPsec 连接时,连接无法建立。有了此更新,新的 Libreswan 软件包确保初始 IKE 协商通过 TCP 完成。因此,Libreswan 可以成功地建立连接,即使在 IKE 协商的 TCP 模式下。
Jira:RHEL-51879[1]
update-ca-trust extract 不再无法提取具有长名称的证书
当从信任库提取证书时,trust 工具会在内部从证书的对象标签派生文件名。对于足够长的标签,生成的路径可能之前已超过系统的最大文件名长度。因此,trust 工具无法创建具有超过系统的最大文件名长度的文件。有了此更新,派生的名称总是被截断为 255 个字符以内。因此,当证书的对象标签太长时,文件创建不会失败。
Jira:RHEL-58899[1]
8.3. 订阅管理 复制链接链接已复制到粘贴板!
subscription-manager 不再在终端中保留非必要的文本
从 RHEL 9.1 开始,subscription-manager 在处理任何操作时会显示进度信息。在以前的版本中,对于某些语言(通常为非拉丁语言),在操作完成后不会清除进度消息。有了这个更新,在操作完成后,所有信息都会被正确清除。
如果您之前禁用了进度信息,您可以输入以下命令重新启用它们:
subscription-manager config --rhsm.progress_messages=1
# subscription-manager config --rhsm.progress_messages=1
Bugzilla:2136694[1]
8.4. 软件管理 复制链接链接已复制到粘贴板!
dnf autoremove 命令行为现在与手册页文档一致,命令现在会考虑软件包安装原因
在以前的版本中,当使用 dnf autoremove 命令删除不必要的软件包时,标记为 installonly 的安装的软件包被删除。但是,dnf (8) 手册页文档包含 installonly软件包从 dnf autoremove 操作中排除的信息。
有了此更新,提供了以下修复:
-
dnf (8)手册页文档现在表达了installonly软件包没有从dnf autoremove中排除。 -
如果
dnf autoremove操作中包含多个installonly安装软件包,则 DNF 现在可以正确地从安装历史记录中推断出软件包安装原因。
因此,dnf autoremove 命令的行为现在与手册页文档一致,命令现在会考虑软件包安装原因。
如果 dnf autoremove 坚持删除所需的软件包,那么请将这些软件包标记为 dnf mark install <package> 。
dnf-automatic systemd 服务不再无法应用安全更新
在以前的版本中,当您使用 dnf-automatic-install systemd 服务只应用安全修复时,samba-client-libs 软件包的自动升级会失败。有了此更新,dnf-automatic 以与 DNF 工具相同的方式应用安全更新。因此,dnf-automatic 服务不再无法应用安全更新。
dnf remove --duplicates 不再以非零退出码和错误消息退出
在以前的版本中,如果您在系统上没有重复的软件包时运行 dnf remove --duplicates 命令,则 dnf 会以非零退出码退出,并在标准错误输出(stderr)上显示 No duplicated packages found for removal. 错误。有了此更新,dnf 现在以 0 退出,且不会在 stderr 上写任何信息。请注意,当没有安装旧版本的 installonly 软件包时,也为 dnf remove --oldinstallonly 命令修复了同样的问题。
dnf remove-n 现在只删除具有匹配 RPM 名称的软件包
在以前的版本中,如果您安装了一些软件包,以及在 RPM Provides 指令中有之前软件包名称的其它软件包,则第一次调用 dnf remove-n 命令会删除之前的软件包。重复调用命令会删除之后的软件包。
有了此更新,dnf remove-n 命令只删除匹配 RPM 名称的软件包,不考虑 RPM Provides。因此,现在调用一次 dnf remove-n 就足以删除所有匹配的软件包。
在重新安装软件包时,dnf reinstall 现在会考虑存储库的成本
在以前的版本中,如果您重新安装了多个存储库中提供的软件包,则不会从具有最低成本的存储库重新安装软件包。有了此更新,如果软件包有相同的 name-epoch-version-release-architecture 标识符,则 DNF 工具会将所有存储库中的软件包提供给依赖项解析器。因此,dnf reinstall 命令现在会考虑存储库的成本。
dnf-system-upgrade 现在使用安全 HTTPS 链接指向其文档
在以前的版本中,dnf-system-upgrade 服务文档使用不安全的 HTTP 链接来访问其文档。使用此更新,URL 现在使用安全的 HTTPS 模式。
Jira:RHEL-13053[1]
dnf history rollback 现在可以在包括同一软件包的安装和升级的 RPM 事务的重复回滚过程中正确执行
在以前的版本中,当对包含同一软件包安装和升级的 RPM 事务执行重复回滚时,dnf history rollback 命令尝试执行一个虚假的事务。此事务失败,而不是执行任何操作,因为回滚到最新事务没有什么可回滚的。
有了此更新,计算两个相同版本 RPM 事务之间的差别已在 libdnf 库中修复了。因此,指向当前最新 RPM 事务的 dnf history rollback 现在可以正确地导致 Nothing to do. 输出。
microdnf 不再无法重新安装与它们提供的 RPM 符号冲突的软件包
在以前的版本中,当使用 microdnf 软件包管理器重新安装软件包时,RPM 事务失败。有了此更新,libdnf 会创建一个 RPM 事务,其中被重新安装的软件包提供了一个也会与软件包冲突的 RPM 符号。因此microdnf 现在,可以重新安装与它们提供的 RPM 符号冲突的软件包。
Jira:RHEL-1454[1]
在安装系统时,解释 Anaconda Kickstart 脚本不再挂起
在以前的版本中,当使用 Anaconda Kickstart 脚本安装系统时,解释这个脚本会随机挂起。有了此更新,libdnf 内存管理允许在增加可用软件包数量后应用查询。因此,系统安装不会挂起,因为 libdnf 库在启用存储库后不会抛出异常。
Jira:RHEL-27657[1]
DNF (8)现在包含有关 dnf makecache --timer 的信息,如果第一个镜像失败,不会尝试其它镜像
在以前的版本中,如果第一个镜像失败,则 dnf makecache --timer 命令不会尝试存储库 mirrorlist 中其它镜像的信息不会包括在 DNF (8)手册页中。有了此更新,文档已被更新为包含此信息。
8.5. Shell 和命令行工具 复制链接链接已复制到粘贴板!
当对 logind-session-monitor 事件调用 polkit 时,pkla-compact 二进制文件被执行
在以前的版本中,对 polkit 操作的授权的重新验证都是由所有用户的任何 logind-session-monitor 事件触发的,如 login、logout、会话状态更改。另外,每个 CheckAuthorization 请求都会执行 polkit-pkla-compat 二进制文件来检查旧的 .pkla 配置文件,即使系统上没有此类文件,这导致 polkit 守护进程增加了 CPU 使用率。
目前,只反映与 polkit 操作相关的 logind-session 更改。如果会话的状态发生了变化,与会话关联的 polkit 对象会触发重新验证(CheckAuthorization)。您必须重新启动(退出登录登录屏幕并重新登录 或 重启 ) GNOME shell ,以使更新成功。
polkit-pkla-compat 二进制文件现在是一个软依赖项。因此,只有在 /etc/polkit-1/localauthority、/etc/polkit-1/localauthority.conf.d、/var/lib/polkit-1/localauthority 及其特定子目录中没有 .pkla 文件时,才能通过卸载 polkit-pkla-compat 二进制文件来减少 CPU 强度。
Jira:RHEL-39063[1]
改进了缺少 sieve 脚本的 dovecot 稳定性
在以前的版本中,dovecot 无法正确跟踪可选的 sieve 脚本。因此,如果缺少脚本的路径的哈希组与另一个脚本的哈希组匹配,则 LDA 进程会在电子邮件发送过程中崩溃。
有了此修复,在处理缺少的可选脚本时 dovecot 不再崩溃,因为已修正了这些脚本的比较和处理。
Jira:RHEL-37160[1]
nvram 命令中的 print-config 选项不会导致分段错误
在以前的版本中,当使用 print-config 选项运行 nvram 命令时,它会导致分段错误。发生分段错误的原因是,代码试图访问超出 varlen 索引中数据限制的内存。varlen 索引是用户提供的字符串的长度。
此更新添加了一个条件来检查数据长度是否大于 varlen 索引。它防止访问超过限制的内存,从而防止分段错误。
Jira:RHEL-23624[1]
nvram --nvram-size 命令不会导致分段错误
在以前的版本中,当 nvram-size 命令超过默认大小值时,会发生分段错误。
nvram: WARNING: expected 268435456 bytes, but only read 15360!
nvram: WARNING: expected 268435456 bytes, but only read 15360!
有了此修复,现在添加了 nvram-size 的检查条件,以避免出现无限 while 循环,并防止分段错误。
Jira:RHEL-23619[1]
ReaR 现在按预期解释 URL 中括起 IPv6 地址的方括号
在以前的版本中,OUTPUT_URL 和 BACKUP_URL 中的方括号没有被正确解释。指定 IPv6 地址而不是主机名需要将地址放在方括号中,例如: [::1] 用于 localhost。由于不能正确解释括号,因此无法在 sshfs:// 或 nfs:// URL 中使用 IPv6 地址。
因此,如果用户在 BACKUP_URL 或 OUTPUT_URL 中使用 sshfs:// 或 nfs:// 方案,且 IPv6 地址括在方括号中,则 ReaR 会提前中止,并显示一条错误,例如:
ERROR: Invalid scheme '' in BACKUP_URL
ERROR: Invalid scheme '' in BACKUP_URL
有了此更新,ReaR 现在已被修复,在解析 sshfs:// 和 nfs:// URL 时,不会将方括号解释为 shell 元字符。现在,您可以在使用 sshfs:// 或 nfs:// 方案的 BACKUP_URL 和 OUTPUT_URL 中,使用括在括号中的 IPv6 地址 。例如:
OUTPUT_URL=nfs://[2001:db8:ca2:6::101]/root/REAR
OUTPUT_URL=nfs://[2001:db8:ca2:6::101]/root/REAR
在实现此修复前,可以使用引号和反斜杠字符来临时解决这个 bug ,例如:
OUTPUT_URL="nfs://\[2001:db8:ca2:6::101\]/root/REAR"
OUTPUT_URL="nfs://\[2001:db8:ca2:6::101\]/root/REAR"
注意:如果您一直在使用临时解决方案,请在应用更新后删除反斜杠字符。
8.6. 网络 复制链接链接已复制到粘贴板!
当 NetworkManager 处理大量定期更新的路由表时,CPU 使用率的上升可以忽略不计
在以前的版本中,当外部路由守护进程更新超过数千个路由的大型 IPv6 表时,NetworkManager 将其 CPU 使用率增加到几乎 100%。这可能会减慢整体的系统性能和网络配置的速度。这个问题已通过更新 NetworkManager 源代码,来忽略对路由协议的路由而不是一少部分协议的更改。因此,在前面描述的情形中,CPU 使用率的上升可以忽略不计。
Jira:RHEL-26195[1]
ipv6.ip6-privacy 的值不再在连接激活之间改变
最初,当没有为 ipv6.ip6-privacy 参数设置全局默认值时,其值会恢复回 /proc/sys/net/ipv6/conf/default/use_tempaddr 文件中的值。对 NetworkManager 源代码的最新更改导致它错误地回退到从 /proc/sys/net/ipv6/conf/IFNAME/use_tempaddr 文件中读取的值。因此,IPv6 地址生成更改了,ipv6.ip6-privacy 的值可能会在连接激活之间有所变化。这个问题已通过恢复回原始行为而得到解决。因此,ipv6.ip6-privacy 的值在连接激活之间不会改变。
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.
Cannot display features, because xdp-loader was compiled against an old version of libbpf without support for querying features.
现在,工具针对正确的 libbpf 版本进行了编译。因此,命令现在可以按预期正常工作。
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)
mlx5_core 0000:5e:00.0: mlx5_cmd_out_err:780:(pid 980895): DELETE_FLOW_TABLE_ENTRY(0x938) op_mod(0x0) failed, status bad resource(0x5), syndrome (0xabe70a), err(-22)
因此,当您将 ConnectX-5 适配器的固件版本更新为 16.35.3006 或更高版本时,不会出现错误消息。
Jira:RHEL-9897[1]
NetworkManager 可以在 VPN 连接配置文件中缓解 CVE-2024-3661 (TunnelVision)的影响
VPN 连接依赖路由,来通过隧道重定向流量。但是,如果 DHCP 服务器使用无类别静态路由选项(121)将路由添加到客户端的路由表中,并且 DHCP 服务器传播的路由与 VPN 重叠,则可以通过物理接口而不是 VPN 传输流量。CVE-2024-3661 描述了此漏洞,它也被称为 TunnelVision。因此,攻击者可以访问用户期望受到 VPN 保护的流量。
在 RHEL 上,这个问题会影响 LibreSwan IPSec 和 WireGuard VPN 连接。只有带有 ipsec-interface 和 vt-interface 属性未在其中定义的配置文件的 LibreSwan IPSec 连接,或设置为 no 的连接不受影响。
CVE-2024-3661 文档描述了通过配置 VPN 连接配置文件将 VPN 路由放在具有高优先级的专用路由表中,来缓解 TunnelVision 影响的步骤。步骤可用于 LibreSwan IPSec 和 WireGuard 连接。但是,要将缓解步骤应用到 LibreSwan IPSec 连接配置文件,您必须使用 NetworkManager 1.48.10-5 或更高版本。在 RHEL 9.5 中,这个版本由 RHSA-2025:0377 公告提供。
Jira:RHEL-73167[1]
8.7. 内核 复制链接链接已复制到粘贴板!
Linux Falcon Sensor 中的 eBPF 程序在加载时造成内核 panic
在以前的版本中, Linux Falcon Sensor 在用户模式下使用的 eBPF 程序会导致内核 panic。因此,在载入此类程序时,RHEL v9.4 的一些内核会受到影响。
有了此更新,这个问题已被修复,eBPF 程序可以在 RHEL v9.5 内核上正常运行。
Jira:RHEL-34937[1]
在启用了 VMD 时,RHEL 之前无法识别 NVMe 磁盘
当您重置或重新附加驱动程序时,卷管理设备(VMD)域之前没有软重置。因此,硬件无法正确检测并枚举其设备。有了此更新,启用了 VMD 的操作系统可以正确地识别 NVMe 磁盘,特别是在重置服务器或使用虚拟机时。
Bugzilla:2128610[1]
8.8. 文件系统和存储 复制链接链接已复制到粘贴板!
multipathd 现在显示一条消息而不是无响应
在以前的版本中,在执行 multipathd show maps topology 命令或没有任何多路径设备的情况下的其他命令时,命令经常会挂起和超时,而没有任何响应。有了此更新,multipathd 命令现在显示 ok,没有返回任何输出,也没有挂起和超时。
Jira:RHEL-44569[1]
multipath 现在可以正确地将路径与原生 multipathd NVMe 设备相关联
在以前的版本中,multipath 命令显示带有命名空间 1 的原生 multipathd NVMe 设备,作为其路径中第一个定义的命名空间,而不是显示正确的路径。有了此修复,multipath 现在在列出原生 multipathd NVMe 设备时,可以正确地匹配它们的路径。因此,当使用 multipath 查看原生 multipathd NVMe 设备时,您可以看到正确的路径,其中路径的命名空间 ID 与 NVMe 设备的命名空间 ID 匹配。
Jira:RHEL-28068[1]
对 multipathd 的 flush_on_last_del 参数的修改解决了服务挂起的问题
在以前的版本中,当尝试自动删除其最后一个路径已被删除的未使用的多路径设备时,multipathd 可能会挂起。在这种情况下,当没有可用路径时,多路径设备被设置为排队 IO
有了此修复,通过禁用排队,multipathd 现在可以自动删除多路径设备。如果设备上没有禁用队列,则 multipathd 将不会尝试自动删除。要达到此目的,您可以为 flush_on_last_del 参数设置以下选项和 yes 或 no :
-
always: 当设为always或yes时,multipathd始终会在最后一个路径被删除时禁用排队。 -
unused:这是默认选项。当设置为unused或no时,当删除最后一个路径已删除且设备未使用时,multipathd会禁用排队。 -
never:当设为never时,multipathd不会在最后一个路径被删除时禁用排队。
因此,在尝试自动删除最后一个已知路径是无效的未使用的多路径设备时,multipathd 不再变得无响应。
Jira:RHEL-30272[1]
当在 /etc/fstab中将 NVMe-FC 设备添加为挂载点时,系统可以正确启动
在以前的版本中,由于 nvme-cli nvmf-autoconnect systemd 服务中的一个已知问题,在将光纤通道上的 Non-volatile Memory Express (NVMe-FC)设备添加为 /etc/fstab 文件中的挂载点时,系统无法引导。因此,系统进入紧急模式。有了此更新,当挂载 NVMe-FC 设备时,系统可以引导,而没有任何问题。
Jira:RHEL-8171[1]
LUN 现在在操作系统安装过程中可见
在以前的版本中,系统没有使用固件源的身份验证信息,特别是在涉及带有存储在 iSCSI iBFT (Boot Firmware Table)中 CHAP (Challenge-Handshake Authentication Protocol) 的 iSCSI 硬件卸载的情况。因此,在安装过程中 iSCSI 登录失败。
有了udisks2-2.9.4-9.el9 固件身份验证中的修复,这个问题已被解决,LUN 在安装和初始引导过程中可见。
Bugzilla:2213769[1]
8.9. 高可用性和集群 复制链接链接已复制到粘贴板!
当管道到 grep 工具时,pcs 输出不再被包装
在以前的版本中,当 pcs 输出被管道到另一个进程时,输出宽度总是默认为 80 个字符。这使得使用 grep 工具查找输出中的特定行很困难。有了这个更改,pcs 在管道到 grep 时不会包装其输出。
pcsd 进程现在始终正确且及时地停止
在以前的版本中,pcsd 进程的创建方法有时会在进程终止过程中导致死锁。然后,进程只在 systemd 超时后被终止。此修复更改了进程创建方法,在进程停止时不再有死锁。因此,pcsd 在短时间内始终正确停止。
SBD 选项的 pcs 验证
在以前的版本中,当使用 pcs stonith sbd enable 命令启用 SBD ,并为 SBD 选项指定无效的值时,它导致 SBD 错误配置。pcs 命令行界面已更新,以验证 SBD 选项的值。当值无效时,pcs 报告错误,且不会创建或更新 SBD 配置。
从 Booth 仲裁节点删除 Booth 配置的能力
在以前的版本中,运行 pcs booth destroy 命令从 Booth 仲裁节点删除 Booth 配置会产生一个错误。发生这种情况是是因为命令没有从不属于集群的节点删除 Booth 配置。现在,可以从 Booth 仲裁删除 Booth 配置。
pcs 不再验证具有大于 9 的隔离级别的隔离拓扑
Pacemaker 集群资源管理器忽略大于 9 的隔离拓扑级别。配置大于 9 的级别可能会导致隔离失败。有了此更新,您可以在 pcs 命令行界面中使用值 1 到 9 配置隔离级别,隔离拓扑可以正常工作。
CIB 管理器不再根据来自异步客户端的每个请求无限增加大小
在以前的版本中,当 CIB 管理器收到来自异步客户端的请求时,它会泄漏少量内存。这导致 CIB 管理器进程的大小逐渐增长。有了此修复,为异步客户端释放了相关内存,CIB 管理器进程的大小不会无限增加。
crm_node -i 命令现在可以正确地解析节点 ID
在以前的版本中,crm_node -i 和等同的 crm_node --cluster-id 命令有时会显示 "Node is not known to cluster" 消息,而不是期望的本地节点的集群 ID。有了此修复,节点 ID 被正确解析,命令可以按预期工作。
8.10. 编译器和开发工具 复制链接链接已复制到粘贴板!
GCC Toolset 13:GCC 现在可以在启用了向量化的 IBM POWER9, Little Endian 上正确编译代码
在以前的版本中,当在启用了向量化的 IBM POWER9、Little Endian 上编译代码时,GCC 编译器会产生不正确的代码。扩展器中的 Register Transfer Language (RTL)模式已被修复,代码现在可以正确编译。
Jira:RHEL-45190[1]
glibc 动态链接器防止使用来自自定义 malloc 实现的 TLS 访问的应用程序所做的可重入 malloc 调用
有些应用程序提供了一个自定义的 malloc 动态内存分配实现,它使用全局动态本地线程存储(TLS),而不是初始执行的 TLS。在此更新之前,带有使用全局动态 TLS 的捆绑的 malloc 调用的应用程序可能会遇到对应用程序的 malloc 子系统的可重入调用。因此,应用程序 malloc 调用因为堆栈耗尽或内部数据结构的意外状态而崩溃。有了此更新,glibc 动态链接程序会检测自定义 malloc 实现中的 TLS 访问。如果在 malloc 调用期间检测到 TLS 访问,则会在 TLS 处理期间跳过进一步的调用,并阻止可重入 malloc 调用。
TLS 数据不再被从 ELF 构造器调用 dlopen() 所覆盖
在以前的版本中,当从 ELF 构造器调用 dlopen () 函数时,glibc 动态链接器无法正确跟踪本地线程存储(TLS)的初始化状态。因此,在被应用程序修改后,TLS 数据会被恢复回其原始值。有了此更新,动态链接器使用单独的标记来跟踪每个共享对象的 TLS 初始化。因此,TLS 数据不再被从 ELF 构造器调用 dlopen() 函数意外覆盖。
Perftools 不再无法处理 LTO 调试信息
在以前的版本中,binutils 集合中的 Binary File Descriptor (BFD)库(其被性能工具使用,来从二进制文件读取调试信息)无法处理启用了 Link Time Optimization (LTO)的 GCC 编译器生成的调试信息。因此,perftools 显示错误消息,并在检查包含 LTO 调试信息的文件时无法正确运行。BFD 库已被更新,以处理在启用了 LTO 的编译过程中生成的调试信息,受影响的 perftools 可以成功处理此类调试信息。
Jira:RHEL-43758[1]
8.11. 身份管理 复制链接链接已复制到粘贴板!
ipa-replica-manage 命令不再在强制复制过程中重置 nsslapd-ignore-time-skew 设置
在以前的版本中,ipa-replica-manage force-sync 命令将 nsslapd-ignore-time-skew 设置重置为 off,而不考虑配置的值。有了此更新,nsslapd-ignore-time-skew 设置在强制复制过程中不再被覆盖。
Jira:RHEL-52300[1]
ipa idrange-add 命令现在警告目录服务器必须在所有 IdM 服务器上重启
在以前的版本中,ipa idrange-add 命令不会警告管理员,他们必须在创建新范围后在所有 IdM 服务器上重启目录服务器(DS)服务。因此,管理员有时使用属于新范围的 UID 或 GID 创建了一个新用户或组,无需重启 DS 服务。这个添加导致新用户或组没有被分配 SID。有了此更新,需要在所有 IdM 服务器上重启 DS 的警告被添加到命令输出中。
Jira:RHELDOCS-18201[1]
Certmonger 现在可以正确地更新隐藏的副本上的 KDC 证书
在以前的版本中,当证书即将过期时,certmonger 无法更新隐藏的副本上的 KDC 证书。这是因为续订过程仅将非隐藏的副本视为活动的 KDC 而导致的。有了此更新,隐藏的副本被视为活跃的 KDC,certmonger 可以在这些服务器上成功更新 KDC 证书。
Jira:RHEL-39477[1]
AD 管理员现在可以部署 IdM 副本
在以前的版本中,在安装 RHEL 身份管理(IdM)副本的过程中,检查提供的 Kerberos 主体是否有所需的特权,不会扩展到检查用户 ID 覆盖。因此,当尝试使用具有所需特权的 ID 覆盖的 AD 管理员的凭证部署副本时,副本连接检查会失败。
有了此更新,检查是否有已添加了所需权限的主体的 ID 覆盖。因此,您现在可以使用被配置为充当 IdM 管理员的 AD 管理员的凭证部署副本。
请注意,这个修复也适用于 ansible-freeipa。
目录服务器不再忽略 nsslapd-idletimeout
在以前的版本中,如果连接由非目录管理器用户打开,则目录服务器可能会忽略 nsslapd-idletimeout 值,并在指定时间后不会关闭连接。有了此更新,目录服务器在到达配置的空闲时间后会按预期关闭连接。
Jira:RHEL-17511[1]
搜索操作现在可以更快地返回大型组
在以前的版本中,如果大型静态组的搜索使用包含与带有 uniquemember 属性的组件匹配的 equality 的过滤器,例如 '(uniquemember=uid=foo,ou=body,<suffix>)',则此类搜索会较慢,且占用大量 CPU。有了此更新,在搜索过滤器评估过程中,目录服务器使用内部结构,其中对成员可分辨名称(DN)进行排序,从而使大型组的搜索更快,且占用更少的 CPU 。
Jira:RHEL-49454[1]
一级范围的搜索不再无法返回子后缀
在以前的版本中,当使用设置为 one 的 -s 选项运行 ldapsearch 命令时,搜索结果不包含 -b 选项中指定的条目的子后缀。有了此更新,一级范围的搜索可以成功返回条目的直接子级。
Referential Integrity 插件不再导致服务器失败
在以前的版本中,当您将 Referential Integrity 插件与延迟检查一起使用时,处理检查的线程可能会在关闭时访问发布的数据结构,从而导致服务器失败。有了此更新,插件不再释放数据结构,直到延迟检查线程停止,且没有失败发生为止。
dscreate ds-root 命令现在接受相对路径
在以前的版本中,当尝试以非 root 用户身份创建实例,并提供一个包含相对路径的 bin_dir 参数值时,相对路径被写到 defaults.inf 文件,从而导致实例创建失败。有了此更新,当您提供相对路径作为 bin_dir 参数值时,实例现在可以成功创建。
离线导入 LDIF 文件现在可以正常运行
在以前的版本中,在离线导入前,不会触发缓存自动调优操作。因此,当由 ldif2db 脚本执行时,导入操作会很慢。有了此更新,目录服务器会在 ldif2db 操作之前触发缓存自动调优,以提高导入性能。
dsconf schema matchingrules list 命令现在显示新的 inchainMatch 匹配规则
在以前的版本中,dsconf 工具不显示匹配规则列表中支持的 inchainMatch 匹配规则,因为 inchainMatch 是在没有匹配语法的情况下注册的。有了此更新,定义了 inchainMatch 的语法,在运行 dsconf schema matchingrules list 命令时,会在列表中显示 inchainMatch。
8.12. SSSD 复制链接链接已复制到粘贴板!
本地用户缓存的 shadow-utils 和 sss_cache 之间的集成被禁用
在 RHEL 9 中,SSSD 隐式 files 提供者域(其从本地文件如 /etc/shadow 检索用户信息,从 /etc/groups 检索组信息)默认被禁用。但是,shadow-utils 中的集成没有完全被禁用,这导致在添加或删除本地用户时调用 sss_cache。不必要的缓存更新导致某些用户的性能问题。有了此更新,shadow-utils 与 sss_cache 的集成被完全禁用,且由不必要的缓存更新导致的性能问题不再发生。
Jira:RHEL-56352, Jira:RHELPLAN-100639
8.13. Web 控制台 复制链接链接已复制到粘贴板!
cockpit-machines 现在可以正确地删除 USB 主机设备
cockpit-machines 附加组件无法从正在运行的虚拟机中正确处理 USB 主机设备的移除。因此,当您在 RHEL web 控制台中点 Remove ,而不是成功删除时,您会看到以下错误消息:
Danger alert: Host device could not be removed
Danger alert: Host device could not be removed
有了此更新,USB 主机设备删除已被修复,您可以通过 RHEL web 控制台从虚拟机中正确删除 USB 主机设备。
8.14. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
现在,实施多组节点属性的键值对与其他集群配置组件保持一致
ha_cluster RHEL 系统角色只支持每个配置项一组键值对。在以前的版本中,当配置多个节点属性集合时,集合被合并成一个集合。有了此更新,该角色只使用您定义的第一个集合,而忽略其他集合。现在,这个行为与角色为使用键值对结构的其他配置组件如何实现多组键值对保持一致。
NetworkManager 服务和 NetworkManager 插件之间没有属性冲突
在以前的版本中,当对网络软件包的更新可用时,特别是因为无线接口改变了时,network RHEL 系统角色不会要求用户重启 NetworkManager 服务。因此,这导致 NetworkManager 服务和 NetworkManager 插件之间潜在的冲突。或者,NetworkManager 插件无法正确运行。这个问题已通过让 network RHEL 系统角色要求用户同意重启 NetworkManager 服务而得到了解决。因此,在上述场景中,NetworkManager 服务和 NetworkManager 插件之间没有属性冲突。
RHEL 9 和 RHEL 10 Beta UEFI 受管节点上的 GRUB2 可以正确地提示输入密码
在以前的版本中,bootloader RHEL 系统角色错误地将密码信息放在运行 RHEL 9 和具有 UEFI 安全引导功能的 RHEL 10 Beta 受管节点上的 /boot/efi/EFI/redhat/user.cfg 文件中。正确的位置是 /boot/grub2/user.cfg 文件。因此,当重启受管节点来修改任何引导装载程序条目时,GRUB2 不提示您输入密码。此更新通过在源代码中将 user.cfg 的路径设置为 /boot/grub2/ 解决了这个问题。当您在 UEFI 安全引导受管节点上重启操作系统来修改任何引导装载程序条目时,GRUB2 会提示您输入您的密码。
您不能为 imuxsock 输入类型设置 name 参数
在以前的版本中,logging RHEL 系统角色会为 imuxsock 输入类型错误地设置 name 参数。因此,这个输入类型不支持 name 参数,受管节点上的 rsyslog 工具会打印此错误 …parameter 'name' not known — typo in config file?…。这个更新修复了 logging RHEL 系统角色,来确保 name 参数没有与 imuxsock 输入类型关联。
在具有预先存在的 Stratis 池的系统上运行 storage RHEL 系统角色可以正常工作
在以前的版本中,storage RHEL 系统角色无法处理现有的设备和设备格式。当检查 Stratis 格式是否符合 playbook 指定的配置时,这导致角色在具有预先存在的 Stratis 池的系统上失败。因此,playbook 失败并显示一个错误,但 Stratis 池本身没有损坏或更改。此更新使 storage RHEL 系统角色可以与 Stratis 设备和其他格式正常工作,而无需标记支持。因此,在具有预先存在的 Stratis 池的系统上运行 playbook 不再失败。
Jira:RHEL-29874[1]
使用 podman 删除 Quadlet 定义的网络可以正常工作,而无论自定义 NetworkName 指令如何
删除网络时,podman RHEL 系统角色对网络名称使用 "systemd- + name of the Quadlet file" 语法。因此,如果 Quadlet 文件中存在不同的 NetworkName 指令,则删除将失败。有了此更新,podman 源代码已被更新,以使用 "Qadlet 文件名 +该文件中的 NetworkName 指令"作为要删除的网络的名称。因此,使用 podman RHEL 系统角色删除 Quadlet 文件定义的网络可以与或不与 Quadlet 文件中自定义 NetworkName 指令一起工作。
storage RHEL 系统角色再次是幂等的
在某些情况下,storage RHEL 系统角色会错误地计算现有设备的大小。因此,再次运行没有更改的同一 playbook 导致角色尝试调整已经有正确大小的设备的大小,而不是无错误地通过。有了此更新,大小计算已被修复。因此,角色现在可以正确地识别设备已有 playbook 指定的大小,且不会尝试调整它的大小。
Quadlet 单元文件中的网络单元现在可以被正确地清理
podman RHEL 系统角色不能正确管理 Quadlet 单元文件中 [Network] 部分下定义的网络单元。因此,网络单元不会被停止和禁用,后续运行因为这些单元没有被正确清理而失败。有了此更新,podman 管理 [Network] 单元,包括停止和删除。因此,Qadlet 单元文件中的 [Network] 单元被正确地清理。
如果需要,podman RHEL 系统角色会创建新的 secret
如果您使用 podman_secrets 角色变量的 skip_existing: true 选项,则 podman RHEL 系统角色会错误地检查具有相同名称的 secret 是否已存在。因此,如果使用该选项,角色不会创建任何新 secret。此更新修复了 podman RHEL 系统角色,以在使用 skip_existing: true 时检查现有的 secret。因此,如果 secret 不存在,角色会正确地创建新的 secret。相反,如果您使用 skip_existing: true,则不会创建同名的 secret。
可以对正确的用户取消 linger 功能
当处理 kube 文件或 Quadlet 文件中的配置项的说明列表时,podman RHEL 系统角色错误地使用了与整个列表关联的用户 ID。它没有使用与列表项目关联的用户 ID ,来编译 linger 文件名。因此,没有创建 linger 文件,因此 podman RHEL 系统角色无法取消实际用户的 linger 功能(如果需要的话)。有了此更新,podman 使用正确的用户名来构造 linger 文件名。因此,可以对正确的用户取消 linger 功能。
podman RHEL 系统角色可以再次设置主机目录的所有权
在以前的版本中,在设置主机目录的所有权时,podman RHEL 系统角色将 become 关键字与用户一起使用 。因此,角色无法正确设置所有权。有了此更新,podman RHEL 系统角色不会将 become 与普通用户一起使用。相反,它使用 root 用户。因此,podman 可以设置主机目录的所有权。
作为对这个 bug 修复的补充,已在 podman RHEL 系统角色中添加了以下角色变量:
-
podman_subuid_info(字典):公开了/etc/subuid文件中的角色使用的信息。需要此信息来正确设置主机目录的所有者信息。 -
podman_subgid_info(字典):公开了/etc/subgid文件中的角色使用的信息。需要此信息来正确设置主机目录的组信息。
有关新添加的变量的详情,请查看 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。
podman RHEL 系统角色现在可以正确地搜索 subgid 值
从属组 ID (subgid)是一个分配给非 root 用户的组 ID 值的范围。通过使用这些值,您可以在容器中使用与主机系统不同的组 ID 运行进程。在以前的版本中,使用组名称而不是用户名称在 subgid 值中错误地搜索了 podman RHEL 系统角色。因此,用户名和组名称之间的区别使 podman 无法查找 subgid 值。此更新修复了 podman ,以便正确地搜索 subgid 值,在这种情况下问题不再发生。
sshd RHEL 系统角色可以正确地配置第二个 sshd 服务
如果您没有指定 sshd_config_file 角色变量,则运行 sshd RHEL 系统角色来在受管节点上配置第二个 sshd 服务会导致一个错误。因此,您的 playbook 将失败,并且 sshd 服务无法被正确配置。要解决这个问题,主配置文件的派生已得到了改进。另外,以使 /usr/share/doc/rhel-system-roles/sshd/ 目录中的文档资源更加清晰,以避免此问题。因此,按上述场景中所述配置第二个 sshd 服务可以按预期工作。
如果需要,bootloader RHEL 系统角色会生成缺失的 /etc/default/grub 配置文件
在以前的版本中,bootloader RHEL 系统角色预期 /etc/default/grub 配置文件存在。在某些情况下,例如在 OSTtree 系统上,可能会缺失 /etc/default/grub。因此,角色意外失败。有了此更新,如果需要,角色会使用默认参数生成缺失的文件。
cockpit RHEL 系统角色安装所有与通配符模式匹配的与 cockpit 相关的软件包
在以前的版本中,通过 cockpit RHEL 系统角色使用的 dnf 模块没有安装所有与 cockpit 相关的软件包。因此,一些请求的软件包没有被安装。有了此更新,cockpit RHEL 系统角色的源代码被修改为使用带有星号通配符的软件包名称和要排除的软件包的列表来直接使用 dnf 模块。因此,角色可以正确地安装与通配符模式匹配的所有请求的软件包。
8.15. 虚拟化 复制链接链接已复制到粘贴板!
具有大量 vCPU 和虚拟磁盘的虚拟机不再失败
在以前的版本中,给 RHEL 虚拟机(VM)分配大量的 vCPU 和虚拟磁盘可能导致虚拟机无法引导。有了此更新,这个问题已被解决,虚拟机可以在以下情况下正常工作。
Jira:RHEL-32990[1]
使用 NBD 通过 TLS 连接迁移虚拟机存储可以正常工作
在以前的版本中,当使用通过 TLS 连接的 Network Block Device (NBD)协议迁移虚拟机及其存储设备时,TLS 握手中的数据竞争可能使迁移貌似是成功的。但是,可能导致目标虚拟机上 QEMU 进程对进一步交互变得无响应。
有了此更新,这个问题已被解决,对虚拟机迁移使用通过 TLS 连接的 NBD 协议可以正常工作。
安装程序显示要在虚拟机上安装 RHEL 的期望的系统磁盘
在以前的版本中,当使用 virtio-scsi 设备在虚拟机上安装 RHEL 时,这些设备可能会因为 device-mapper-multipath 错误而不会出现在安装程序中。因此,在安装过程中,如果某些设备设置了串口,而有些设备没有,则 multipath 命令会声明所有具有串口的设备。因此,安装程序无法在虚拟机中找到要安装 RHEL 的期望的系统磁盘。
有了这个更新,multipath 可以正确地将没有串口的设备设置为没有全局识别符(WWID),并忽略它们。在安装时,multipath 只声明 multipathd 用来绑定多路径设备的设备,安装程序在虚拟机中显示要安装 RHEL 的期望的系统磁盘。
Bugzilla:1926147[1]
在据有 AMD EPYC CPU 的主机上进行 v2v 转换后,Windows 客户机可以更可靠地启动
在使用 virt-v2v 工具转换使用 Windows 11 或 Windows Server 2022 作为客户机 OS 的虚拟机(VM)后,之前的虚拟机无法引导。这在使用 AMD EPYC 系列 CPU 的主机上发生。现在,底层代码已修复,在上述情况下,虚拟机按预期引导。
Bugzilla:2168082[1]
nodedev-dumpxml 可以正确列出某些介质设备的属性
在此更新前,nodedev-dumpxml 工具无法正确列出使用 nodedev-create 命令创建的介质设备的属性。这个问题已被解决,nodedev-dumpxml 现在可以正确地显示受影响的介质设备的属性。
重启 virtqemud 或 libvirtd 后,现在可以附加 virtiofs 设备
在以前的版本中,重启 virtqemud 或 libvirtd 服务会阻止 virtiofs 存储设备附加到主机上的虚拟机(VM)。这个 bug 已被解决,您现在可以在上述场景中附加 virtiofs 设备。
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 或更高版本。
恢复后复制虚拟机迁移现在可以正常工作。
在以前的版本中,当执行虚拟机(VM)的后复制迁移时,如果在迁移的恢复阶段发生代理网络故障,则虚拟机会变得无响应,且迁移无法恢复。而恢复命令会显示以下错误:
error: Requested operation is not valid: QEMU reports migration is still running
error: Requested operation is not valid: QEMU reports migration is still running
有了此更新,这个问题已被解决,在上述情况下可以正确地恢复后复制迁移。
重新安装 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 桌面显示。
在 VMware 主机上的 RHEL 虚拟机中设置静态 IP 现在可以正常工作
在以前的版本中,当在 VMware 主机上使用 RHEL 作为虚拟机(VM)的客户机操作系统时,DatasourceOVF 功能无法正常工作。因此,如果您使用 cloud-init 实用程序将虚拟机的网络设置为静态 IP,然后重启虚拟机,则虚拟机的网络将更改为 DHCP。这个问题已被解决,现在虚拟机在上述场景中设置静态 IP。
8.16. 支持性 复制链接链接已复制到粘贴板!
对现有存档的 sos clean 不再失败
在以前的版本中,由于 sos 代码中一个错误地检测 tar 包的根目录,且阻止其清理数据的回归,现有的存档无法通过运行 sos clean 来清理。因此,对现有 sosreport tar 包运行 sos clean 不会清理 tar 包中的任何内容。此更新添加了一个在重新排序的 tar 包内容中正确检测根目录的实现。因此,sos clean 可以对现有的 sosreport tar 包正确地执行敏感数据模糊处理。
sos 停止收集用户的 .ssh 配置
在以前的版本中,sos 工具默认收集用户的 .ssh 配置。因此,此操作导致用户使用 automount 工具挂载的系统损坏。有了此更新,sos 工具不再收集 .ssh 配置。
8.17. 容器 复制链接链接已复制到粘贴板!
Netavark 不再无法解析 DNS TCP 查询
在以前的版本中,当您在 Podman 网络中运行容器时,一些域名无法解析,即使它们可以在主机系统上或没有使用 Podman 网络的容器中工作。有了此更新,Netavark 支持 TCP DNS 查询,问题解决了。
第 9 章 技术预览 复制链接链接已复制到粘贴板!
这部分列出了 Red Hat Enterprise Linux 9 中的所有技术预览。
如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围。
9.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]
bootc 镜像构建器 工具作为技术预览提供
现在作为技术预览提供的 bootc 镜像构建器 工具,可作为容器使用,来从 bootc 容器输入轻松地创建并部署兼容的磁盘镜像。使用 bootc 镜像构建器 运行容器镜像后,您可以为您需要的架构生成镜像。然后,您可以在虚拟机、云或服务器上部署生成的镜像。您可以使用 bootc 轻松地更新镜像,而不必在每次需要新更新时使用 bootc 镜像构建器 重新生成内容。
Jira:RHELDOCS-17468[1]
新的 rhel9/bootc-image-builder 容器镜像作为技术预览提供
RHEL 的镜像模式的 rhel9/bootc-image-builder 容器镜像包括一个最小版本的镜像构建器,其将可引导容器镜像(如 rhel-bootc)转换为不同的磁盘镜像格式(如 QCOW2、AMI、VMDK、ISO 等)。
Jira:RHELDOCS-17733[1]
9.2. 安全性 复制链接链接已复制到粘贴板!
gnutls 现在使用 kTLS 作为技术预览
更新的 gnutls 软件包可以将内核 TLS (kTLS)作为技术预览,来在加密通道上加速数据传输。要启用 kTLS,请使用 modprobe 命令添加 tls.ko 内核模块,并使用以下内容为系统范围的加密策略创建一个新的配置文件 /etc/crypto-policies/local.d/gnutls-ktls.txt :
[global] ktls = true
[global]
ktls = true
请注意,当前版本不支持通过 TLS KeyUpdate 消息更新流量密钥,这会影响 AES-GCM passwordsuites 的安全性。如需更多信息,请参阅 RFC 7841 - TLS 1.3 文档。
Bugzilla:2108532[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]
9.3. RHEL for Edge 复制链接链接已复制到粘贴板!
作为技术预览,FDO 现在提供和查询来自 SQL 后端的所有者凭证
有了这个技术预览,FDO manufacturer-server、onboarding-server 和 rendezvous-server 可用来存储和查询来自 SQL 后端的所有者凭证。因此,您可以在 FDO 服务器选项中选择 SQL 数据存储,以及凭证和其他参数,来存储所有者凭证。
Jira:RHELDOCS-17752[1]
9.4. Shell 和命令行工具 复制链接链接已复制到粘贴板!
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。
Bugzilla:2047161[1]
9.5. 基础架构服务 复制链接链接已复制到粘贴板!
TuneD 的套接字 API 作为技术预览提供
通过 UNIX 域套接字控制 TuneD 的套接字 API 现在作为技术预览提供。套接字 API 将一对一与 D-Bus API 映射,并为 D-Bus 不可用的情况提供替代通信方法。通过使用套接字 API,您可以控制 TuneD 守护进程来优化性能,并更改各种调优参数的值。套接字 API 默认被禁用,您可以在 tuned-main.conf 文件中启用它。
9.6. 网络 复制链接链接已复制到粘贴板!
数据包卸载模式中的 UDP 封装现在作为技术预览提供
使用 IPsec 数据包卸载,内核可以将整个 IPsec 封装过程卸载到 NIC,以减少工作负载。有了此更新,当处于数据包卸载模式时,数据包卸载已通过支持 ipsec 隧道的用户数据报协议(UDP)封装得到了改进。
Jira:RHEL-30141[1]
WireGuard VPN 作为技术预览提供
WireGuard(红帽作为技术预览提供)是一个在 Linux 内核中运行的高性能 VPN 解决方案。它使用现代加密,比其他 VPN 解决方案更容易配置。此外,因为 WireGuard 较小的代码基础,减少了受攻击的风险,因此提高了安全性。
详情请查看设置 WireGuard VPN。
Bugzilla:1613522[1]
KTLS 作为技术预览提供
RHEL 将内核传输层安全(KTLS)作为技术预览提供。kTLS 使用内核中的对称加密或解密算法为 AES-GCM 密码处理 TLS 记录。kTLS 还包括用来将 TLS 记录加密卸载到提供此功能的网络接口控制器(NIC)的接口。
Bugzilla:1570255[1]
systemd-resolved 服务作为技术预览提供
systemd-resolved 为本地应用程序提供名字解析。该服务实现了缓存和验证 DNS stub 解析器、链接本地多播名称解析(LLMNR)和多播 DNS 解析器和响应程序。
请注意, systemd-resolved 是一个不受支持的技术预览。
PRP 和 HSR 协议现在作为技术预览提供
这个更新添加了提供以下协议的 hsr 内核模块:
- Parallel Redundancy Protocol (PRP)
- 高可用性无缝冗余(HSR)
IEC 62439-3 标准定义了这些协议,您可以使用这个功能在以太网网络中配置具有零时间恢复的冗余。
Bugzilla:2177256[1]
NetworkManager 和 Nmstate API 支持 MACsec 硬件卸载
如果硬件支持此功能,您可以使用 NetworkManager 和 Nmstate API 启用 MACsec 硬件卸载。因此,您可以将 MACsec 操作(如加密)从 CPU 卸载到网络接口控制器。
请注意,这个功能是一个不被支持的技术预览。
NetworkManager 启用配置 HSR 和 PRP 接口
High-availability Seamless Redundancy(HSR)和 Parallel Redundancy Protocol(PRP)是网络协议,它们针对任何单个网络组件故障提供无缝故障转移。这两个协议对应用程序层都是透明的,这意味着用户在通信过程中不会遇到任何中断或任何数据丢失,因为主路径和冗余路径之间的切换发生的很快,且用户不知道。现在,可以通过 nmcli 工具和 DBus 消息系统,使用 NetworkManager 服务启用和配置 HSR 和 PRP 接口。
将 IPsec 封装卸载到 NIC 现在作为技术预览提供
此更新向内核添加了 IPsec 数据包卸载功能。在以前的版本中,只能将加密卸载到网络接口控制器(NIC)。有了此增强,内核现在可将整个 IPsec 封装过程卸载到 NIC,以减少工作负载。
请注意,将 IPsec 封装过程卸载到 NIC 也会减少内核监控和过滤此类数据包的能力。
Bugzilla:2178699[1]
Soft-iWARP 驱动程序作为技术预览提供
软硬件硬件(siw)是一种软件,互联网是 RDMA 协议(iWARP),适用于 Linux 的内核驱动程序。soft-iWARP 通过 TCP/IP 网络堆栈实施 iWARP 协议套件。这个协议套件在软件中完全实现,不需要特定的远程直接内存访问(RDMA)硬件。Soft-iWARP 使具有标准以太网适配器的系统连接到 iWARP 适配器或安装了 Soft-iWARP 的其他系统。
Bugzilla:2023416[1]
rvu_af,rvu_nicpf 和 rvu_nicvf 作为技术预览提供
对于 Marvell OCTEON TX2 Infrastructure Processor 系列,以下内核模块作为技术预览提供:
rvu_nicpf- Marvell OcteonTX2 NIC Physical Function 驱动程序
rvu_nicvf- Marvell OcteonTX2 NIC Virtual Function 驱动程序
rvu_nicvf- Marvell OcteonTX2 RVU Admin Function 驱动程序
Bugzilla:2040643[1]
RHEL 中 modems 的网络驱动程序作为技术预览提供
设备制造商支持将联邦通信委托(FCC)锁定作为默认设置。FCC 提供了一个锁,来将 WWAN 驱动程序绑定到特定的系统,其中 WWAN 驱动程序提供了一个与调制解调器进行通信的通道。根据调制解调器 PCI ID,制造商在 Red Hat Enterprise Linux 上为 ModemManager 集成了解锁工具。但是,如果之前未解锁,调制解调器仍不可用,即使 WWAN 驱动程序兼容并可以正常工作。Red Hat Enterprise Linux 为以下带有有限功能的调制解调器提供了驱动程序,来作为技术预览:
- Qualcomm MHI WWAM MBIM - Telit FN990Axx
- 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
Jira:RHELDOCS-16760[1], Jira:RHEL-6564, Bugzilla:2110561, Bugzilla:2123542, Bugzilla:2222914
IPv6 上的段路由(SRv6)作为技术预览提供
RHEL 内核将 IPv6 (SRv6)上的段路由作为技术预览提供。您可以使用此功能来优化边缘计算中的流量流,或提高数据中心中的网络可编程性。但是,最重要的用例是在 5G 部署场景中的端到端(E2E)网络分片。在这个领域中,SRv6 协议为您提供了可编程自定义网络分片和资源保留,以解决特定应用程序或服务的网络要求。同时,解决方案可以部署到单一用途设备上,其满足较小计算占用的需求。
Bugzilla:2186375[1]
KTLS rebase 到版本 6.3
内核传输层安全(KTLS)功能是一个技术预览。在 RHEL 9.3 中,kTLS 被 rebase 到 6.3 上游版本,重要的更改包括:
- 添加了对带有 TX 设备卸载的 256 位密钥的支持
- 交付了各种 bug 修复
Bugzilla:2183538[1]
soft-RoCE 作为技术预览提供
通过融合以太网的远程直接内存访问(RDMA)是一个通过以太网实现 RDMA 的网络协议。Soft-RoCE 是 RoCE 的软件实现,它维护两个协议版本:RoCE v1 和 RoCE v2。在 RHEL 9 中,Soft-RoCE 驱动程序 rdma_rxe 作为一个不受支持的技术预览提供。
请注意,Soft-RoCE 从 RHEL 9.5 开始已弃用,并将在 RHEL 10 中删除。
9.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]
9.8. 文件系统和存储 复制链接链接已复制到粘贴板!
NVMe-oF Discovery Service 功能现在被完全支持
Red Hat Enterprise Linux 9.0 中作为技术预览引进的在 NVMexpress.org Technical Proposals (TP) 8013 和 8014 中定义的 NVMe-oF Discovery Service 功能现在被完全支持。要预览这些功能,请使用 nvme-cli 2.0 软件包,并将主机附加到实现 TP-8013 或 TP-8014 的 NVMe-oF 目标设备。有关 TP-8013 和 TP-8014 的更多信息,请参阅 https://nvmexpress.org/specifications/ 网站中的 NVM Express 2.0 Ratified TPs。
Bugzilla:2021672[1]
NVMe-stas 软件包作为技术预览
nvme-stas 软件包,它是 Linux 的中央 Discovery Controller (CDC) 客户端,现在作为技术预览提供。它处理异步事件通知 (AEN)、自动化的 NVMe 子系统连接控制、错误处理和报告以及自动 (zeroconf) 和手动配置。
这个软件包由两个守护进程组成,分别是 Storage Appliance Finder (stafd) 和存储设备连接器 (stacd)。
Bugzilla:1893841[1]
9.9. 动态编程语言、网页和数据库服务器 复制链接链接已复制到粘贴板!
9.10. 编译器和开发工具 复制链接链接已复制到粘贴板!
jmc-core 和 owasp-java-encoder 作为技术预览
RHEL 9 与 jmc-core 和 owasp-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-core 和 owasp-java-encoder 在 CodeReady Linux Builder (CRB)存储库中提供,您必须明确启用。如需更多信息,请参阅 如何在 CodeReady Linux Builder 中启用和使用内容。
libabigail :灵活的阵列转换警告抑制,作为技术预览提供
作为技术预览,当比较二进制文件时,您可以使用以下抑制规范抑制与转换为 true 灵活数组的假灵活数组相关的警告:
[suppress_type]
type_kind = struct
has_size_change = true
has_strict_flexible_array_data_member_conversion = true
[suppress_type]
type_kind = struct
has_size_change = true
has_strict_flexible_array_data_member_conversion = true
Jira:RHEL-16629[1]
9.11. 身份管理 复制链接链接已复制到粘贴板!
DNSSEC 在 IdM 中作为技术预览提供
带有集成 DNS 的身份管理(IdM)服务器现在实现了 DNS 安全扩展(DNSSEC),这是一组增强 DNS 协议安全的 DNS 扩展。托管在 IdM 服务器上的 DNS 区可以使用 DNSSEC 自动签名。加密密钥是自动生成和轮转的。
建议那些决定使用 DNSSEC 保护 DNS 区的用户读取并遵循这些文档:
请注意,集成了 DNSSEC 的 IdM 服务器验证从其他 DNS 服务器获取的 DNS 答案。这可能会影响未按照推荐的命名方法配置的 DNS 区域可用性。
HSM 支持作为技术预览提供
现在在身份管理(IdM)中,硬件安全模块(HSM)支持作为技术预览提供。您可以将 IdM CA 和 KRA 的密钥对和证书存储在 HSM 上。这为私钥材料增加了物理安全。
IdM 依赖于 HSM 的网络功能,来在机器之间共享密钥来创建副本。HSM 提供了额外的安全性,而不会明显影响大多数 IPA 操作。当使用低级别工具时,证书和密钥会以不同的方式处理,但对大多数用户来说这是无缝的。
不支持将现有 CA 或 KRA 迁移到基于 HSM 的设置中。您需要在 HSM 上使用密钥重新安装 CA 或 KRA。
您需要以下内容:
- 一个支持的 HSM
- HSM PKCS #11 库
- 一个可用的插槽、令牌和令牌密码
要使用存储在 HSM 上的密钥安装 CA 或 KRA,您必须指定令牌名称和 PKCS #11 库的路径。例如:
ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra
ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers -–token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra
Jira:RHELDOCS-17465[1]
LMDB 数据库类型在目录服务器中作为技术预览提供
Lightning Memory-Mapped 数据库(LMDB)在目录服务器中作为不被支持的技术预览提供。
目前,您可以只使用命令行迁移或安装带有 LMDB 的实例。
要将现有实例从 Berkeley Database (BDB)迁移到 LMDB,请使用 dsctl instance_name dblib bdb2mdb 命令,其将 nsslapd-backend-implement 参数值设置为 mdb。请注意,这个命令不清理旧数据。您可以通过将 nsslapd-backend-implement 改回到 bdb 来恢复数据库类型。如需了解更多详细信息,请参阅 将现有 DS 实例上的数据库类型从 BDB 迁移到 LMDB。
- 重要的
- 在将现有实例从 BDB 迁移到 LMDB 之前,请备份您的数据库。如需了解更多详细信息,请参阅 备份目录服务器。
要创建带有 LMDB 的新实例,您可以使用以下方法之一:
-
在交互式安装程序中,在 Choose whether mdb or bdb is used 行上设置
mdb。如需了解更多详细信息,请参阅 使用交互式安装程序创建实例。 -
在
.inf文件中,在 [slapd] 部分中设置db_lib = mdb。如需了解更多详细信息,请参阅 为目录服务器实例安装创建一个.inf文件。
目录服务器在 cn=mdb,cn=config,cn=ldbm database,cn=plugins,cn=config 条目下存储 LMDB 设置,其中包含以下新配置参数:
nsslapd-mdb-max-size设置数据库最大大小(以字节为单位)。重要:确保
nsslapd-mdb-max-size足够大,以存储所有预期的数据。但是,参数大小不能太大,以免影响性能,因为数据库文件是内存映射的。-
nsslapd-mdb-max-readers设置可以同时打开的最大读操作数。目录服务器自动调整此设置。 -
nsslapd-mdb-max-dbs设置指定可包含在内存映射的数据库文件中的最大数据库实例数。
除了新的 LMDB 设置,您还可以使用 nsslapd-db-home-directory 数据库配置参数。
如果是混合实现的情况,您可以在复制拓扑中有 BDB 和 LMDB 副本。
Jira:RHELDOCS-19061[1]
ACME 支持将自动删除过期的证书作为一个技术预览
身份管理(IdM)中的自动证书管理环境(ACME)服务添加了一个自动机制,来作为一个技术预览清除证书颁发机构(CA)中的过期证书。现在,ACAC 可以在指定间隔自动删除过期的证书。
有了这个增强,ACAC 可以在指定的间隔自动删除过期的证书。
默认情况下,删除过期的证书被禁用。要启用它,请输入:
ipa-acme-manage pruning --enable --cron "0 0 1 * *"
# ipa-acme-manage pruning --enable --cron "0 0 1 * *"
这会在每月第一天的物业删除过期的证书。
过期的证书会在保留周期后被删除。默认情况下,这是过期后 30 天。
详情请查看 ipa-acme-manage (1) 手册页。
IdM 到 IdM 迁移作为技术预览提供
IdM 到 IdM 迁移在身份管理中作为技术预览提供。您可以使用新的 ipa-migrate 命令将所有特定于 IdM 的数据(如 SUDO 规则、HBAC、DNA 范围、主机、服务等)迁移到其他 IdM 服务器。这非常有用,例如,当将 IdM 从开发或暂存环境移到生产环境时,或者在两个生产服务器之间迁移 IdM 数据时。
Jira:RHELDOCS-18408[1]
9.12. 桌面 复制链接链接已复制到粘贴板!
GNOME 用于 64 位 ARM 架构,作为一个技术预览
GNOME 桌面环境可用于 64 位 ARM 架构,作为技术预览。
现在,您可以使用 VNC 连接到 64 位 ARM 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。
64 位 ARM 提供了有限的图形应用程序集合。例如:
- Mozilla Firefox Web 浏览器
-
Red Hat 订阅管理器 (
subscription-manager-cockpit) -
防火墙配置(
firewall-config) -
磁盘用量分析器(
baobab)
使用 Mozilla Firefox,您可以连接到服务器上的 Cockpit 服务。
某些应用程序,如 LibreOffice ,只提供命令行界面,其图形界面被禁用。
Jira:RHELPLAN-27394[1]
用于 IBM Z 架构的 GNOME 作为技术预览提供
对于 IBM Z 架构,GNOME 桌面环境作为技术预览。
现在,您可以使用 VNC 连接到 IBM Z 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。
IBM Z 上提供了一组有限的图形应用程序。例如:
- Mozilla Firefox Web 浏览器
-
Red Hat 订阅管理器 (
subscription-manager-cockpit) -
防火墙配置(
firewall-config) -
磁盘用量分析器(
baobab)
使用 Mozilla Firefox,您可以连接到服务器上的 Cockpit 服务。
某些应用程序,如 LibreOffice ,只提供命令行界面,其图形界面被禁用。
Jira:RHELPLAN-27737[1]
9.13. Web 控制台 复制链接链接已复制到粘贴板!
RHEL web 控制台现在可以管理 WireGuard 连接
从 RHEL 9.4 开始,您可以使用 RHEL web 控制台创建并管理 WireGuard VPN 连接。请注意,WireGuard 技术及其 Web 控制台集成是不支持的技术预览。
Jira:RHELDOCS-17520[1]
9.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]
RHEL 客户机中的 Intel TDX
作为技术预览,Intel Trust Domain Extension (TDX)功能现在可以在 RHEL 9.2 及之后的版本中使用。如果主机系统支持 TDX,您可以部署硬件隔离的 RHEL 9 虚拟机(VM),称为信任域(TD)。但请注意,TDX 目前无法与 kdump 一起工作,启用 TDX 会导致 kdump 在虚拟机上失败。
Bugzilla:1955275[1]
RHEL 的统一内核镜像现在作为技术预览提供
作为技术预览,您现在可以获取 RHEL 内核作为虚拟机(VM)的统一内核镜像(UKI)。统一内核镜像将 kernel、initramfs 和内核命令行合并成一个签名的二进制文件。
UKI 可用于虚拟和云环境中,特别是在需要强大的 SecureBoot 功能的机密虚拟机中。UKI 作为 RHEL 9 存储库中的 kernel-uki-virt 软件包提供。
目前,RHEL UKI 只能在 UEFI 引导配置中使用。
Bugzilla:2142102[1]
64 位 ARM 上的 CPU 集群
作为技术预览,您现在可以创建在其 CPU 拓扑中使用多个 64 位 ARM CPU 集群的 KVM 虚拟机。
Jira:RHEL-7043[1]
实时迁移一个具有 Mellanox 虚拟功能的虚拟机现在作为技术预览提供
作为技术预览,您现在可以实时迁移一个附加了 Mellanox 网络设备的虚拟功能(VF)的虚拟机(VM)。
此功能目前仅在 Mellanox CX-7 网络设备上提供。Mellanox CX-7 网络设备上的 VF 使用一个新的 mlx5_vfio_pci 驱动程序,它添加了实时迁移所需的功能,并且 libvirt 自动将新驱动程序绑定到 VF。
Jira:RHEL-13007[1]
9.15. 云环境中的 RHEL 复制链接链接已复制到粘贴板!
RHEL 现在在 Azure 机密虚拟机上作为技术预览提供
使用更新的 RHEL 内核,您现在可以在 Microsoft Azure 上作为技术预览创建并运行 RHEL 机密虚拟机(VM)。新添加的统一内核镜像(UKI)现在在 Azure 上可以引导加密的机密虚拟机镜像。UKI 作为 RHEL 9 存储库中的 kernel-uki-virt 软件包提供。
目前,RHEL UKI 只能在 UEFI 引导配置中使用。
Jira:RHELPLAN-139800[1]
9.16. 容器 复制链接链接已复制到粘贴板!
composefs 文件系统作为技术预览提供
composefs 使用的关键技术有:
- OverlayFS 作为内核接口
- 用于可挂载元数据树的增强的只读文件系统(EROFS)
-
低层文件系统中的
fs-verity功能(可选)
composefs 的主要优点:
-
元数据和数据之间的分隔。
composefs不存储任何持久数据。底层元数据和数据文件存储在有效的低 Linux 文件系统中,如ext4、xfs、btrfs等。 -
挂载具有共享存储的多个
composefs。 - 数据文件在页面缓存中共享,以使多个容器镜像能够共享其内存。
-
支持内容文件的
fs-verity验证。
podman-machine 命令不被支持
用于管理虚拟机的 podman-machine 命令仅作为技术预览提供。相反,请直接从命令行运行 Podman。
Jira:RHELDOCS-16861[1]
新的 rhel9/rhel-bootc 容器镜像作为技术预览提供
rhel9/rhel-bootc 容器镜像现在在 Red Hat Container Registry 中作为技术预览提供。使用 RHEL 可引导的容器镜像,您可以像容器一样构建、测试和部署一个操作系统。由于以下改进,RHEL 可引导容器镜像与现有应用程序通用基础镜像(UBI)有所不同:RHEL 可引导容器镜像包含引导所需的其他组件,如内核、initrd、引导装载程序、固件等。对现有容器镜像没有更改。如需更多信息,请参阅 红帽生态系统目录。
Jira:RHELDOCS-17803[1]
推送和拉取使用 zstd:chunked 压缩的镜像作为技术预览提供
zstd:chunked 压缩现在作为技术预览提供。
第 10 章 弃用的功能 复制链接链接已复制到粘贴板!
弃用的设备被完全支持,这意味着它们经过了测试和维护,且其支持状态在 Red Hat Enterprise Linux 9 中保持不变。但是,这些设备可能在以后的主版本中不被支持,且不建议对当前或将来的 RHEL 主发行版本进行新部署。
有关特定主发行版本中已弃用功能的最新列表,请查看最新发行版本的文档。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期 和 Red Hat Enterprise Linux 应用程序流生命周期。
一个软件包可以被弃用,我们不推荐在以后使用。在某些情况下,可以从产品中删除软件包。然后,产品文档可识别提供类似、完全相同或者更高级功能的最新软件包,并提供进一步建议。
有关 RHEL 8 中存在但已在 RHEL 9 中 删除 的功能的详情,请参阅 采用 RHEL 9 时的注意事项。
10.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
弃用的 Kickstart 命令
以下 Kickstart 命令已弃用:
-
timezone --ntpservers -
timezone --nontp -
logging --level -
%packages --excludeWeakdeps -
%packages --instLangs -
%anaconda -
pwpolicy -
nvdimm
请注意,当只列出具体选项时,基础命令及其其它选项仍可用且未被弃用。在 Kickstart 文件中使用已弃用的命令会在日志中显示警告信息。您可以使用 inst.ksstrict 引导选项将已弃用的命令警告转换为错误。
Bugzilla:1899167[1]
OpenDNSSec 中的 SHA-1 现已弃用
OpenDNSSEC 支持使用 SHA-1 算法导出数字签名和身份验证记录。不再支持使用 SHA-1 算法。在 RHEL 9 发行版本中,OpenDNSSec 中的 SHA-1 已被弃用,并可能在以后的次版本中删除。另外,OpenDNSSec 支持仅限于与红帽身份管理的集成。OpenDNSSEC 不支持独立。
initial-setup 软件包现已弃用
initial-setup 软件包已在 Red Hat Enterprise Linux 9.3 中被弃用,并将在下一个主 RHEL 发行版本中删除。作为替换,对图形用户界面,使用 gnome-initial-setup 。
Jira:RHELDOCS-16393[1]
inst.geoloc 引导选项的 provider_hostip 和 provider_fedora_geoip 值已弃用
为 inst.geoloc= 引导选项指定 GeoIP API 的 provider_hostip 和 provider_fedora_geoip 值已弃用。作为替换,您可以使用 geolocation_provider=URL 选项在安装程序配置文件中设置所需的地理位置。您仍然可以使用 inst.geoloc=0 选项禁用地理位置。
使用全局热键从 Anaconda GUI 捕获屏幕截图已弃用
在以前的版本中,用户可以使用全局热键捕获 Anaconda GUI 的截图。这意味着用户可以手动从安装环境中提取屏幕截图,以供进一步使用。这个功能已弃用。
Jira:RHELDOCS-17166[1]
Anaconda 内置帮助已弃用
在 Anaconda 安装过程中可用的所有 Anaconda 用户界面的 spoke 和 hub 的内置文档已被弃用。作为替换,Anaconda 用户界面将是自我描述的,用户可以参考未来主 RHEL 发行版本中的官方 RHEL 文档。
Jira:RHELDOCS-17309[1]
对 NVDIMM 设备的支持已弃用
在以前的版本中,安装程序允许在安装过程中重新配置 NVDIMM 设备。这个在 Kickstart 和 GUI 安装过程中对 NVDIMM 设备的支持已弃用,并将在下一个主 RHEL 发行版本中删除。扇区模式中的 NVDIMM 设备仍然在安装程序中可见并可用。
无法从安装环境中的驱动程序更新磁盘载入更新的驱动程序
如果安装初始 RAM 磁盘中的同一驱动程序已经加载,则驱动程序更新磁盘中的驱动程序的新版本可能无法加载。因此,驱动程序的更新版本无法应用到安装环境。
作为临时解决方案,请将 modprobe.blacklist= 内核命令行选项与 inst.dd 选项一起使用。例如,要确保是否加载了驱动程序更新磁盘中的 virtio_blk 驱动程序的更新版本,请使用 modprobe.blacklist=virtio_blk,然后继续通常的流程来应用驱动程序更新磁盘中的驱动程序。因此,系统会加载驱动程序的更新版本,并在安装环境中使用它。
10.2. 安全性 复制链接链接已复制到粘贴板!
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 工具将在下一个主发行版本中删除。
使用没有参数的 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 格式的可信根证书的文件。这个方法已弃用,并可能在以后的主发行版本中删除。在以后的版本中,stunnel 将 CAfile 指令的值传递给一个不支持 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、SHB-DSA、ML-DSA 和 FN-DSA 等算法。
由韩国信息安全局(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
# update-crypto-policies --set DEFAULT:SHA1
或者,您可以将系统范围的加密策略切换到 LEGACY 策略。请注意,LEGACY 也启用了其他一些不安全的算法。
Jira:RHELPLAN-110763[1]
fapolicyd.rules 已被弃用
包含允许和拒绝执行规则的文件的 /etc/fapolicyd/rules.d/ 目录替代了 /etc/fapolicyd/fapolicyd.rules 文件。fagenrules 脚本现在将此目录中的所有组件规则文件合并到 /etc/fapolicyd/compiled.rules 文件。/etc/fapolicyd/fapolicyd 中的规则仍由 fapolicyd 框架处理,但只是为了保证向后兼容。
在 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)的密钥封装不使用填充,但仍支持。
openssl 弃用了 Engines API
OpenSSL 3.0 TLS 工具包弃用了 Engines API。引擎接口被提供方 API 替代。将应用程序和现有引擎迁移到提供方正在进行。弃用的引擎 API 可能会在以后的主发行版本中删除。
Jira:RHELDOCS-17958[1]
openssl-pkcs11 现已弃用
作为已弃用的 OpenSSL 引擎正在迁移到提供方 API 的一部分,pkcs11-provider 软件包替换了 openssl-pkcs11 软件包(engine_pkcs11)。openssl-pkcs11 软件包现已弃用。openssl-pkcs11 软件包可能在以后的主发行版本中删除。
Jira:RHELDOCS-16716[1]
RHEL 8 和 9 OpenSSL 证书和签名容器现已弃用
红帽生态系统目录中的 ubi8/openssl 和 ubi9/openssl 存储库中提供的 OpenSSL 可移植证书和签名容器现已弃用。
Jira:RHELDOCS-17974[1]
SASL 中的 digest-MD5 已被弃用
Simple Authentication Security Layer(SASL)框架中的 Digest-MD5 身份验证机制已弃用,并可能在以后的主发行版本中从 cyrus-sasl 软件包中删除。
Bugzilla:1995600[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 版本中删除。
10.3. 订阅管理 复制链接链接已复制到粘贴板!
几个 subscription-manager 模块已被弃用
由于红帽订阅服务中的一个简化的客户体验已过渡到 Red Hat Hybrid Cloud Console 和带有简单内容访问的帐户级订阅管理,因此以下模块已被弃用,并将在以后的主发行版本中删除:
-
附加组件 -
attach -
auto-attach -
import -
remove -
redeem -
role -
service-level -
syspurpose addons -
有关这些转换的
用法的更多信息,请参阅 红帽订阅服务转换到 Red Hat Hybrid Cloud Console 文章。
弃用的 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
Token authentication not supported by the entitlement server
要注册您的系统,请使用其他支持的授权方法,如包括 subscription-manager register 命令的配对选项 --username / --password OR --org / --activationkey。
10.4. 软件管理 复制链接链接已复制到粘贴板!
DNF debug 插件已弃用
DNF debug 插件(其包括 dnf debug-dump 和 dnf debug-restore 命令)已被弃用,将从下一个主 RHEL 发行版本中的 dnf-plugins-core 软件包中删除。
Jira:RHELDOCS-18592[1]
对 libreport 的支持已弃用
对 libreport 库的支持已弃用,并将在下一个主 RHEL 发行版本中从 DNF 中删除。
Jira:RHELDOCS-18593[1]
10.5. Shell 和命令行工具 复制链接链接已复制到粘贴板!
perl (Mail::Sender) 模块现已弃用
perl (Mail::Sender) 模块现已弃用,并将从下一个主发行版本中删除,而没有任何替换。因此,当主机或接口的带宽达到高或低水平时,net-snmp-perl 软件包中的 checkbandwidth 脚本不支持电子邮件警报。
Jira:RHELDOCS-18959[1]
dump 软件包中的 dump 工具已弃用
用于文件系统备份的 dump 工具已弃用,在 RHEL 9 中将不再提供。
在 RHEL 9 中,红帽建议根据使用情况使用 tar、dd 或 bacula 、备份工具,对 ext2、ext3 和 ext4 文件系统提供了完整和安全的备份。
请注意,dump 软件包中的 restore 工具仍可用,在 RHEL 9 中也被支持,并作为 restore 软件包提供。
Bugzilla:1997366[1]
Bacula 中的 SQLite 数据库后端已被弃用
Bacula 备份系统支持多个数据库后端:PostgreSQL、MySQL 和 SQLite。SQLite 后端已被弃用,并将在以后的 RHEL 版本中不被支持。作为一种替代,迁移到其他一种后端(PostgreSQL 或 MySQL),且在新部署中不使用 SQLite 后端。
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]
10.6. 基础架构服务 复制链接链接已复制到粘贴板!
客户端侧和服务器端 DHCP 软件包已弃用
Internet Systems Consortium (ISC)已宣布在 2022 年底之前结束 ISC DHCP 的维护。因此,红帽决定在 RHEL 9 中弃用客户端和服务器端 DHCP 软件包,且不在以后的 RHEL 主发行版本中分发它们。客户必须准备过渡到可用的替代品,如 dhcpcd 和 ISC Kea。
Jira:RHELDOCS-17135[1]
现在,各种软件包已在基础设施服务中弃用
以下软件包已在 RHEL 9 中被弃用,且不会在以后的 RHEL 主版本中分发:
-
sendmail -
libotr -
mod_security -
spamassassin -
redis -
dhcp -
xsane
Jira:RHEL-22385[1]
10.7. 网络 复制链接链接已复制到粘贴板!
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 库。
RHEL 9 中已弃用网络团队(Network teams)
teamd 服务和 libteam 库在 Red Hat Enterprise Linux 9 中已弃用,并将在下一个主发行版本中删除。作为替换,配置绑定而不是网络组。
红帽注重于基于内核的绑定操作,以避免维护具有类似功能的两个功能:绑定和团队(team)。绑定代码具有较高的客户采用率,非常可靠,具有活跃的社区开发。因此,绑定代码会收到功能增强和更新。
有关如何将团队迁移到绑定的详情,请参阅将网络组配置迁移到网络绑定。
Bugzilla:1935544[1]
ifcfg 格式的 NetworkManager 连接配置文件已弃用
在 RHEL 9.0 及更高版本中,ifcfg 格式的连接配置文件已弃用。下一个主要 RHEL 发行版本将删除对这个格式的支持。但是,在 RHEL 9 中,如果修改了配置文件,NetworkManager 仍然会使用这个格式处理和更新现有的配置文件。
默认情况下,NetworkManager 现在在 /etc/NetworkManager/system-connections/ 目录中以 keyfile 格式存储连接配置文件。与 ifcfg 格式不同,keyfile 格式支持 NetworkManager 提供的所有连接设置。有关 keyfile 格式以及如何迁移配置集的详情,请参考 keyfile 格式的 NetworkManager 连接配置文件。
Bugzilla:1894877[1]
firewalld 中的 iptables 后端已弃用
在 RHEL 9 中,iptables 框架已弃用。因此,firewalld 中的 iptables 后端和 直接接口也 被弃用。您可以使用 firewalld 中的原生功能,而不是 direct interface 来配置所需的规则。
firewalld 锁定功能已弃用。
firewalld 中的锁定功能已弃用,因为它无法阻止以 root 身份运行的进程将它们自己添加到允许列表中。锁定功能可能会在以后的主 RHEL 发行版本中删除。
connection.master,connection.slave-type, 和 connection.autoconnect-slaves 属性已弃用
红帽承诺使用适当的语言。因此,connection.master、connection.slave-type 和 connection.autoconnect-slaves 属性被重命名了。为确保向后兼容,已创建了将旧属性名称映射到新属性的别名:
-
connection.master是connection.controller的别名 -
connection.slave-type是connection.port-type的别名 -
connection.autoconnect-slaves是connection.autoconnect-ports的别名
请注意, connection.master,connection.slave-type 和 connection.autoconnect-slaves 别名已弃用,并将在以后的 RHEL 版本中删除。
Jira:RHEL-17619[1]
PF_KEYv2 内核 API 已弃用
应用程序可以使用 PV_KEYv2 和较新的 netlink API 配置内核的 IPsec 实现。PV_KEYv2 没有在上游进行主动维护,并且缺少重要的安全功能,如现代密码、卸载和扩展的序列号支持。因此,从 RHEL 9.3 开始,PV_KEYv2 API 已被弃用,并将在下一个主 RHEL 发行版本中删除。如果您在应用程序中使用此内核 API,请迁移它,以使用现代 netlink API 作为替代。
Jira:RHEL-1015[1]
RHEL 9 中已弃用网络团队(Network teams)
teamd 服务和 libteam 库在 Red Hat Enterprise Linux 9 中已弃用,并将在下一个主发行版本中删除。作为替换,配置绑定而不是网络组。
红帽注重于基于内核的绑定操作,以避免维护具有类似功能的两个功能:绑定和团队(team)。绑定代码具有较高的客户采用率,非常可靠,具有活跃的社区开发。因此,绑定代码会收到功能增强和更新。
有关如何将团队迁移到绑定的详情,请参阅将网络组配置迁移到网络绑定。
Bugzilla:2013884[1]
rdma_rxe Soft-RoCE 驱动程序已弃用
软件直接内存通过融合以太网(Soft-RoCE)(也称为 RXE)是模拟远程直接内存访问(RDMA)的功能。从 RHEL 9.3 开始,Soft-RoCE 功能作为一个技术预览提供。此外,这个功能已被弃用,并将在 RHEL 10 中删除。
Jira:RHELDOCS-19774[1]
10.8. 内核 复制链接链接已复制到粘贴板!
在 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。
kexec-tools 的 kexec_load 系统调用已弃用
在以后的 RHEL 版本中将不支持 kexec_load 系统调用(其载入第二个内核)。kexec_file_load 系统调用替换了 kexec_load,它现在是所有架构上的默认系统调用。
如需更多信息,请参阅 RHEL9 中是否支持 kexec_load?
Bugzilla:2113873[1]
RHEL 9 中已弃用网络团队(Network teams)
teamd 服务和 libteam 库在 Red Hat Enterprise Linux 9 中已弃用,并将在下一个主发行版本中删除。作为替换,配置绑定而不是网络组。
红帽注重于基于内核的绑定操作,以避免维护具有类似功能的两个功能:绑定和团队(team)。绑定代码具有较高的客户采用率,非常可靠,具有活跃的社区开发。因此,绑定代码会收到功能增强和更新。
有关如何将团队迁移到绑定的详情,请参阅将网络组配置迁移到网络绑定。
Jira:RHELDOCS-20097[1]
10.9. 文件系统和存储 复制链接链接已复制到粘贴板!
对 NVMe 设备的支持已从 lsscsi 软件包中弃用
对 Non-volatile Memory Express (NVMe)设备的支持已被弃用,并将在以后的主 RHEL 发行版本中从 lsscsi 软件包中删除。改为使用 nvme-cli,lsblk 和 blkid 等原生工具。
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-activation、lvm2-activation-early、lvm2-activation-net 已在 RHEL 9.0 中删除。lvm.conf event_activation 设置用于激活服务将不再起作用。自动激活卷组的唯一方法是基于事件激活。
在 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-linear、md-faulty 和 md-multipath 模块已弃用
以下 MD RAID 内核模块已弃用,并将在以后的主 RHEL 发行版本中删除:
-
CONFIG_MD_LINEAR或md-linear来串联多个驱动器,以便在单个成员磁盘变满时,数据被写到下一个磁盘,直到所有磁盘都满了为止。 -
CONFIG_MD_FAULTY或md-faulty来测试一个偶尔返回读或写错误的块设备。 -
CONFIG_MD_MULTIPATH或md-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 stats、dmsetup status 和 dmsetup table dmsetup 命令访问
10.10. 高可用性和集群 复制链接链接已复制到粘贴板!
弃用的高可用性功能
以下功能已在 Red Hat Enterprise Linux 9.5 中弃用,并将在下一个主发行版本中删除。当您尝试使用这些功能配置系统时,pcs 命令行界面会产生一条警告。
-
按顺序约束配置
score参数 -
在捆绑包中使用
rkt容器引擎 -
支持
upstart和nagios资源 -
用于配置 Pacemaker 规则的
monthdays,weekdays,weekyears,yearsdays和moon日期规范选项 -
配置 Pacemaker 规则的
yearsdays和moon持续时间选项
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]
10.11. 动态编程语言、网页和数据库服务器 复制链接链接已复制到粘贴板!
libdb 已被弃用
RHEL 8 和 RHEL 9 目前提供 Berkeley DB(libdb)版本 5.3.28,该版本根据 LGPLv2 许可证发布。上游 Berkeley DB 版本 6 在 AGPLv3 许可证下提供,该许可证更严格。
从 RHEL 9 开始,libdb 软件包已弃用,可能不会在以后的 RHEL 版本中可用。
另外,在 RHEL 9 中,加密算法已从 libdb 中删除,从 RHEL 9 中删除了多个 libdb 依赖项。
建议 libdb 用户迁移到其他键值数据库。如需更多信息,请参阅以下红帽知识库文章:
Bugzilla:1927780[1], Bugzilla:1974657, JIRA:RHELPLAN-80695
10.12. 编译器和开发工具 复制链接链接已复制到粘贴板!
Redis 将在 Grafana、PCP 和 grafana-pcp 中被 Valkey 替换
Redis 键值存储已弃用,并将在下一个 RHEL 主版本中被 Valkey 替换。因此,Grafana、PCP 和 grafana-pcp 插件将在 RHEL 10 中使用 Valkey 而不是 Redis 存储数据。
Jira:RHELDOCS-18207[1]
llvm-doc 的 HTML 内容已弃用
llvm-doc 软件包的 HTML 内容将在以后的 RHEL 发行版本中删除,并被指向 llvm.org 中在线文档的 HTML 文件所替换。没有网络访问的 llvm-doc 的用户需要一种替代方法来访问 LLVM 文档。
Jira:RHELDOCS-19013[1]
Go 的 FIPS 模式下,比 2048 小的密钥已被 openssl 3.0 弃用
openssl 3.0 弃用了小于 2048 位的密钥,在 Go 的 FIPS 模式中无法正常工作。
有些 PKCS1 v1.5 模式现在在 Go 的 FIPS 模式下被弃用
一些 PKCS1 v1.5 模式在 FIPS-140-3 中未被批准用于加密,并被禁用。它们将不再在 Go 的 FIPS 模式下工作。
Bugzilla:2092016[1]
32 位软件包已弃用
与 32 位 multilib 软件包的链接已弃用。将在 Red Hat Enterprise Linux 9 的生命周期中保持对 *.i686 软件包的支持,但将在下一个 RHEL 主版本中删除。
Jira:RHELDOCS-17917[1]
10.13. 身份管理 复制链接链接已复制到粘贴板!
pam_console 模块已弃用
在 RHEL 9.5 中,pam_console 模块已弃用,并计划在以后的发行版本中删除。pam_console 模块向登录到物理控制台或终端的用户授予文件权限和身份验证能力,并根据控制台登录状态和用户状态来调整这些特权。作为 pam_console 的一种替代,您可以使用 systemd-logind 系统服务。有关配置详情,请查看 logind.conf (5) 手册页。
Jira:RHELDOCS-18158[1]
BDB 后端在 389-ds-base 中已弃用
实现 389-ds-base 使用的 Berkeley 数据库(BDB)版本的 libdb 库在 RHEL 9.0 中已弃用。因此,目录服务器弃用了 BDB 后端。对 BDB 的支持将在目录服务器未来的主版本中删除。
作为替换,目录服务器现在可以创建 Lightning Memory-Mapped Database (LMDB)作为技术预览的实例。
Jira:RHELDOCS-19064[1]
OpenSSL 弃用了 MD2, MD4, MDC2, Whirlpool, Blowfish, CAST, DES, IDEA, RC2, RC4, RC5, SEED, 和 PBKDF1
OpenSSL 项目已弃用了一组加密算法,因为它们不安全,不常用,或两者都不安全。红帽还不建议使用这些算法,RHEL 9 则为其提供迁移加密数据以使用新的算法。对于系统的安全性,用户不得依赖于这些算法。
以下算法的实现已移到 OpenSSL 中的旧提供者:MD2、MD4、MD4、MDC2、Mlpool、Blowfish、CAST、DES、IDEA、RC2、RC4、RC5、SEED 和 PBKDF1。
有关如何载入旧供应商的说明,请参阅 /etc/pki/tls/openssl.cnf 配置文件,并启用对已弃用算法的支持。
SSSD 隐式文件供应商域默认禁用
SSSD 隐式 文件 供应商域,从 /etc/shadow 和 /etc/ groups 等本地文件检索用户信息,现已默认禁用。
使用 SSSD 从本地文件检索用户和组信息:
配置 SSSD.选择以下选项之一:
使用
sssd.conf配置文件中的id_provider=files选项明确配置本地域。[domain/local] id_provider=files ...
[domain/local] id_provider=files ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过在
sssd.conf配置文件中设置enable_files_domain=true来启用文件供应商。[sssd] enable_files_domain = true
[sssd] enable_files_domain = trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
配置名称服务切换。
authselect enable-feature with-files-provider
# authselect enable-feature with-files-providerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要恢复用户信息的缓存和同步,请通过创建符号链接来启用
shadow-utils和sssd_cache之间的集成:ln -s /usr/sbin/sss_cache /usr/sbin/sss_cache_shadow_utils
# ln -s /usr/sbin/sss_cache /usr/sbin/sss_cache_shadow_utilsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Jira:RHELPLAN-100639[1], Jira:RHEL-56352
dnssec-enable: no; 选项已弃用
/etc/named/ipa-options-ext.conf 文件中的 dnssec-enable: no; 选项已被弃用,并将在以后的 RHEL 主版本中删除。DNS 安全扩展(DNSSEC)会被默认启用,且无法禁用它们。dnssec-validation: no; 选项仍可用。
Jira:RHELDOCS-20464
10.14. SSSD 复制链接链接已复制到粘贴板!
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 passwd 或 getent group 命令列出所有用户或组。在 Red Hat Enterprise Linux (RHEL) 9 中弃用了用于 AD 和 IdM 的 枚举 功能。用于 AD 和 IdM 的 枚举 功能将在 RHEL 10 中删除 。
libsss_simpleifp 子软件包已弃用
提供 libsss_simpleifp.so 库的 libsss_simpleifp 子软件包已在 Red Hat Enterprise Linux (RHEL) 9 中弃用。libsss_simpleifp 子软件包可能会从以后的 RHEL 发行版本中删除。
SMB1 协议在 Samba 中已弃用
从 Samba 4.11 开始,不安全的服务器消息块版本 1 (SMB1)协议已弃用,并将在以后的发行版本中删除。
为提高安全性,SMB1 默认在 Samba 服务器和客户端工具中被禁用。
Jira:RHELDOCS-16612[1]
10.15. 桌面 复制链接链接已复制到粘贴板!
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 的应用程序。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 已被删除
GNOME (eog)镜像查看器应用程序的 Eye 已在 RHEL 10 中删除。
作为替代方案,您可以使用 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:
- Flathub 存储库中的官方 Flatpak 软件包:https://flathub.org/apps/org.libreoffice.LibreOffice。
- 官方 RPM 软件包::https://www.libreoffice.org/download/download-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]
Evince 已被弃用
Evince 已被弃用,并将在以后的主发行版本中删除。
Jira:RHELDOCS-19141[1]
GNOME Terminal 已被弃用
GNOME Terminal 已被弃用,并将在以后的主发行版本中删除。
Jira:RHELDOCS-19156[1]
10.16. 图形基础结构 复制链接链接已复制到粘贴板!
PulseAudio 守护进程已弃用
PulseAudio 守护进程及其软件包 pulseaudio 和 alsa-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]
10.17. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
podman RHEL 系统角色中已弃用的变量:container_image_user 和 container_image_password
container_image_user 和 container_image_password 变量已弃用。在 RHEL 的未来的主发行版本中,这些变量将被删除。您可以使用 podman_registry_username 和 podman_registry_password 变量。
如需了解更多详细信息,请参阅 /usr/share/doc/rhel-system-roles/podman/ 目录中的资源。
Jira:RHELDOCS-18803[1]
在 RHEL 9 节点上配置团队时,network 系统角色会显示一条弃用警告
RHEL 9 中弃用了网络协作功能。因此,在 RHEL 8 控制节点上使用 network RHEL 系统角色在 RHEL 9 节点上配置网络团队,会显示有关弃用的警告。
10.18. 虚拟化 复制链接链接已复制到粘贴板!
与 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 驱动程序。
使用基于 SHA1 的签名进行 SecureBoot 镜像验证已弃用
在 UEFI(PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已过时。红帽建议改为使用基于 SHA-2 算法或更新算法的签名。
Bugzilla:1935497[1]
虚拟软盘驱动程序已弃用
用于控制虚拟软盘设备的 isa-fdc 驱动程序现已弃用,并将在以后的 RHEL 发行版本中不被支持。因此,为了确保与迁移的虚拟机(VM)兼容,红帽不建议在 RHEL 9 上托管的虚拟机中使用软盘磁盘设备。
QCOW2-v2 镜像格式已弃用
在 RHEL 9 中,虚拟磁盘镜像的 QCOW2-v2 格式已弃用,并将在以后的 RHEL 主发行版本中不被支持。另外,RHEL 9 镜像构建器无法创建 QCOW2-v2 格式的磁盘镜像。
红帽强烈建议使用 QCOW2-v3,而不是 QCOW2-v2。要将 QCOW2-v2 镜像转换为以后的格式版本,请使用 qemu-img amend 命令。
virt-manager 已被弃用
虚拟机管理器(也称 virt-manager) 已弃用。RHEL web 控制台(也称为 Cockpit )旨在在以后的版本中成为其替代品。因此,建议您使用 web 控制台使用 GUI 管理虚拟化。但请注意,virt-manager 中一些可用的功能可能在 RHEL web 控制台中不可用。
Jira:RHELPLAN-10304[1]
libvirtd 已被弃用
单体 libvirt 守护进程 libvirtd 已在 RHEL 9 中弃用,并将在以后的 RHEL 主发行版本中删除。请注意,您仍然可以使用 libvirtd 在虚拟机监控程序上管理虚拟化,但红帽建议您切换到新引入的模块化 libvirt 守护进程。具体说明和详情,请参阅 RHEL 9 配置和管理虚拟化 文档。
Jira:RHELPLAN-113995[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'
tainted: use of deprecated configuration settings
deprecated configuration: CPU model 'i486'
虚拟机的内部快照已弃用
对于使用 内部 快照机制的快照,创建并恢复到虚拟机(VM)快照已被弃用,并将在以后的 RHEL 主发行版本中删除。取而代之,请使用 具有外部 机制的快照。
如需更多信息,请参阅虚拟机快照的支持限制。
Jira:RHELDOCS-20135[1]
基于 RDMA 的实时迁移已弃用
有了这个更新,使用 Remote Direct Memory Access (RDMA)迁移正在运行的虚拟机已被弃用。因此,仍可以使用 rdma:// 迁移 URI 来通过 RDMA 请求迁移,但这个功能将在以后的 RHEL 主发行版本中不被支持。
Jira:RHELPLAN-153267[1]
Intel vGPU 功能已被删除
在以前的版本中,作为技术预览,可以将物理 Intel GPU 设备划分为多个虚拟设备,称为 介质设备。然后,这些介质设备可以分配给多个虚拟机(VM)作为虚拟 GPU。因此,这些虚拟机共享单个物理 Intel GPU 的性能,但只有所选的 Intel GPU 与此功能兼容。
从 RHEL 9.3 开始,Intel vGPU 功能已完全删除。
Bugzilla:2206599[1]
pmem 设备 passthrough 已弃用
有了此更新,非易失性内存库(nvml)软件包已弃用,并将在以后的 RHEL 主版本中删除。因此,当删除软件包时,它将不再可能将持久性内存(pmem)设备传给虚拟机(VM)。请注意,易失性内存或文件支持的模拟 NVDIMM 设备仍然可用,但不能被配置为持久。
不支持使用 Windows Server 2012 或 Windows 8 作为客户机操作系统
由于 Microsoft 结束了对以下 Windows 版本的支持,因此红帽也在此更新中删除了将这些版本用作客户机操作系统的支持。
- Windows 8
- Windows 8.1
- Windows Server 2012
- Windows Server 2012 R2
使用 virt-v2v 从 RHEL 5 转换 Xen 虚拟机已被弃用。
使用 virt-v2v 工具将虚拟机从 RHEL 5 Xen 主机转换为 KVM 已被弃用,并将在以后的 RHEL 主发行版本中删除。详情请查看 红帽知识库。
Jira:RHELDOCS-19193[1]
10.19. 容器 复制链接链接已复制到粘贴板!
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),以确保它们可以在升级后启动容器。
Bugzilla:2069279[1]
rhel9/pause 已被弃用
rhel9/pause 容器镜像已被弃用。
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-flatpak 和 rhel9/libreoffice-flatpak Flatpak 镜像已被弃用。
红帽建议对这些镜像使用以下替代方案:
-
要替换
rhel9/inkscape-flatpak,请使用inkscapeRPM 软件包。 -
要替换
rhel9/libreoffice-flatpak,请参阅 LibreOffice 弃用发行注记。
Jira:RHELDOCS-17102[1]
pasta 作为网络名称已被弃用
对 pasta 作为网络名称值的支持已弃用,且在下一个 Podman 的主发行版(版本 5.0)中不被接受。您可以使用 podman run --network 和 podman 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]
10.20. 已弃用的软件包 复制链接链接已复制到粘贴板!
本节列出了已弃用的软件包,可能不会包括在 Red Hat Enterprise Linux 未来的主发行版本中。
有关 RHEL 8 和 RHEL 9 之间软件包的更改,请参阅使用 RHEL 9 文档中的软件包的更改。
在 RHEL 9 中,已弃用软件包的支持状态保持不变。有关支持长度的更多信息,请参阅 Red Hat Enterprise Linux 生命周期 和 Red Hat Enterprise Linux 应用程序流生命周期。
以下软件包已在 RHEL 9 中弃用:
- aacraid
- adwaita-gtk2-theme
- af_key
- anaconda-user-help
- aajohan-comfortaa-fonts
- adwaita-gtk2-theme
- adwaita-qt5
- anaconda-user-help
- ant-javamail
- apr-util-bdb
- aspnetcore-runtime-7.0
- aspnetcore-targeting-pack-6.0
- aspnetcore-targeting-pack-7.0
- atkmm
- atlas
- atlas-devel
- atlas-z14
- atlas-z15
- authselect-compat
- autoconf-latest
- autoconf271
- autocorr-af
- autocorr-bg
- autocorr-ca
- autocorr-cs
- autocorr-da
- autocorr-de
- autocorr-dsb
- autocorr-el
- autocorr-en
- autocorr-es
- autocorr-fa
- autocorr-fi
- autocorr-fr
- autocorr-ga
- autocorr-hr
- autocorr-hsb
- autocorr-hu
- autocorr-is
- autocorr-it
- autocorr-ja
- autocorr-ko
- autocorr-lb
- autocorr-lt
- autocorr-mn
- autocorr-nl
- autocorr-pl
- autocorr-pt
- autocorr-ro
- autocorr-ru
- autocorr-sk
- autocorr-sl
- autocorr-sr
- autocorr-sv
- autocorr-tr
- autocorr-vi
- autocorr-vro
- autocorr-zh
- babl
- 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
- 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
- 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
- jboss-jaxrs-2.0-api
- jboss-logging
- jboss-logging-tools
- jdeparser
- 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
- 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
- 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-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
- scap-workbench
- sendmail
- sendmail-cf
- sendmail-doc
- setxkbmap
- sgabios
- sgabios-bin
- sil-scheherazade-fonts
- spamassassin
- speech-tools-libs
- suitesparse
- sushi
- team
- teamd
- 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
- tracer-common
- ucs-miscfixed-fonts
- usb_modeswitch
- usb_modeswitch-data
- usbredir-server
- webkit2gtk3
- webkit2gtk3-devel
- webkit2gtk3-jsc
- webkit2gtk3-jsc-devel
- wpebackend-fdo
- wpebackend-fdo-devel
- 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
- yelp
- yelp-libs
- yp-tools
- ypbind
- ypserv
- zhongyi-song-fonts
第 11 章 已知问题 复制链接链接已复制到粘贴板!
这部分论述了 Red Hat Enterprise Linux 9.5 中的已知问题。
11.1. 安装程序和镜像创建 复制链接链接已复制到粘贴板!
auth 和 authconfig Kickstart 命令需要 AppStream 软件仓库
auth 和 authconfig Kickstart 命令在安装过程中需要 authselect-compat 软件包。如果没有这个软件包,如果使用了 auth 或 authconfig,则安装会失败。但根据设计,authselect-compat 软件包只包括在 AppStream 仓库中。
要临时解决这个问题,请验证 BaseOS 和 AppStream 存储库是否对安装程序可用,或者在安装过程中使用 authselect Kickstart 命令。
Bugzilla:1640697[1]
reboot --kexec 和 inst.kexec 命令不提供可预测的系统状态
使用 reboot --kexec Kickstart 命令或 inst.kexec 内核引导参数执行 RHEL 安装不会提供与完全重启相同的可预期系统状态。因此,在不重启的情况下切换安装的系统可能会导致无法预计的结果。
请注意,kexec 功能已弃用,并将在以后的 Red Hat Enterprise Linux 版本中删除。
Bugzilla:1697896[1]
在 Anaconda 作为应用程序运行的系统中意外 SELinux 策略
当 Anaconda 作为应用程序运行在已安装的系统上(例如,使用 -image anaconda 选项对镜像文件执行另一次安装)时,不禁止系统在安装过程中修改 SELinux 类型和属性。因此,某些 SELinux 策略的元素可能会在运行Anaconda 的系统上发生更改。
要临时解决这个问题,请不要在生产系统上运行 Anaconda。相反,在临时虚拟机中运行 Anaconda,以使 SELinux 策略在生产系统上保持不变。作为系统安装过程的一部分运行 anaconda,如从 boot.iso 或 dvd.iso 安装不会受此问题的影响。
当使用使用第三方工具创建的 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 的安装过程中没有被自动探测到。
Bugzilla:1877697[1]
USB CD-ROM 驱动器作为 Anaconda 中的安装源不可用
当源为 USB CD-ROM 驱动器,并且指定了 Kickstart ignoredisk --only-use= 命令时,安装会失败。在这种情况下,Anaconda 无法找到并使用这个源磁盘。
要临时解决这个问题,请使用 harddrive --partition=sdX --dir=/ 命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。
带有 iso9660 文件系统的硬盘分区安装失败
您不能在使用 iso9660 文件系统进行分区的系统中安装 RHEL。这是因为将设置为忽略包含 iso9660 文件系统分区的硬盘的更新安装代码。即使在没有使用 DVD 的情况下安装 RHEL,也会发生这种情况。
要临时解决这个问题,请在安装开始前,在 Kickstart 文件中添加以下脚本来格式化磁盘。
注:在执行临时解决方案前,请备份磁盘上的数据。erafs 命令对磁盘中的所有现有数据进行格式化。
%pre wipefs -a /dev/sda %end
%pre
wipefs -a /dev/sda
%end
因此,安装可以正常工作,且没有任何错误。
Anaconda 无法验证管理员用户帐户是否存在
在使用图形用户界面安装 RHEL 时,Anaconda 无法验证管理员帐户是否已创建。因此,用户可以在没有管理员用户帐户的情况下安装系统。
要临时解决这个问题,请确保配置管理员用户帐户或 root 密码已设置,且 root 帐户被解锁。因此,用户可以在安装的系统中执行管理任务。
新的 XFS 功能可防止使用比版本 5.10 更早的固件引导 PowerNV IBM POWER 系统
PowerNV IBM POWER 系统使用 Linux 内核进行固件,并使用 Petitboot 作为 GRUB 的替代。这会导致固件内核挂载 /boot,Petitboot 读取 GRUB 配置和引导 RHEL。
RHEL 9 内核为 XFS 文件系统引入了 bigtime=1 和 inobtcount=1 功能,而使用比版本 5.10 旧固件的内核不理解。
要临时解决这个问题,您可以为 /boot 使用另一个文件系统,例如 ext4。
Bugzilla:1997832[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.
The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.
要临时解决这个问题:
- 使用自动分区方案,且不手动添加任何挂载点。
-
只在
/var目录中手动分配挂载点。例如:/var/my-mount-point和以下标准目录:/、/boot、/var。
因此,安装过程成功完成。
当连接到网络但没有配置 DHCP 或静态 IP 地址时,NetworkManager 无法在安装后启动
从 RHEL 9.0 开始,当没有设置特定的 ip= 或 Kickstart 网络配置时,Anaconda 会自动激活网络设备。Anaconda 为每个以太网设备创建默认的持久配置文件。连接配置文件的 ONBOOT 和 autoconnect 值设为 true。因此,在启动安装的系统的过程中,RHEL 会激活网络设备,networkManager-wait-online 服务会失败。
作为临时解决方案,请执行以下操作之一:
使用
nmcli工具删除所有连接,但您要使用的一个连接除外。例如:列出所有连接配置文件:
nmcli connection show
# nmcli connection showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除您不需要的连接配置文件:
nmcli connection delete <connection_name>
# nmcli connection delete <connection_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 <connection_name> 替换为您要删除的连接的名称。
如果没有设置特定的
ip=或 Kickstart 网络配置,请在 Anaconda 中禁用自动连接网络功能。- 在 Anaconda GUI 中,导航到 Network & Host Name。
- 选择要禁用的网络设备。
- 单击 Configure。
- 在 General 选项卡中,取消 Connect automatically with priority 复选框。
- 点击 Save。
Bugzilla:2115783[1]
Kickstart 安装无法配置网络连接
Anaconda 只能通过 NetworkManager API 执行 Kickstart 网络配置。Anaconda 在 %pre Kickstart 部分之后处理网络配置。因此,Kickstart %pre 部分中的一些任务被阻止。例如,因为网络配置不可用,从 %pre 部分中下载软件包会失败。
要临时解决这个问题:
-
配置网络,例如使用
nmcli工具作为%pre脚本的一部分。 -
使用安装程序引导选项为
%pre脚本配置网络。
因此,可以对 %pre 部分中的任务使用网络,Kickstart 安装过程完成。
使用 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
Warning: /boot//.vmlinuz-<kernel version>.x86_64.hmac does not exist
FATAL: FIPS integrity test failed
Refusing to continue
在系统镜像安装后,使用 fips-mode-setup --enable 命令手动启用 FIPS 策略无法正常工作,因为 /boot 目录在不同的分区上。如果禁用了 FIPS,则系统可以成功引导。目前,还没有可用的临时解决方案。
安装镜像后,您可以使用 fips-mode-setup --enable 命令手动启用 FIPS。
驱动程序磁盘菜单无法在控制台上显示用户输入
当您在带有驱动程序磁盘的内核命令行上使用 inst.dd 选项启动 RHEL 安装时,控制台将无法显示用户输入。因此,应用程序似乎没有响应用户输入,并停止响应,但会显示使用户混淆的输出。但是,此行为不会影响功能,用户输入会在按 Enter 后被注册。
作为临时解决方案,要查看预期结果,请忽略控制台中缺少用户输入,并在完成添加输入后按 Enter 键。
因为在 %packages 部分中缺少具有 systemd 服务文件的软件包,因此 kickstart 安装失败
如果 Kickstart 文件使用 services --enabled=… 指令启用 systemd 服务,且包含指定服务文件的软件包没有包含在 %packages 部分中,则 RHEL 安装过程失败,并显示以下错误:
Error enabling service <name_of_the_service>
Error enabling service <name_of_the_service>
要临时解决这个问题,请在 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
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
这是因为系统无法获得镜像签名。要临时解决这个问题,您可以从容器镜像中删除签名或构建派生的容器镜像。例如,要删除签名,您可以运行以下命令:
要构建派生的容器镜像,并避免向其添加简单的 GPG 签名,请参阅 签名容器镜像 产品文档。
bootc-image-builder 不支持从私有注册中心构建镜像
目前,您无法使用 bootc-image-builder 构建来自私有注册中心的基本磁盘镜像。要临时解决这个问题,将私有注册中心复制到您的 localhost 中,然后使用以下参数构建镜像:
-
--local -
localhost/<image name>:tag作为镜像
例如,要构建镜像:
Jira:RHELDOCS-18720[1]
救援模式下的 SELinux autorelabel 可能导致循环重启
在 救援 模式下访问文件系统会触发 SELinux 在下次引导时自动标记文件系统,这将继续,直到 SELinux 在 permissive 模式下运行。因此,在退出 救援 模式后,系统可能会进入无限循环重启,因为它无法删除 /.autorelabel 文件。
作为临时解决方案,通过在下次引导时将 enforcing=0 添加到内核命令行中来切换到 permissive 模式。在 救援模式 下访问文件系统时,系统会显示一条警告消息来作为预防措施,告知可能出现此问题。
当 'ignoredisk' 命令在 'iscsi' 命令之前时,Kickstart 安装失败并显示 unknown disk 错误
如果 iscsi 命令放在 ignoredisk 命令之前,则使用 kickstart 方法安装 RHEL 会失败。出现这个问题的原因是 iscsi 命令在命令解析过程中附加了指定的 iSCSI 设备,而 ignoredisk 命令同时解析设备规范。如果 ignoredisk 命令在 iscsi 命令附加之前引用了一个 iSCSI 设备名称,则安装会失败,并显示"unknown disk"错误。
作为临时解决方案,请确保在 Kickstart 文件中 iscsi 命令被放在 ignoredisk 命令之前,以引用 iSCSI 磁盘,并使安装成功。
services Kickstart 命令无法禁用 firewalld 服务
Anaconda 中的一个 bug 防止 services --disabled=firewalld 命令禁用 Kickstart 中的 firewalld 服务。要临时解决这个问题,请改为使用 firewall --disabled 命令。因此,firewalld 服务被正确禁用。
Jira:RHEL-82566
11.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 协议版本。
Bugzilla:1681178[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
SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
MaxProtocol = TLSv1.2
因此,可以在描述的场景中建立 TLS 连接。
Bugzilla:1685470[1]
使用特定语法,scp 会清空复制到其自身的文件
scp 实用程序从安全复制协议 (SCP) 改为更安全的 SSH 文件传输协议 (SFTP)。因此,将文件从位置复制到同一位置,从而擦除文件内容。此问题会产生以下语法:
scp localhost:/myfile localhost:/myfile
要临时解决这个问题,请不要使用这个语法将文件复制到与源位置相同的目标。
这个问题已针对以下语法解决:
-
scp /myfile localhost:/myfile -
scp localhost:~/myfile ~/myfile
OSCAP Anaconda 附加组件不会在图形安装中获取定制的配置文件
OSCAP Anaconda 附加组件不提供一个选项,来在 RHEL 图形安装中选择或取消选择安全配置文件的定制。从 RHEL 8.8 开始,当从存档或 RPM 软件包安装时,附加组件不会考虑定制。因此,安装会显示以下出错信息,而不是获取 OSCAP 定制的配置文件:
There was an unexpected problem with the supplied content.
There was an unexpected problem with the supplied content.
要临时解决这个问题,您必须在 Kickstart 文件的 %addon org_fedora_oscap 部分中指定路径,例如:
xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml
xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml
tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml
因此,您只能将用于 SCAP 定制的配置文件的图形安装与相应的 Kickstart 规格一起使用。
Ansible 补救需要额外的集合
用 ansible-core 软件包替换 Ansible Engine 时,RHEL 订阅提供的 Ansible 模块的列表会减少。因此,运行使用包含在 scap-security-guide 软件包中的 Ansible 内容的补救需要来自 rhc-worker-playbook 软件包的集合。
对于 Ansible 补救,请执行以下步骤:
安装所需的软件包:
dnf install -y ansible-core scap-security-guide rhc-worker-playbook
# dnf install -y ansible-core scap-security-guide rhc-worker-playbookCopy to Clipboard Copied! Toggle word wrap Toggle overflow 进到
/usr/share/scap-security-guide/ansible目录:cd /usr/share/scap-security-guide/ansible
# cd /usr/share/scap-security-guide/ansibleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用定义额外的 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
# ANSIBLE_COLLECTIONS_PATH=/usr/share/rhc-worker-playbook/ansible/collections/ansible_collections/ ansible-playbook -c local -i localhost, rhel9-playbook-cis_server_l1.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
cis_server_l1替换为您要修复系统的配置文件的 ID。
因此,Ansible 内容会被正确处理。
对 rhc-worker-playbook 中提供的集合的支持仅限于启用 scap-security-guide 中提供的 Ansible 内容。
Keylime 不接受串联的 PEM 证书
当 Keylime 将证书链作为 PEM 格式的、串联在一个文件中的多个证书接收时,keylime-agent-rust Keylime 组件在签名验证过程中不能正确地使用所有提供的证书,导致 TLS 握手失败。因此,客户端组件(keylime_verifier 和 keylime_tenant)无法连接到 Keylime 代理。要临时解决这个问题,请只使用一个证书而不是多个证书。
Jira:RHELPLAN-157225[1]
Keylime 拒绝其摘要以反斜杠开头的运行时策略
生成运行时策略的当前脚本 create_runtime_policy.sh,使用 SHA 校验函数,如 sha256sum ,来计算文件摘要。但是,当输入的文件名包含反斜杠或 \n 时,校验和函数会在其输出中的摘要前添加一个反斜杠。在这种情况下,生成的策略文件的格式不正确。提供错误格式的策略文件时,Keylime 租户会产生以下或类似错误消息:me.tenant - ERROR - Response code 400: Runtime policy is malformat。要临时解决这个问题,请通过输入以下命令从错误格式的策略文件中手动删除反斜杠:sed -i 's/^\\//g' <malformed_file_name>。
Jira:RHEL-11867[1]
更新后,Keylime 代理拒绝来自验证器的请求
当 Keylime 代理的 API 版本号(keylime-agent-rust)已更新时,代理会拒绝使用不同版本的请求。因此,如果 Keylime 代理被添加到验证器中,然后被更新,则验证器会尝试使用旧的 API 版本联系代理。代理拒绝此请求并使认证失败。要临时解决这个问题,请在更新代理(keylime-agent-rust)前更新验证器(keylime-verifier) 。因此,当代理被更新时,verifier 会检测 API 更改,并相应地更新其存储的数据。
Jira:RHEL-1518[1]
trustdb 中缺失的文件导致拒绝 fapolicyd
当使用 Ansible DISA STIG 配置文件安装了 fapolicyd 时,一个竞争条件导致 trustdb 数据库与 rpmdb 数据库不同步。因此,trustdb 中缺失的文件导致在系统上被拒绝。要临时解决这个问题,请重启 fapolicyd 或再次运行 Ansible DISA STIG 配置文件。
Jira:RHEL-24345[1]
fapolicyd 工具错误地允许执行更改的文件
在对文件进行任何更改后,文件的 IMA 哈希应该正确更新,fapolicyd 应该阻止更改的文件的执行。但是,这不会因为 IMA 策略设置与通过 evctml 程序哈希的文件中的差异而发生。因此,IMA 哈希没有在更改的文件的扩展属性中被更新。因此,fapolicyd 错误地允许更改的文件的执行。
Jira:RHEL-520[1]
Openssl 不再创建 X.509 v1 证书
在 RHEL 9.5 中引入 OpenSSL TLS 工具包 3.2.1 后,您可以不再使用 openssl CA 工具创建 X.509 版本 1 格式的证书。X.509 v1 格式不符合当前的 Web 要求。
OpenSSH 不再在身份验证之前记录超时
OpenSSH 在验证 $IP port $PORT 之前不会将超时记录到日志中。这可能很重要,因为 Fail2Ban 入侵防御守护进程和类似的系统在其 mdre-ddos 正则表达式中使用这些日志记录,并且不再禁止尝试此类攻击的客户端 IP。目前对此问题还没有已知的临时解决方案。
默认 SELinux 策略允许无限制的可执行文件使其堆栈可执行
SELinux 策略中的 selinuxuser_execstack 布尔值的默认状态是 on,这意味着无限制的可执行文件可以使其堆栈为可执行。可执行文件不应该使用这个选项,这通常代表开发的可执行代码的质量较差,或可能存在安全攻击的风险。但是,由于需要与其他工具、软件包和第三方产品保持兼容,红帽无法更改默认策略中的这个布尔值。如果您的环境没有此类兼容性问题,请使用 setsebool -P selinuxuser_execstack off 命令在您的本地策略中将这个布尔值设置为 off。
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)
在每个配置集中,以下两条规则会受到影响:
当应用到 SSH 服务器时,每个规则都会配置一个选项(ClientAliveCountMax 和 ClientAliveInterval),其行为不再像之前一样。因此,当 OpenSSH 达到这些规则配置的超时时,OpenSSH 不再断开空闲的 SSH 用户。作为临时解决方案,这些规则已从 DISA STIG for RHEL 9 和 DISA STIG with GUI for RHEL 9 配置集中临时删除,直到开发出解决方案为止。
GnuPG 错误地允许使用 SHA-1 签名,即使通过 crypto-policies 禁止使用 SHA-1 签名
无论系统范围的加密策略中定义的设置如何,GNU Privacy Guard(GnuPG)加密软件可以创建和验证使用 SHA-1 算法的签名。因此,您可以在 DEFAULT 加密策略中将 SHA-1 用于加密目的,这与这个不安全算法的系统范围弃用没有一致的。
要临时解决这个问题,请不要使用涉及 SHA-1 的 GnuPG 选项。因此,您将使用不安全的 SHA-1 签名来防止 GnuPG 降低默认的系统安全性。
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
如需了解更多详细信息和临时解决方案,请参阅相关的 知识库文章。
在 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.service、fdo-owner-onboarding-server.service、fdo-rendezvous-server.service 无法连接到 FDO 数据库,如 PostgreSQL 和 SQLite。因此,系统无法通过使用支持凭证和其他参数的数据库(如存储所有权凭证)来启动 FDO 。
您可以通过执行以下步骤来临时解决这个问题:
创建一个名为
local_fdo_update.cil的新文件,并输入缺少的 SELinux 策略规则:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装策略模块软件包:
semodule -i local_fdo_update.cil
# semodule -i local_fdo_update.cilCopy to Clipboard Copied! Toggle word wrap Toggle overflow
因此,FDO 可以连接到 PostgreSQL 数据库,并修复 /var/lib/fdo/ 上与 SQLite 权限相关的问题,其中 SQLite 数据库文件应该位于此目录中。
RHEL 9.0-9.3 中的 OpenSSH 与 OpenSSL 3.2.2 不兼容
RHEL 9.0, 9.1, 9.2 和 9.3 提供的 openssh 软件包严格检查 OpenSSL 版本。因此,如果您将 openssl 软件包升级到 3.2.2 及更高版本,且您将 openssh 软件包保持在 8.7p1-34.el9_3.3 或更早版本,sshd 服务将无法启动,并显示 OOpenSSL version mismatch 错误消息。
要临时解决这个问题,请将 openssh 软件包升级到 8.7p1-38.el9 及更新版本。如需更多信息,请参阅 sshd 无法工作,OpenSSL 版本不匹配 解决方案(红帽知识库)。
现在,在启用了 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 "。
11.3. 软件管理 复制链接链接已复制到粘贴板!
安装过程有时将变为无响应
安装 RHEL 时,安装过程有时会变得无响应。/tmp/packaging.log 文件在末尾显示以下消息:
10:20:56,416 DDEBUG dnf: RPM transaction over.
10:20:56,416 DDEBUG dnf: RPM transaction over.
要临时解决这个问题,请重启安装过程。
在本地仓库上运行 createrepo_c 会产生重复的 repodata 文件
当您在本地存储库上运行 createrepo_c 命令时,它会产生 repodata 文件的重复副本,其中一个副本是压缩的,另一个副本不是。但是,没有可用的临时解决方案,您可以安全地忽略重复的文件。createrepo_c 命令会产生重复的副本,因为其他工具中的要求和差异依赖于使用 createrepo_c 创建的存储库。
11.4. Shell 和命令行工具 复制链接链接已复制到粘贴板!
RHEL 9 中不默认安装 chkconfig 软件包
RHEL 9 中不默认安装 chkconfig 软件包(更新和查询系统服务运行级别信息)。
要管理服务,请使用 systemctl 命令或手动安装 chkconfig 软件包。
有关 systemd 的更多信息,请参阅 systemd 简介。有关如何使用 systemctl 实用程序的步骤,请参阅使用 systemctl 管理系统服务。
Bugzilla:2053598[1]
设置控制台 keymap 在最小安装上需要 libxkbcommon 库
在 RHEL 9 中,某些 systemd 库依赖项已从动态链接转换为动态加载,以便您的系统在运行时打开并使用库(当它们可用时)。有了这个更改,除非您安装必要的库,否则无法使用依赖于此类库的功能。这也会影响在最小安装的系统上设置键盘布局。因此,localectl --no-convert set-x11-keymap gb 命令会失败。
要临时解决这个问题,请安装 libxkbcommon 库:
dnf install libxkbcommon
# dnf install libxkbcommon
sysstat 软件包中的 %vmeff 指标显示不正确的值
sysstat 软件包提供 %vmeff 指标来测量页面回收效率。sar -B 命令返回的 %vmeff 列的值不正确,因为 sysstat 不会解析后续内核版本提供的所有相关的 /proc/vmstat 值。要临时解决这个问题,您可以从 /proc/vmstat 文件中手动计算 %vmeff 值。详情请查看 为什么在 RHEL 8 和 RHEL 9 中 sar (1) 工具报告 %vmeff 值超过 100 % ?
服务位置协议(SLP)易受到通过 UDP 的攻击
OpenSLP 为本地区域网络中的应用程序提供动态配置机制,如打印机和文件服务器。但是,SLP 会受到通过连接到互联网的系统上的 UDP 的反射性拒绝服务放大攻击。SLP 允许未经身份验证的攻击者注册新服务,而不受由 SLP 实现设置的限制。通过使用 UDP 和欺骗源地址,攻击者可以请求服务列表,对欺骗的地址创建拒绝服务。
要防止外部攻击者访问 SLP 服务,请在不受信任的网络上运行的所有系统上禁用 SLP,比如那些直接连接到互联网的系统。另外,要解决这个问题,请配置防火墙以阻止或过滤 UDP 和 TCP 端口 427 上的流量。
Jira:RHEL-6995[1]
启用了安全引导的 UEFI 系统上的 ReaR 救援镜像无法使用默认设置引导
使用 rear mkrescue 或 rear mkbackup 命令创建 ReaR 镜像失败,并显示以下信息:
grub2-mkstandalone may fail to make a bootable EFI image of GRUB2 (no /usr/*/grub*/x86_64-efi/moddep.lst file) (...) grub2-mkstandalone: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.
grub2-mkstandalone may fail to make a bootable EFI image of GRUB2 (no /usr/*/grub*/x86_64-efi/moddep.lst file)
(...)
grub2-mkstandalone: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.
缺少的文件是 grub2-efi-x64-modules 软件包的一部分。如果您安装此软件包,则会成功创建救援镜像,且没有任何错误。当启用了 UEFI 安全引导时,救援镜像无法引导,因为它使用未签名的引导装载程序。
要临时解决这个问题,请在 /etc/rear/local.conf 或 /etc/rear/site.conf (ReaR 配置文件)中添加以下变量:
UEFI_BOOTLOADER=/boot/efi/EFI/redhat/grubx64.efi SECURE_BOOT_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi
UEFI_BOOTLOADER=/boot/efi/EFI/redhat/grubx64.efi
SECURE_BOOT_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi
使用推荐的临时解决方案,即使在没有 grub2-efi-x64-modules 软件包的系统上也可以成功生成镜像,它可在启用了安全引导的系统上启动。另外,在系统恢复过程中,已恢复的系统的引导加载程序被设置为 EFI shim 引导装载程序。
有关 UEFI、安全引导 和 shim 引导装载程序 的更多信息,请参阅 UEFI:引导系统时会发生什么 知识库文章。
Jira:RHELDOCS-18064[1]
sar 和 iostat 工具产生的 %util 列无效
当您使用 sar 或 iostat 工具收集系统使用率统计时,sar 或 iostat 产生的 %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]
11.5. 基础架构服务 复制链接链接已复制到粘贴板!
bind 和 unbound 都禁用基于 SHA-1- 的签名验证
bind 和 unbound 组件禁用所有 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 记录失败来验证 解决方案。
如果在多个区域中使用相同的可写区域文件,named 无法启动
BIND 不允许在多个区域中具有相同的可写区域文件。因此,如果配置包含多个区域,它们共享到可由 named 服务修改的文件的路径,则 named 无法启动。要临时解决这个问题,请使用 in-view 子句在多个视图间共享一个区域,并确保为不同的区使用不同的路径。例如,在路径中包含视图名称。
请注意,可写的区域文件通常在带有允许的动态更新的区域、DNSSEC 维护的次要区域或区域中使用。
libotr 与 FIPS 不兼容
libotr 库和非记录(OTR)消息的工具包为即时消息会话提供了端到端加密。但是,由于其使用了 gcry_pk_sign() 和 gcry_pk_verify() 函数,libotr 库不符合联邦信息处理标准(FIPS)。因此,您无法在 FIPS 模式下使用 libotr 库。
11.6. 网络 复制链接链接已复制到粘贴板!
从挂起模式恢复后,蓝牙设备无法正常工作
当您的系统挂起或恢复时,RTL8852BE Wi-Fi 卡无法正常工作。因此,您将注意到恢复过程中的音频中断,或者音频在从挂起模式恢复后无法正常工作。作为临时解决方案,您需要更新 RHEL Wi-Fi 驱动程序。
Jira:RHEL-24414[1]
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。
Bugzilla:2000616[1]
更新会话密钥失败会导致连接中断
内核传输层安全(kTLS)协议不支持更新会话密钥,这些密钥由对称密码使用。因此,用户无法更新密钥,从而导致连接中断。要临时解决这个问题,请禁用 kTLS。因此,解决这一问题,可以成功更新会话密钥。
Bugzilla:2013650[1]
使用 ifcfg 文件重命名网络接口失败
在 RHEL 9 中,默认情况下不会安装 initscripts 软件包。因此,使用 ifcfg 文件重命名网络接口会失败。要解决这个问题,红帽建议您使用 udev 规则或链接文件来重命名接口。详情请查看 Consistent 网络接口设备命名 和 systemd.link(5) man page。
如果您无法使用推荐的解决方案之一,请安装 initscripts 软件包。
Bugzilla:2018112[1]
默认情况下不安装 initscripts 软件包
默认情况下,不会安装 initscripts 软件包。因此,ifup 和 ifdown 工具不可用。一个替代的方法是,可以使用 nmcli connection up 和 nmcli connection down 命令来启用和禁用连接。如果这个替代方法无法正常工作,请报告这个问题并安装 NetworkManager-initscripts-updown 软件包,该软件包为 ifup 和 ifdown 工具提供了一个 NetworkManager 解决方案。
iwl7260-firmware 破坏了 Intel Wi-Fi 6 AX200、AX210 和 Lenovo ThinkPad P1 Gen 4 上的 Wi-Fi
在将 iwl7260-firmware 或 iwl7260-wifi 驱动程序更新到 RHEL 9.1 及之后的版本提供的版本后,硬件会进入不正确的内部状态。错误地报告其状态。因此,Intel Wifi 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
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
未确认的临时解决方法是关闭系统并再次打开。不要重启。
Bugzilla:2129288[1]
PF 重置过程中的 DPLL 稳定性
Digital Phase-Locked Loop (DPLL)系统遇到了一些问题,包括未初始化的互斥锁使用情况和 pin 阶段调整的错误处理,特别是在物理功能(PF)重置过程中。这些问题导致 DPLL 和 pin 配置的不稳定的管理,导致数据状态不一致和连接管理不善。
要解决这个问题,互斥锁要被正确初始化,PF 重置过程中更新 pin 阶段调整、DPLL 数据和连接状态的机制要被纠正。因此,DPLL 系统现在可以在重置过程中可靠地执行,并具有准确的阶段调整和一致的连接状态,提高了时钟同步的整体稳定性。
Jira:RHEL-36283[1]
11.7. 内核 复制链接链接已复制到粘贴板!
当从 4k 迁移到 64k 页大小内核时,依赖内核页大小的客户应用程序可能需要更新
RHEL 与 4k 和 64k 页大小内核都兼容。当从 4k 迁移到 64k 页大小内核时,依赖 4k 内核页大小的客户应用程序可能需要更新。已知的实例包括 jemalloc 和依赖的应用程序。
jemalloc 内存分配器库对系统运行时环境中使用的页大小敏感。库可以构建成与 4k 和 64k 页大小内核兼容,例如,当使用 --with-lg-page=16 或 env JEMALLOC_SYS_WITH_LG_PAGE=16 配置时(用于 jemallocator Rust crate)。因此,运行时环境的页大小与编译依赖于 jemalloc 的二进制文件时出现的页大小之间可能会出现不匹配。因此,使用基于 jemalloc 的应用程序会触发以下错误:
<jemalloc>: Unsupported system page size
<jemalloc>: Unsupported system page size
要避免这个问题,请使用以下方法之一:
- 使用合适的构建配置或环境选项来创建 4k 和 64k 页大小兼容二进制文件。
-
在引导到最后的 64k 内核和运行时环境后,构建任何使用
jemalloc的用户空间软件包。
例如,您可以构建 fd-find 工具,该工具也通过 cargo Rust 软件包管理器使用 jemalloc。在最后的 64k 环境中,输入 cargo 命令触发所有依赖项的新构建,以解决页大小中的不匹配:
cargo install fd-find --force
# cargo install fd-find --force
Bugzilla:2167783[1]
使用 dnf 升级到最新的实时内核不会并行安装多个内核版本
使用 dnf 软件包管理器安装最新的实时内核需要解决软件包依赖,来同时保留新的和当前的内核版本。默认情况下,dnf 在升级过程中删除旧的 kernel-rt 软件包。
作为临时解决方案,将当前的 kernel-rt 软件包添加到 /etc/yum.conf 配置文件中的 installonlypkgs 选项中,例如 installonlypkgs=kernel-rt。
installonlypkgs 选项将 kernel-rt 附加到 dnf 使用的默认列表中。installonlypkgs 指令中列出的软件包不会被自动删除,因此支持多个内核版本来同时安装。
请注意,安装了多个内核是一种在使用新内核版本时具有回退选项的方法。
Bugzilla:2181571[1]
默认情况下,Delay Accounting 功能不会显示 SWAPIN 和 IO% 统计列
Delayed Accounting 功能与早期版本不同,它们会被默认禁用。因此,iotop 应用程序不显示 SWAPIN 和 IO% 统计列,并显示以下警告:
CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO%
CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO%
Delay Account 功能使用 taskstats 接口,为属于线程组的所有任务或线程提供延迟统计。当任务等待 kernel 资源可用时,会延迟执行,例如:等待空闲 CPU 运行的任务。统计有助于设置任务的 CPU 优先级、I/O 优先级和 rss 限制值。
作为临时解决方案,您可以在运行时或引导时启用 delayacct 引导选项。
要在运行时启用
delayacct,请输入:echo 1 > /proc/sys/kernel/task_delayacct
echo 1 > /proc/sys/kernel/task_delayacctCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,这个命令可启用系统范围功能,但只适用于您在运行此命令后启动的任务。
要在引导时永久启用
delayacct,请使用以下步骤之一:编辑
/etc/sysctl.conf文件以覆盖默认参数:在
/etc/sysctl.conf文件中添加以下条目:kernel.task_delayacct = 1
kernel.task_delayacct = 1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息,请参阅 如何在 Red Hat Enterprise Linux 上设置 sysctl 变量。
- 重启系统以使更改生效。
在内核命令行中添加
delayacct选项。如需更多信息,请参阅 配置内核命令行参数。
因此,iotop 应用程序会显示 SWAPIN 和 IO% 统计列。
Bugzilla:2132480[1]
具有大核数的系统上实时内核的硬件认证可能需要传递 skew-tick=1 引导参数
具有大量插槽和大核数的大型或中型系统可能会因为对 xtime_lock(其在计时系统中使用)的锁争用而遇到延迟峰值。因此,硬件认证中的延迟峰值和延迟可能会在多处理系统上发生。作为临时解决方案,您可以通过添加 skew_tick=1 引导参数,偏移每个 CPU 的计时器刻度,来在不同的时间启动。
要避免锁冲突,请启用 skew_tick=1 :
使用
grubby启用skew_tick=1参数。grubby --update-kernel=ALL --args="skew_tick=1"
# grubby --update-kernel=ALL --args="skew_tick=1"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重启以使更改生效。
通过显示您在启动过程中传递的内核参数来验证新设置。
cat /proc/cmdline
cat /proc/cmdlineCopy to Clipboard Copied! Toggle word wrap Toggle overflow
请注意,启用 skew_tick=1 会导致功耗的大量增加,因此只有在运行延迟敏感实时工作负载时才必须启用它。
Jira:RHEL-9318[1]
kdump 机制无法捕获 LUKS 加密目标上的 vmcore 文件
当在使用 Linux Unified Key Setup(LUKS)加密分区的系统中运行 kdump 时,系统需要特定的可用内存。当可用内存小于所需内存量时,systemd-cryptsetup 服务将无法挂载分区。因此,第二个内核无法捕获 LUKS 加密目标上的崩溃转储文件。
作为临时解决方案,查询 推荐的 crashkernel 值 ,并逐渐将内存大小增加到合适的值。推荐的 crashkernel 值 可作为设置所需内存大小的参考。
打印估计的崩溃内核值。
kdumpctl estimate
# kdumpctl estimateCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过增加
crashkernel值来配置所需的内存量。grubby --args=crashkernel=652M --update-kernel=ALL
# grubby --args=crashkernel=652M --update-kernel=ALLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启系统以使更改生效。
reboot
# rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow
因此,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
dracut: Failed to set up znet
kdump: mkdumprd: failed to make kdump initrd
作为临时解决方案,请使用以下解决方案之一:
通过重新使用具有
znet配置信息的连接配置集来配置网络绑定或桥接:nmcli connection modify enc600 master bond0 slave-type bond
$ nmcli connection modify enc600 master bond0 slave-type bondCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
znet配置信息从不活跃连接配置集复制到活跃连接配置集中:运行
nmcli命令查询NetworkManager连接配置集:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用不活跃连接中的配置信息更新活跃的配置集:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
kdump服务以使更改生效:kdumpctl restart
# kdumpctl restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
kmod 中的 weak-modules 不能与模块间依赖一起工作
kmod 软件包提供的 weak-modules 脚本决定了哪些模块与安装的内核 kABI 兼容。但是,在检查模块的内核兼容性时,weak-modules 按照构建它们的内核的从高到低版本来处理模块符号依赖项。因此,针对不同内核版本构建的具有相互依赖关系的模块可能会被解释为不兼容,因此 weak-modules 脚本不能在此场景下工作。
要临时解决这个问题,请在安装新内核前针对最新的库存内核构建或放置额外的模块。
Bugzilla:2103605[1]
Intel® i40e 适配器在 IBM Power10 上永久失败
当 i40e 适配器在 IBM Power10 系统上遇到 I/O 错误时,增强的 I/O 错误处理(EEH)内核服务会触发网络驱动程序的重置和恢复。 但是,EEH 重复报告 I/O 错误,直到 i40e 驱动程序达到预先定义的 EEH 停止响应的最大值。因此,EEH 会导致设备永久失败。
Jira:RHEL-15404[1]
dkms 使用在 64 位 ARM CPU 上正确编译的驱动程序对程序失败提供不正确的警告
动态内核模块支持(dkms)工具无法识别适用于 4 KB 和 64 KB 页面大小的内核的 64 位 ARM CPU 的内核标头。因此,当执行了内核更新,且 kernel-64k-devel 软件包未安装时,dkms 会提供一条有关为什么程序在正确编译的驱动程序上失败的错误警告。要临时解决这个问题,请安装 kernel-headers 软件包,其包含用于两种类型的 ARM CPU 架构的头文件,且不特定于 dkms 及其要求。
Jira:RHEL-25967[1]
11.8. 文件系统和存储 复制链接链接已复制到粘贴板!
NVMe/TCP 不支持设备映射器多路径
使用带有 nvme-tcp 驱动程序的设备映射器多路径可能会导致 Call Trace 警告和系统不稳定。要临时解决这个问题,NVMe/TCP 用户必须启用原生 NVMe 多路径,且不能在 NVMe 中使用 device-mapper-multipath 工具。
默认情况下,RHEL 9 中启用了原生 NVMe 多路径。如需更多信息,请参阅在 NVMe 设备 上启用多路径。
Bugzilla:2033080[1]
blk-availability systemd 服务停用了复杂的设备堆栈
在 systemd 中,默认的块停用代码并不总是正确处理虚拟块设备的复杂堆栈。在一些配置中,虚拟设备在关闭过程中可能无法被删除,这会导致记录错误信息。要临时解决这个问题,请执行以下命令来停用复杂块设备堆栈:
systemctl enable --now blk-availability.service
# systemctl enable --now blk-availability.service
因此,复杂虚拟设备堆栈会在关闭过程中被正确停用,且不会生成错误消息。
Bugzilla:2011699[1]
对于启用了配额的情况下挂载的 XFS 文件系统,不再可能禁用配额记帐
从 RHEL 9.2 开始,无法在已挂载的启用了配额的 XFS 文件系统上禁用配额记帐。
要临时解决这个问题,请去掉配额选项,重新挂载文件系统来禁用配额记账。
Bugzilla:2160619[1]
对 NVMe 设备的 udev 规则更改
对 NVMe 设备有一个 udev 规则更改,即添加了 OPTIONS="string_escape=replace" 参数。如果您设备的序列号前面有空格,则这会导致某些厂商的对按 id 命名的磁盘进行更改。
不能在 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 驱动程序时,内核在操作系统启动后 panic。要临时解决这个问题,请向内核引导命令行中添加 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 软件包及其依赖项。
即使对 qedf 适配器,lldpad 也是自动启用
当使用 QLogic Corp 时。FastLinQ QL45000 系列 10/25/40/50GbE,FCOE 控制器在运行 RHV 的系统上自动启用 lldpad 守护进程。因此,I/O 操作被中止,并显示一个错误,例如 [qedf_eh_abort:xxxx]:1: Aborting io_req=ff5d85a9dcf3xxxx。
要临时解决这个问题,请禁用 Link 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]
RHEL 安装程序不会在 aarch64 上自动发现 iSCSI 设备或将其用作引导设备
在 aarch64 上运行的 RHEL 安装程序中没有 iscsi_ibft 内核模块可防止自动发现固件中定义的 iSCSI 设备。这些设备不会在安装程序中自动显示,当使用 GUI 手动添加这些设备时,也不会将它们作为引导设备选择。作为临时解决方案,在引导安装程序时将 "inst.nonibftiscsiboot" 参数添加到内核命令行中,然后使用 GUI 手动附加 iSCSI 设备。因此,安装程序可以将附加的 iSCSI 设备识别为可引导设备,安装可以按预期完成。
如需更多信息,请参阅 KCS 解决方案。
Jira:RHEL-56135[1]
11.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]
11.10. 动态编程语言、网页和数据库服务器 复制链接链接已复制到粘贴板!
python3.11-lxml 不提供 lxml.isoschematron 子模块
python3.11-lxml 软件包不与 lxml.isoschematron 子模块一起分发,因为它不是开源许可证。子模块实现 ISO 架构支持。作为替代方案,lxml.etree.Schematron 类种提供了 pre-ISO-Schematron 验证。python3.11-lxml 软件包的其余内容不受影响。
MySQL 和 MariaDB 中的 --ssl-fips-mode 选项不会改变 FIPS 模式
RHEL 中 MySQL 和 MariaDB 中的 --ssl-fips-mode 选项与上游中的工作方式不同。
在 RHEL 9 中,如果您使用 --ssl-fips-mode 作为 mysqld 或 mariadbd 守护进程的参数,或者在 MySQL 或 MariaDB 服务器配置文件中使用 ssl-fips-mode,则 --ssl-fips-mode 不会更改这些数据库服务器的 FIPS 模式。
相反:
-
如果将
--ssl-fips-mode设为ON,则mysqld或mariadbd服务器守护进程不会启动。 -
如果您在启用了 FIPS 的系统上将
--ssl-fips-mode设为OFF,则mysqld或mariadbd服务器守护进程仍然在 FIPS 模式下运行。
这是预期的,因为应该为整个 RHEL 系统启用或禁用 FIPS 模式,而不是为特定组件。
因此,不要在 RHEL 中的 MySQL 或 MariaDB 中使用 --ssl-fips-mode 选项。相反,请确保在整个 RHEL 系统上启用 FIPS 模式:
- 最好安装启用了 FIPS 模式的 RHEL。在安装过程中启用 FIPS 模式可确保系统使用 FIPS 批准的算法生成所有的密钥,并持续监控测试。有关在 FIPS 模式下安装 RHEL 的详情,请参考 在 FIPS 模式下安装系统。
- 或者,您可以按照 将系统切换成 FIPS 模式 中的流程,为整个 RHEL 系统切换 FIPS 模式。
Git 无法从具有潜在不安全所有权的存储库克隆或获取
为了防止远程代码执行并缓解 CVE-2024-32004,在 Git 中引入了更严格的所有权检查以克隆本地存储库。有了此更新,Git 将具有潜在不安全所有权的本地存储库视为可疑的存储库。
因此,如果您试图通过 git-daemon 从本地托管的存储库克隆,且您不是存储库的所有者,则 Git 返回一条有关可疑的所有者的安全警报,且无法从存储库克隆或获取。
要临时解决这个问题,请执行以下命令来将存储库明确标记为安全:
git config --global --add safe.directory /path/to/repository
git config --global --add safe.directory /path/to/repository
Jira:RHELDOCS-18435[1]
11.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
# update-crypto-policies --set DEFAULT:SHA1
如果 RHEL 9 Kerberos 代理与非 RHEL 9 的非 AD Kerberos 代理进行通信,则用户的 PKINIT 身份验证会失败
如果 RHEL 9 Kerberos 代理(客户端或 Kerberos 分发中心(KDC) 与不是 Active Directory (AD) 代理的非 RHEL-9 Kerberos 代理交互,则用户的 PKINIT 身份验证会失败。要临时解决这个问题,请执行以下操作之一:
将 RHEL 9 代理的 crypto-policy 设置为
DEFAULT:SHA1以允许验证 SHA-1 签名:update-crypto-policies --set DEFAULT:SHA1
# update-crypto-policies --set DEFAULT:SHA1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新非 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 工作。
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
# update-crypto-policies --set FIPS:AD-SUPPORT
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
[libdefaults]
pkinit_dh_min_bits = 1759
因此,Heimdal 客户端可以针对 RHEL MIT KDC 完成 PKINIT 预验证。
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:'
# kadmin.local getprinc K/M | grep -E '^Key:'
如需更多信息,请参阅 AD 域用户无法登录到与符合 FIPS 的环境 KCS 解决方案。
使用 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
# update-crypto-policies --set FIPS:NO-ENFORCE-EMS
请注意,这个删除不符合 FIPS 140-3 要求。因此,您可以建立并接受不使用 EMS 的 TLS 1.2 连接,RHEL 7 IdM 客户端的安装可以成功。
在线备份和在线自动成员重建任务可能获得两个锁,从而导致死锁
如果在线备份和在线成员性重建任务尝试以相反的顺序获取相同的两个锁,则可能会导致无法恢复的死锁,需要您停止和重启服务器。要临时解决这个问题,请不要并行启动在线备份和在线自动成员重建任务。
Jira:RHELDOCS-18065[1]
dsconf config replace 无法处理多值属性
目前,dsconf config replace 命令无法将几个值设置为 multivalued 属性,如 nsslapd-haproxy-trusted-ip。
要临时解决这个问题,请使用 ldapmodify 工具。例如,如果要设置几个可信的 IP 地址,请运行以下命令:
如果组大小超过 1500 个成员,则 SSSD 会检索不完整的成员列表
在 SSSD 与活动目录集成的过程中,当组大小超过 1500 个成员时,SSSD 会检索不完整的组成员列表。出现这个问题是因为活动目录的 MaxValRange 策略(其限制单个查询中可检索的成员的数量)默认被设置为 1500。
要临时解决这个问题,请更改活动目录中的 MaxValRange 设置,以适应更大的组大小。
Jira:RHELDOCS-19603
11.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 = ad 和 id_provider = ipa 不受影响,因为它们使用 SASL 和 GSSAPI 保护的加密连接。
如果使用未加密的通信不安全,请在 /etc/sssd/sssd.conf 文件中将 ldap_id_use_start_tls 选项设置为 true 来强制使用 TLS。计划在以后的 RHEL 版本中更改的默认行为。
Jira:RHELPLAN-155168[1]
SSSD 可正确注册 DNS 名称
在以前的版本中,如果 DNS 被错误建立,第一次尝试注册 DNS 名称时,SSSD 总是失败。要临时解决这个问题,这个更新提供了一个新的参数 dns_resolver_use_search_list。设置 dns_resolver_use_search_list = false,以避免使用 DNS 搜索列表。
Bugzilla:1608496[1]
11.13. 桌面 复制链接链接已复制到粘贴板!
升级到 RHEL 9 后,VNC 没有运行
从 RHEL 8 升级到 RHEL 9 后,VNC 服务器无法启动,即使之前启用它。
要临时解决这个问题,在系统升级后手动启用 vncserver 服务:
systemctl enable --now vncserver@:port-number
# systemctl enable --now vncserver@:port-number
现在,每个系统引导后都会启用 VNC 并按预期启动。
用户创建屏幕没有响应
当使用图形用户界面安装 RHEL 时,用户创建屏幕没有响应。因此,在安装过程中创建用户更为困难。
要临时解决这个问题,请使用以下解决方案之一创建用户:
- 在 VNC 模式下运行安装并重新定义 VNC 窗口的大小。
- 完成安装过程后创建用户。
Jira:RHEL-11924[1]
WebKitGTK 无法在 IBM Z 上显示网页
当尝试在 IBM Z 架构上显示网页时,WebKitGTK 网页浏览器引擎会失败。网页保持空白,WebKitGTK 进程意外终止。
因此,您无法使用那些使用 WebKitGTK 的应用程序的某些功能来显示网页,如下所示:
- Evolution 邮件客户端
- GNOME 在线帐户设置
- GNOME 帮助应用程序
xorg -configure 无法在虚拟机上创建 Xorg 配置文件
运行 xorg -configure 以在虚拟机上创建 Xorg 配置文件会失败,因为缺少配置的设备。此问题会导致配置失败。要临时解决这个问题,请根据 Xorg 文档中介绍的指南手动构建 xorg.conf 文件,或使用扩展显示识别数据(EDID)覆盖到 Teak 显示分辨率等替代机制。有了这个临时解决方案,Xorg 服务器可以使用正确的配置。
Jira:RHELDOCS-20196[1]
11.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]
11.15. Web 控制台 复制链接链接已复制到粘贴板!
RHEL web 控制台中的 VNC 控制台无法在 ARM64 上正常工作
目前,当您在 ARM64 架构上的 RHEL web 控制台中导入虚拟机(VM),然后您尝试在 VNC 控制台中与其进行交互时,控制台不会对您的输入做出反应。
另外,当您在 ARM64 架构上的 web 控制台中创建虚拟机时,VNC 控制台不会显示您输入的最后几行。
Jira:RHEL-31993[1]
11.16. Red Hat Enterprise Linux 系统角色 复制链接链接已复制到粘贴板!
如果 firewalld.service 被屏蔽,使用 firewall RHEL 系统角色会失败
如果在 RHEL 系统上屏蔽了 firewalld.service,则 firewall RHEL 系统角色会失败。要临时解决这个问题,请对 firewalld.service 取消屏蔽:
systemctl unmask firewalld.service
systemctl unmask firewalld.service
无法使用环境名称注册系统
当在 rhc_environment 中指定环境名称时,rhc 系统角色注册系统失败。作为临时解决方案,请在注册时使用环境 ID 而不是环境名称。
在高可用性模式下作为 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]
mssql RHEL 系统角色无法配置带有 AD 集成的 Microsoft SQL Server
Microsoft SQL Server 服务不提供服务所需的用于活动目录(AD)集成的 adutil 工具。因此,您无法使用 mssql RHEL 系统角色在 RHEL 9 受管节点上配置此场景。没有可用的临时解决方案,您可以只使用 RHEL 系统角色来在 RHEL 9 上配置没有 AD 集成的 Microsoft SQL Server。
Jira:RHELDOCS-17720[1]
11.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-curl 和 qemu-kvm-block-ssh ,以启用 https 和 SSH 协议支持。或者,使用不同的连接协议或不同的安装源。
在虚拟机中使用 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 中手动打开 erms 和 fsrm。
Bugzilla:2077767[1]
带有故障切换设置的 hostdev 接口在热拔后无法进行热插
从正在运行的虚拟机(VM)中删除带有故障切换配置的 hostdev 网络接口后,该接口目前无法重新连接到同一正在运行的虚拟机。当前没有解决此问题的方法。
带有故障切换 VF 的虚拟机实时复制迁移失败
目前,如果虚拟机使用启用了虚拟功能(VF)故障转移功能的设备,则试图对一个正在运行的虚拟机(VM)进行 post-copy 迁移会失败。要临时解决这个问题,请使用标准迁移类型,而不要使用 post-copy 迁移方式。
主机网络无法在实时迁移过程中 ping 使用 VF 的虚拟机
当使用配置的虚拟功能 (VF) 实时迁移虚拟机时,如使用虚拟 SR-IOV 软件的虚拟机,虚拟机的网络不对其它设备看到,如 ping 之类的命令无法访问虚拟机。完成迁移后,问题将不再发生。
禁用 AVX 会导致虚拟机无法引导
在使用具有高级向量扩展(AVX)支持的 CPU 的主机上,尝试引导明确禁用 AVX 的虚拟机当前会失败,并触发虚拟机中的内核 panic。当前没有解决此问题的方法。
Bugzilla:2005173[1]
在网络接口重置后,Windows VM 无法获取 IP 地址
有时,Windows 虚拟机在自动网络接口重置后无法获取 IP 地址。因此,虚拟机无法连接到网络。要临时解决这个问题,在 Windows 设备管理器中禁用并重新启用网络适配器驱动程序。
Windows Server 2016 虚拟机有时会在热插拔 vCPU 后停止工作
目前,将 vCPU 分配给运行 Windows Server 2016 客户机操作系统的虚拟机(VM)可能会导致各种问题,如虚拟机意外终止、变得没有响应或重启。当前没有解决此问题的方法。
在具有 NVIDIA passthrough 设备的虚拟机上的冗余错误消息
使用带有 RHEL 9.2 及更新版本的操作系统的 Intel 主机机器时,带有直通 NVDIA GPU 设备的虚拟机(VM)会频繁地记录以下错误信息:
Spurious APIC interrupt (vector 0xFF) on CPU#2, should never happen.
Spurious APIC interrupt (vector 0xFF) on CPU#2, should never happen.
但是,这个错误消息不会影响虚拟机的功能,可以忽略。详情请查看 红帽知识库。
Bugzilla:2149989[1]
在主机上重启 OVS 服务可能会阻止在其上运行的虚拟机的网络连接
当 Open vSwitch (OVS)服务在主机上重启时或崩溃时,在此主机上运行的虚拟机(VM)无法恢复网络设备的状态。因此,虚拟机可能无法完全接收数据包。
此问题只会影响在 virtio 网络堆栈中使用压缩 virtqueue 格式的系统。
要临时解决这个问题,使用 virtio 网络设备定义中的 packed=off 参数来禁用压缩的 virtqueue。当禁用压缩的 virtqueue 时,网络设备的状态在某些情况下可以从 RAM 中恢复。
恢复中断的复制后虚拟机迁移可能会失败
如果虚拟机(VM)的复制后迁移中断,然后在同一传入端口上立即恢复,则迁移可能会失败,并显示以下错误 Address already in use
要临时解决这个问题,请在恢复后复制迁移或切换到迁移恢复的另一个端口前至少等待 10 秒。
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
sched: CPU #4's llc-sibling CPU #3 is not on the same node! [node: 1 != 0]. Ignoring dependency.
WARNING: CPU: 4 PID: 0 at arch/x86/kernel/smpboot.c:415 topology_sane.isra.0+0x6b/0x80
要临时解决这个问题,请不要将 AMD EPYC CPU 用于 NUMA 节点配置。
虚拟机迁移过程中的 NFS 故障会导致迁移失败和源虚拟机 coredump
目前,如果 NFS 服务或服务器在虚拟机(VM)迁移过程中关闭,则源虚拟机在重新开始运行时,其 QEMU 无法重新连接到 NFS 服务器。因此,迁移会失败,并在源虚拟机上发起 coredump。目前,还没有可用的临时解决方案。
PCIe ATS 设备无法在 Windows 虚拟机上工作
当您在带有 Windows 客户机操作系统的虚拟机的 XML 配置中配置 PCIe 地址转换服务(ATS)设备时,在引导虚拟机后,客户机不会启用 ATS 设备。这是因为 Windows 目前不支持 virtio 设备上的 ATS。
如需更多信息,请参阅 红帽知识库。
virsh blkiotune --weight 命令无法设置正确的 cgroup I/O 控制器值
目前,使用 virsh blkiotune --weight 命令设置 VM 权重无法按预期工作。该命令无法在 cgroup I/O 控制器接口文件中设置正确的 io.bfq.weight 值。目前还没有临时解决方案。
启动带有 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
# echo bus > /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
# cat /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
bus
详情请查看 红帽知识库。
Jira:RHEL-7212[1]
Windows 虚拟机可能会因为存储错误而变得无响应
在使用 Windows 客户机操作系统的虚拟机上,在高 I/O 负载下,系统在某些情况下会变得无响应。当发生这种情况时,系统会记录一个 viostor Reset to device, \Device\RaidPort3, was issued 错误。当前没有解决此问题的方法。
Jira:RHEL-1609[1]
在引导时,带有某些 PCI 设备的 Windows 10 虚拟机可能会变得无响应
目前,如果将具有本地磁盘后端的 virtio-win-scsi PCI 设备被附加到虚拟机,则使用 Windows 10 客户机操作系统的虚拟机(VM)会在启动过程中变得无响应。要临时解决这个问题,请引导启用了 multi_queue 选项的虚拟机。
Jira:RHEL-1084[1]
具有内存气球设备集的 Windows 11 虚拟机在重启过程中可能会意外关闭
目前,重启使用 Windows 11 客户机操作系统和内存气球设备的虚拟机(VM)在某些情况下会失败,并显示 DRIVER POWER STAT FAILURE 停止错误。当前没有解决此问题的方法。
Jira:RHEL-935[1]
virtio balloon 驱动程序有时在 Windows 10 虚拟机上无法工作
在某些情况下,virtio-balloon 驱动程序无法在使用 Windows 10 客户机操作系统的虚拟机(VM)上正常工作。因此,此类虚拟机可能无法有效地使用其分配的内存。当前没有解决此问题的方法。
virtio 文件系统在 Windows 虚拟机中性能不佳
目前,当在使用 Windows 客户机操作系统的虚拟机(VM)上配置了 virtio 文件系统(virtiofs)时,虚拟机中的 virtiofs 性能比使用 Linux 客户机的虚拟机中的性能要差的多。当前没有解决此问题的方法。
Jira:RHEL-1212[1]
在 Windows 虚拟机上热拔存储设备可能会失败
在使用 Windows 客户机操作系统的虚拟机(VM)上,当虚拟机运行时删除存储设备(也称为设备热拔)在某些情况下会失败。因此,存储设备一直附加在虚拟机上,磁盘管理器服务可能会变得无响应。当前没有解决此问题的方法。
将 CPU 热插到 Windows 虚拟机可能会导致系统失败
当将最大数量的 CPU 热插到启用了巨页的 Windows 虚拟机(VM)时,客户机操作系统可能会崩溃,并显示以下 停止错误 :
PROCESSOR_START_TIMEOUT
PROCESSOR_START_TIMEOUT
当前没有解决此问题的方法。
在 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
# cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
Mitigation: Safe RET
在同一主机上引导虚拟机后,虚拟机在 spec_rstack_overflow 参数中检测到一个漏洞。当查询日志中的参数时,它显示消息:
cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow Vulnerable: Safe RET, no microcode
# cat /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow
Vulnerable: Safe RET, no microcode
但是,这是一个假的警告消息,您可以忽略虚拟机中 /sys/devices/system/cpu/vulnerabilities/spec_rstack_overflow 文件的状态。
Jira:RHEL-17614[1]
虚拟机错误地报告了一个 AMD SRSO 漏洞
在具有 AMD Zen 3 和 4 CPU 架构的 RHEL 9 主机上运行的 RHEL 9.4 虚拟机错误地报告了一个 Speculative return Stack Overflow (SRSO)攻击漏洞:
lscpu | grep rstack
# lscpu | grep rstack
Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode
此问题是由于缺少 cpuid 标志而造成的,这个漏洞实际上在以下条件下的虚拟机中被完全缓解了:
-
您在主机上更新了
linux-firmware软件包,如下所述:cve-2023-20569。 -
主机内核启用了缓解,这是默认行为。如果启用了缓解,
Safe RET会主机上的lscpu命令输出中显示。
Jira:RHEL-26152[1]
链接状态在虚拟机上显示 up,即使当 e1000e 或 igb 型号接口的状态为 down 时
在引导虚拟机前,为 e1000 或 igb 型号网络接口的以太网链接状态设置为 down。尽管如此,在虚拟机引导后,网络接口保持 up 状态,因为当您将以太网链接状态设置为 down ,然后停止并启动虚拟机时,它会自动设置回 up。因此,不能保持网络接口的正确状态。作为临时解决方案,使用以下命令,在虚拟机中将网络接口状态设置为 down :
ip link set dev eth0 down
# ip link set dev eth0 down
或者,您可以在虚拟机运行时尝试删除并重新添加此网络接口。
SeaBIOS 无法从具有 4096 个字节扇区大小的磁盘引导
当使用 SeaBIOS 从使用 4096 字节的逻辑或物理扇区大小的磁盘引导虚拟机时,引导磁盘没有显示为可用,引导虚拟机失败。要从这样的磁盘引导虚拟机,请使用 UEFI 而不是 SeaBIOS。
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]
11.18. 云环境中的 RHEL 复制链接链接已复制到粘贴板!
在 Nutanix AHV 中使用 LVM 克隆或恢复 RHEL 9 虚拟机会导致非 root 分区消失
当在 Nutanix AHV 虚拟机监控程序上托管的虚拟机中运行 RHEL 9 客户机操作系统时,从快照中恢复虚拟机或克隆虚拟机目前会导致虚拟机中的非 root 分区在虚拟机中使用逻辑卷管理(LVM)时消失。因此,会出现以下问题:
- 从快照恢复虚拟机后,虚拟机无法引导,而是进入紧急模式。
- 通过克隆创建的虚拟机无法引导,而是进入紧急模式。
要临时解决这个问题,在虚拟机的紧急模式下执行以下操作:
-
删除 LVM 系统设备文件:
rm /etc/lvm/devices/system.devices。 -
重新创建 LVM 设备设置:
vgimportdevices -a. - 重启虚拟机。
这样,克隆或恢复的虚拟机可以正确引导。
另外,为了避免这个问题发生,请在克隆虚拟机或创建虚拟机快照前进行以下操作:
-
取消注释
/etc/lvm/lvm.conf文件中的use_devicesfile = 0行。 重新生成
initramfs。要做到这一点,使用虚拟机中的以下步骤,并将 < ;kernelVersion > 替换为您要重建的内核的完整版本。备份当前的
initramfs配置:cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bak
# cp /boot/initramfs-<kernelVersion>.img /boot/initramfs-<kernelVersion>.img.bakCopy to Clipboard Copied! Toggle word wrap Toggle overflow 构建
initramfs:dracut -f /boot/initramfs-<kernelVersion>.img <kernelVersion>
# dracut -f /boot/initramfs-<kernelVersion>.img <kernelVersion>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 重启虚拟机以验证引导是否成功。
Bugzilla:2059545[1]
在 ESXi 上自定义 RHEL 9 客户机有时会导致网络问题
目前,在 VMware ESXi hypervisor 中自定义 RHEL 9 客户机操作系统无法正常工作。因此,如果客户机使用这样的密钥文件,它有不正确的网络设置,如 IP 地址或网关。
有关详情和临时解决方案说明,请参阅 VMware 知识库。
Bugzilla:2037657[1]
如果 RHEL 实例是由 cloud-init 提供的,且使用 NFSv3 挂载条目配置的,则其在 Azure 上无法引导
目前,如果 VM 是由 cloud-init 工具提供的,且虚拟机的客户机操作系统在 /etc/fstab 文件中有 NFSv3 挂载条目,则在 Microsoft Azure 云平台上引导 RHEL 虚拟机(VM)会失败。当前没有解决此问题的方法。
Bugzilla:2081114[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.
Cannot open access to console, the root account is locked.
See sulogin(8) man page for more details.
Press Enter to continue.
这个问题主要影响大型虚拟机,因为它们在引导序列中花费了大量时间。
要临时解决这个问题,请编辑机器上的 /etc/fstab 文件,并向 /boot 和 /boot/efi 挂载点添加额外的超时选项。例如:
UUID=e43ead51-b364-419e-92fc-b1f363f19e49 /boot xfs defaults,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 0 UUID=7B77-95E7 /boot/efi vfat defaults,uid=0,gid=0,umask=077,shortname=winnt,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 2
UUID=e43ead51-b364-419e-92fc-b1f363f19e49 /boot xfs defaults,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 0
UUID=7B77-95E7 /boot/efi vfat defaults,uid=0,gid=0,umask=077,shortname=winnt,x-systemd.device-timeout=600,x-systemd.mount-timeout=600 0 2
Jira:RHELDOCS-16979[1]
在某些情况下,启用 Hyper-V 启蒙不会改进 CPU 优化
在使用 Windows 客户机操作系统的虚拟机(VM)上,在某些情况下启用 Hyper-V 启蒙不会导致在虚拟机的 CPU 使用率方面预期的改进。当前没有解决此问题的方法。
Jira:RHEL-17331[1]
11.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
# sos report -k processor.timeout=1800
-
对于永久性更改,请编辑
/etc/sos/sos.conf文件的[plugin_options]部分:
[plugin_options] # Specify any plugin options and their values here. These options take the form # plugin_name.option_name = value #rpm.rpmva = off processor.timeout = 1800
[plugin_options]
# Specify any plugin options and their values here. These options take the form
# plugin_name.option_name = value
#rpm.rpmva = off
processor.timeout = 1800
示例值设为 1800。特定的超时值高度依赖于特定的系统。要适当地设置插件超时,您可以首先通过运行以下命令来估算收集一个没有超时的插件所需的时间:
time sos report -o processor -k processor.timeout=0 --batch --build
# time sos report -o processor -k processor.timeout=0 --batch --build
Bugzilla:1869561[1]
11.20. 容器 复制链接链接已复制到粘贴板!
Podman 和 bootc 没有共享同样的注册中心登录过程
在拉取镜像时,Podman 和 bootc 使用不同的注册中心登录过程。因此,如果您使用 Podman 登录到镜像,登录到 bootc 的注册中心将不适用于该镜像。当您为 RHEL 系统安装镜像模式时,使用以下命令登录到 registry.redhat.io:
podman login registry.redhat.io <username_password>
# podman login registry.redhat.io <username_password>
然后,您可以使用以下命令尝试切换到 registry.redhat.io/rhel9/rhel-bootc 镜像:
bootc switch registry.redhat.io/rhel9/rhel-bootc:9.4
# bootc switch registry.redhat.io/rhel9/rhel-bootc:9.4
您应该可以看到以下消息:
Queued for next boot: registry.redhat.io/rhel9/rhel-bootc:9.4
Queued for next boot: registry.redhat.io/rhel9/rhel-bootc:9.4
但是显示了一个错误:
ERROR Switching: Pulling: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: unable to retrieve auth token: invalid username/password: unauthorized: Please login to the Red Hat Registry using your Customer Portal credentials. Further instructions can be found here: https://access.redhat.com/RegistryAuthentication
ERROR Switching: Pulling: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: unable to retrieve auth token: invalid username/password: unauthorized: Please login to the Red Hat Registry using your Customer Portal credentials. Further instructions can be found here: https://access.redhat.com/RegistryAuthentication
要临时解决这个问题,请按照步骤 配置容器拉取 secret 操作,以使用 bootc 验证过的注册中心。
Jira:RHELDOCS-18471[1]
在较旧的容器镜像中运行 systemd 无法正常工作
在较旧的容器镜像(如 centos:7)中运行 systemd 将无法正常工作:
podman run --rm -ti centos:7 /usr/lib/systemd/systemd
$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd
Storing signatures
Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
[!!!!!!] Failed to mount API filesystems, freezing.
要临时解决这个问题,请使用以下命令:
mkdir /sys/fs/cgroup/systemd mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd
# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd
Jira:RHELPLAN-96940[1]
默认不扩展根文件系统
当使用不包括 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'
/usr/bin/growpart /dev/vda 4
unshare -m bin/sh -c 'mount -o remount,rw /sysroot && xfs_growfs /sysroot'
-
包括一个自定义逻辑,以为辅助文件(例如
/var/lib/containers)系统使用额外的空间。
默认情况下,物理根存储挂载在 /sysroot 分区。
附录 A. 按组件划分的问题单列表 复制链接链接已复制到粘贴板!
在本文档中列出了 Bugzilla 和 JIRA 问题单以供参考。这些链接会指向本文档中描述问题单的发行注记。
附录 B. 修订历史 复制链接链接已复制到粘贴板!
0.1-82025 年 10 月 9 日星期四,Gabriela Fialová(gfialova@redhat.com)
- 添加了已弃用的功能 RHELDOCS-20097 (内核)
0.1-7Wed 03 Sept 2025, Gabriela Fialová(gfialova@redhat.com)
- 更新了已弃用的功能 RHELDOCS-17532 (安全)
0.1-6Wed Aug 06 2025, Gabriela Fialová(gfialova@redhat.com)
- 在 Jira:RHELDOCS-20196 (KafkaConnect)中添加了已知问题
0.1-5Thu Jul 31 2025, Gabriela Fialová(gfialova@redhat.com)
- RHEL-15501 (Shells 和命令行工具)中的清晰单词.
0.1-4Thu Jun 19 2025, Gabriela Fialová(gfialova@redhat.com)
- 在 RHELDOCS-20464 (IdM)中添加了已弃用的功能
0.1-32025 年 5 月 20 日星期二,Gabriela Fialová(gfialova@redhat.com)
- 删除了程序错误修复 BZ-2094673 (IdM)
0.1-22025 年 5 月 12 日星期一,Gabriela Fialová(gfialova@redhat.com)
- 更新了客户门户网站实验室部分
0.1-12021 年 4 月 22 日星期二,Marc Muehlfeld (mmuehlfeld@redhat.com)
- 添加了一个增强 RHEL-83437 (动态编程语言、Web 和数据库服务器)
0.1-02025 年 3 月 20 日星期四, Gabriela Fialová (gfialova@redhat.com)
- 在 RHEL-35565 中更新了一个新功能(IdM)
0.0-92025 年 3 月 18 日星期二,Gabriela Fialová(gfialova@redhat.com)
- 在 RHEL-82566 中添加了一个已知问题(安装程序)
0.0-82025 年 3 月 11 日星期二, Gabriela Fialová (gfialova@redhat.com)
- 更新了 RHEL-30730 中的一个已弃用的功能(文件系统和存储)
0.0-72025 年 3 月 6 日星期四, Gabriela Fialová (gfialova@redhat.com)
- 更新了 RHELPLAN-145900 中的一个技术预览(IdM)
0.0-62025 年 2 月 27 日星期四,Marc Muehlfeld (mmuehlfeld@redhat.com)
- 在 RHELDOCS-19773 中添加了一个技术预览(网络)。
- 在 RHELDOCS-19774 中添加了已一个弃用的功能(网络)
- 删除了 composefs 的一个增强,因为它仍是一个技术预览(容器)
0.0-52025 年 2 月 24 日星期一, Gabriela Fialová (gfialova@redhat.com)
- 在 RHELDOCS-19626 中添加了一个已知问题(安全)
- 更新了 RHELDOCS-18125 中的一个功能(云环境中的RHEL)
0.0-42025 年 2 月 19 日星期三,Gabriela Fialová(gfialova@redhat.com)
- 在 RHELDOCS-18391 中添加了一个新功能(基础设施服务)
0.0-62025 年 2 月 6 日星期四, Gabriela Fialová (gfialova@redhat.com)
- 添加了一个增强 RHELDOCS-18451 (文件系统)
0.0-52025 年 1 月 30 日星期四, Gabriela Fialová (gfialova@redhat.com)
- 添加了一个已知问题 RHELDOCS-19603 (IdM SSSD)
0.0-42025 年 1 月 22 日星期三, Gabriela Fialová(gfialova@redhat.com)
- 更新了技术预览中的链接 RHELDOCS-19061 (IdM DS)
- 添加了一个已知问题 RHELDOCS-18863(虚拟化)
- 更新了一个增强 RHEL-45620(安全性)
- 更正了整个文档中的拼写错误。
0.0-32025 年 1 月 20 日星期一, Gabriela Fialová (gfialova@redhat.com)
- 添加了一个已知问题 RHEL-13837 (安装程序)
0.0-22025 年 1 月 16 日星期四,Marc Muehlfeld (mmuehlfeld@redhat.com), Gabriela Fialová(gfialova@redhat.com)
- 添加了一个 Bug 修复 RHEL-73167 (网络)
- 添加了一个已删除了的功能 RHELDOCS-19141 (桌面)
- 添加了一个已删除了的功能 RHELDOCS-19156 (桌面)
0.0-12025 年 1 月 9 日星期四,Gabriela Fialová(gfialova@redhat.com)
- 更新了一个增强 RHEL-7768(文件系统和存储)
0.0-02024 年 11 月 13 日星期三, Gabriela Fialová(gfialova@redhat.com)
- 发布 Red Hat Enterprise Linux 9.5 发行注记。