在 AL2023 上更新 Linux 核心 - Amazon Linux 2023

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 AL2023 上更新 Linux 核心

AL2023 上的 Linux 核心版本

AL2023 定期包含以 Linux 核心長期支援 (LTS) 版本為基礎的新核心版本。

AL2023 最初於 2023 年 3 月發行,採用核心 6.1。

2025 年 4 月,AL2023 新增對 Linux 核心 6.12 的支援。此核心新增了新功能,包括 EEVDF 排程、FUSE 傳遞 I/O 支援、新的 Futex API,以及 eBPF 的改善。核心 6.12 也允許使用者空間程式在執行階段使用使用者空間陰影堆疊和記憶體密封來保護自己。

將 AL2023 更新為核心 6.12

您可以使用核心 6.12 執行 AL2023,方法是選取預先安裝核心 6.12 的 AMI,或升級現有的 AL2023 EC2 執行個體。

執行 AL2023 核心 6.12 AMI

您可以選擇透過 AWS 主控台或查詢 SSM 以取得特定參數,以執行預先安裝核心 6.12 的 AL2023 AMI。要查詢的 SSM 金鑰以 開頭,/aws/service/ami-amazon-linux-latest/後面接著其中一個

  • al2023-ami-kernel-6.12-arm64 適用於 arm64 架構

  • al2023-ami-minimal-kernel-6.12-arm64 適用於 arm64 架構 (最小 AMI)

  • al2023-ami-kernel-6.12-x86_64 適用於 x86_64 架構

  • al2023-ami-minimal-kernel-6.12-x86_64 適用於 x86_64 架構 (最小 AMI)

如需選取 AL2023 AMIs的詳細資訊使用 SSM 參數和 啟動 AL2023 AWS CLI,請參閱 。

將 AL2023 執行個體更新為核心 6.12

您可以使用下列步驟將執行中的 AL2023 執行個體就地升級至核心 6.12:

  1. 安裝 kernel6.12 套件:

    $ sudo dnf install -y kernel6.12
  2. 取得kernel6.12套件的最新版本:

    $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel6.12 | sort -V | tail -1)
  3. 將新的 設為kernel6.12您的預設核心:

    $ sudo grubby --set-default "/boot/vmlinuz-$version"
  4. 重新啟動您的系統:

    $ sudo reboot
  5. 解除安裝核心 6.1:

    $ sudo dnf remove -y kernel
  6. 將額外的核心套件取代為其 kernel6.12 對等項目:

    $ declare -A pkgs $ pkgs=( [bpftool]=bpftool6.12 [kernel-debuginfo]=kernel6.12-debuginfo [kernel-debuginfo-common]=kernel6.12-debuginfo-common [kernel-headers]=kernel6.12-headers [kernel-libbpf]=kernel6.12-libbpf [kernel-libbpf-devel]=kernel6.12-libbpf-devel [kernel-libbpf-static]=kernel6.12-libbpf-static [kernel-modules-extra-common]=kernel6.12-modules-extra-common [kernel-tools]=kernel6.12-tools [kernel-tools-devel]=kernel6.12-tools-devel [perf]=perf6.12 [python3-perf]=python3-perf6.12 ) $ for pkg in "${!pkgs[@]}"; do rpm -q $pkg && sudo dnf -y swap $pkg "${pkgs["$pkg"]}" ; done
  7. (選用) 解除安裝核心 6.1 的 kernel-devel:

    $ rpm -q kernel-devel && sudo dnf remove -y kernel-devel

從核心 6.12 降級到核心 6.1

如果您在任何時候需要降級回核心 6.1,請使用下列步驟:

  1. 將額外的 kernel6.12 套件取代為其核心 6.1 對等項目:

    $ declare -A pkgs $ pkgs=( [bpftool]=bpftool6.12 [kernel-debuginfo]=kernel6.12-debuginfo [kernel-debuginfo-common]=kernel6.12-debuginfo-common [kernel-headers]=kernel6.12-headers [kernel-libbpf]=kernel6.12-libbpf [kernel-libbpf-devel]=kernel6.12-libbpf-devel [kernel-libbpf-static]=kernel6.12-libbpf-static [kernel-modules-extra-common]=kernel6.12-modules-extra-common [kernel-tools]=kernel6.12-tools [kernel-tools-devel]=kernel6.12-tools-devel [perf]=perf6.12 [python3-perf]=python3-perf6.12 ) $ for pkg in "${!pkgs[@]}"; do rpm -q "${pkgs["$pkg"]}" && sudo dnf -y swap "${pkgs["$pkg"]}" $pkg ; done
  2. 安裝 kernel 套件:

    $ sudo dnf install -y kernel
  3. 取得kernel套件的最新版本:

    $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel | sort -V | tail -1)
  4. 將核心 6.1 設為預設核心:

    $ sudo grubby --set-default "/boot/vmlinuz-$version"
  5. 重新啟動您的系統:

    $ sudo reboot
  6. 解除安裝核心 6.12:

    $ sudo dnf remove -y kernel6.12

AL2023 核心 - 常見問答集

1. 核心更新後是否需要重新啟動?

每個對執行中核心的變更都需要重新啟動。

2. 如何讓多個執行個體的核心up-to-date?

Amazon Linux 不提供管理執行個體機群的設施。我們建議您使用 AWS Systems Manager 等工具來修補大型機群。

3. 如何檢查我目前正在執行的核心版本?

在 AL2023 執行個體上執行此命令:

$ uname -r

4. 如何為核心 6.12 安裝核心標頭、開發套件和額外模組?

請執行:

$ sudo dnf install -y kernel6.12-modules-extra-$(uname -r) kernel6.12-headers-$(uname -r) kernel6.12-devel-$(uname -r)