跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 部署指南  / 起始系統組態 / 安裝多個核心版本
適用範圍 SUSE Linux Enterprise Server 15 SP3

23 安裝多個核心版本

SUSE Linux Enterprise Server 支援多個核心版本的平行安裝。安裝第二個核心時,將會自動建立一個開機項目和一個 initrd,因此無需進一步的手動組態。將機器重新開機時,新增的核心可用做額外的開機參數。

使用此功能,您可以安全測試核心更新,同時,還能夠始終回復到經過驗證的前一核心。執行這種操作時,請不要使用更新工具 (例如 YaST 線上更新或更新程式 Applet),而應該遵照本章中所述的程序。

警告
警告:支援授權

請注意,如果您安裝自行編譯的核心或協力廠商核心,則會喪失所有的支援授權。僅支援 SUSE Linux Enterprise Server 隨附的核心,以及透過官方更新通道為 SUSE Linux Enterprise Server 提供的核心。

提示
提示:檢查開機載入程式組態核心

建議在安裝其他核心後檢查您的開機載入程式組態,以設定您選擇的預設開機項目。如需詳細資訊,請參閱第 14.3 節 「使用 YaST 設定開機載入程式」

23.1 啟用和設定多版本支援

SUSE Linux Enterprise Server 12 起,系統預設支援安裝軟體套件的多個版本 (多版本支援)。若要驗證此設定,請執行下列步驟:

  1. root 身分使用所選的編輯器開啟 /etc/zypp/zypp.conf

  2. 搜尋字串 multiversion。如果為所有支援此功能的核心套件啟用多版本,下面一行可能會取消註解:

    multiversion = provides:multiversion(kernel)
  3. 若要對特定的核心類別限制多版本支援,請將逗號分隔的套件名稱清單新增到 /etc/zypp/zypp.conf 中的 multiversion 選項 — 例如

    multiversion = kernel-default,kernel-default-base,kernel-source
  4. 儲存您所做的變更。

警告
警告:核心模組套件 (KMP)

確定還為新更新的核心安裝了所需的廠商提供的核心模組 (核心模組套件)。核心更新程序不會發出有關最終缺少核心模組的警告,因為系統上保留的舊核心仍能滿足套件要求。

23.1.1 自動刪除未使用的核心

如果您經常測試已啟用多版本支援的新核心,開機功能表很快就會變得雜亂無序。由於 /boot 分割區的空間通常有限,因此,您還可能會遇到 /boot 溢位的問題。您可以使用 YaST 或 Zypper 手動刪除未使用的核心版本 (如下文所述),也可以將 libzypp 設定為自動刪除不再使用的核心。預設不會刪除核心。

  1. root 身分使用所選的編輯器開啟 /etc/zypp/zypp.conf

  2. 搜尋字串 multiversion.kernels,並透過取消註解相應的行來啟用此選項。此選項使用包含以下值的逗號分隔清單:

    5.3.18-53.3:: 保留具有指定版本號碼的核心

    latest:: 保留具有最高版本號碼的核心

    latest-N:: 保留版本號碼排在第 N 位的核心

    running:: 保留執行中的核心

    oldest:: 保留具有最低版本號碼的核心 (SUSE Linux Enterprise Server 最初隨附的核心)

    oldest+N 保留版本號碼排在倒數第 N 位的核心

    以下是一些範例

    multiversion.kernels = latest,running

    保留最新核心以及目前正在執行的核心。這類似於不啟用多版本功能,不過,舊核心在下一次重新開機後才會移除,而不是在安裝後立即移除。

    multiversion.kernels = latest,latest-1,running

    保留最新的兩個核心,以及目前正在執行的核心。

    multiversion.kernels = latest,running,5.3.18-53.3

    保留最新的核心、目前正在執行的核心,以及 5.3.18-53.3

    提示
    提示:保留執行中的核心

    除非您使用的是特殊的設定,否則一律將核心標示為執行中

    如果不保留執行中的核心,系統在更新核心時會將其刪除。而這意味著執行中核心的所有模組也會被刪除,並且無法再載入。

    如果您決定不保留執行中的核心,則在升級核心後永遠要立即重新開機,以免模組發生問題。

23.1.2 使用案例:僅在重新開機後刪除舊核心

您想要確認只在系統成功用新核心重新開機之後才刪除舊核心。

變更 /etc/zypp/zypp.conf 中的以下行:

multiversion.kernels = latest,running

上面的參數告知系統要保留最新核心以及執行中的核心 (前提是兩者不同)。

23.1.3 使用案例:保留較舊核心做為後援

您想要保留一或多個核心版本,以便有一或多個備用的核心。

如果需要使用核心進行測試,則這樣做可能十分有用。如果出現了故障 (例如,您的機器不能開機),您仍可以使用一或多個已知正常的核心版本。

變更 /etc/zypp/zypp.conf 中的以下行:

multiversion.kernels = latest,latest-1,latest-2,running

安裝新核心之後,當您將系統重新開機時,系統將保留三個核心:目前的核心 (設定為 latest,running),以及它的前兩任 (設定為 latest-1latest-2)。

23.1.4 使用案例:保留特定的核心版本

您要執行定期系統更新和安裝新的核心版本。但是,您還要編譯自己的核心版本,並要確認系統將保留這些版本。

變更 /etc/zypp/zypp.conf 中的以下行:

multiversion.kernels = latest,5.3.18-53.3,running

在安裝新核心後,將系統重新開機時,系統會保留兩個核心:新的執行中核心 (設定為 latest,running),以及您自己編譯的核心 (設定為 5.3.18-53.3)。

23.2 使用 YaST 安裝/移除多個核心版本

您可以使用 YaST 安裝或移除多個核心:

  1. 啟動 YaST,然後透過軟體 ›  軟體管理開啟軟體管理員。

  2. 選擇檢視 ›  套件群組 ›  多版本套件列出可以提供多個版本的所有套件。

    YaST 軟體管理員:多版本檢視
    圖 23.1︰ YaST 軟體管理員:多版本檢視
  3. 在底部窗格的左側選取一個套件並開啟其版本索引標籤。

  4. 若要安裝某個套件,請按一下它旁邊的核取方塊。綠色核取記號表示已選取相應的套件進行安裝。

    若要移除某個已安裝的套件 (以白色核取記號標示),請按一下它旁邊的核取方塊,直到出現紅色的 X,這表示已選擇移除該套件。

  5. 按一下接受開始安裝。

23.3 使用 Zypper 安裝/移除多個核心版本

您可以使用 zypper 安裝或移除多個核心:

  1. 使用指令 zypper se -s 'kernel*' 顯示所有可用核心套件的清單:

    S  | Name                 | Type    | Version           | Arch   | Repository
    ---+----------------------+---------+-------------------+--------+---------------------------------
    i+ | kernel-default       | package | 5.3.18-53.3       | x86_64 | (System Packages)
    i+ | kernel-default       | package | 5.3.18-54.2       | x86_64 | SLE-Module-Basesystem15-SP3-Pool
       | kernel-default-base  | package | 5.3.18-54.2.16.15 | x86_64 | SLE-Module-Basesystem15-SP3-Pool
       | kernel-default-devel | package | 5.3.18-54.2       | x86_64 | SLE-Module-Basesystem15-SP3-Pool
       | kernel-devel         | package | 5.3.18-54.2       | noarch | SLE-Module-Basesystem15-SP3-Pool
    i  | kernel-firmware      | package | 20210208-2.4      | noarch | SLE-Module-Basesystem15-SP3-Pool
       | kernel-macros        | package | 5.3.18-54.2       | noarch | SLE-Module-Basesystem15-SP3-Pool
       | kernel-preempt       | package | 5.3.18-54.2       | x86_64 | SLE-Module-Basesystem15-SP3-Pool
  2. 安裝時指定確切的版本:

    tux > sudo zypper in kernel-default-5.3.18-53.3
  3. 解除安裝核心時,使用指令 zypper se -si 'kernel*' 可以列出安裝的所有核心,使用 zypper rm 套件名稱版本可以移除該套件。