升級 Ubuntu Linux 核心的幾種不同方法

2020-04-18 22:50:00

這個指南裡介紹了 7 種為 Ubuntu 升級 Linux 核心的不同方法。這 7 種方法裡,有 5 種需要重新啟動系統來使新核心生效,其他兩種則不用。升級之前,強烈建議你將重要資料進行備份! 這裡提到的所有方法只在 Ubuntu 中測試過。我們並不確定這些方法是不是也能適用於其他 Ubuntu 的特色發行版(如: Xubuntu)和衍生發行版(如:Linux Mint)。

第一部分:需要重新啟動的核心升級

以下方法需要你重新啟動系統以便新的核心生效。以下所有方法都建議在個人系統或測試系統中進行。重要的事兒再說一遍,請備份好你 Ubuntu 中的重要資料、組態檔和其他重要的東西。

方法 1 - 使用 dpkg 升級 Linux 核心(手動方式)

這個方法可以幫助你從 kernel.ubuntu.com 網站手動下載可用的最新 Linux 核心。如果你打算安裝最新版(而不是穩定版或者正式發布版),那這種方法對你會很有用。從以上連結下載 Linux 核心版本。編寫這個指南的時候,最新的可用版本是 5.0-rc1,最新的穩定版是 v4.20

點選你所選擇的 Linux 核心版本連結,找到你對應的架構(“Build for XXX”)的那部分。然後下載符合以下格式的兩個檔案(其中 X.Y.Z 是最高版本號):

  1. linux-image-X.Y.Z-generic-*.deb
  2. linux-modules-X.Y.Z-generic-.deb

在終端中改變到檔案所在的目錄,然後執行此命令手動安裝核心:

$ sudo dpkg --install *.deb

重新啟動系統,使用新核心:

$ sudo reboot

檢查是否如你所願:

$ uname -r

對於分步的說明,請檢視下列連結中對應的部分。

以上的指南是針對的是 4.15 版本,不過安裝最新版本的所有的步驟都是一樣的。

優勢: 不必聯網(你可以從任何系統中下載 Linux 核心來使用)

缺點: 手動更新,需要重新啟動系統。

方法 2 - 用 apt-get 來升級 Linux 核心(推薦方法)

這是在類 Ubuntu 系統中升級 Linux 核心的推薦方法。不同於上一個方法,這種方法會從 Ubuntu 官方倉庫下載、安裝核心版本,而不是從 kernel.ubuntu.com網站。

要升級包括核心的整個系統,只需要執行:

$ sudo apt-get update$ sudo apt-get upgrade

如果只希望升級核心,執行:

$ sudo apt-get upgrade linux-image-generic

優勢: 簡單。推薦方法。

缺點: 需要聯網,需要重新啟動。

從官方庫中升級核心是最接近開箱即用的方法,並且不會出什麼問題。如果是生產環境的系統,這是最為推薦的升級 Linux 核心的方法。

方法 1 和方法 2 都需要使用者去介入到升級 Linux 核心的過程中。而下邊的方法(3、 4、 5)則幾乎是全自動的。

方法 3 - 使用 Ukuu 升級 Linux 核心

Ukuu是一個 Gtk GUI 和命令列工具,它可以從 kernel.ubuntu.com 下載最新的 Linux 主線核心,並自動安裝到你的 Ubuntu 桌面版和伺服器版中。Ukku 不僅簡化了手動下載和安裝新核心的過程,同時也會幫助你安全地移除舊的和不再需要的核心。更多細節可以參照以下指南。

優勢: 易於安裝使用。自動安裝主線核心。

缺點: 需要聯網,需要重新啟動。

方法 4 - 使用 UKTools 升級 Linux 核心

跟 Ukuu 差不多,UKTools 也會從 kernel.ubuntu.com 網站獲取最新的穩定核心並且自動安裝到 Ubuntu 以及類似於 Linux Mint 的延伸發行版中。關於UKTools的更多詳情,請參見下面的連結。

優勢: 簡單,自動。

缺點: 需要聯網,需要重新啟動。

方法 5 - 使用 Linux 核心實用程式更新 Linux 核心

Linux 核心實用程式是目前另一個用於升級類 Ubuntu 系統 Linux 核心的程式。實質上,它是一個由一系列 Bash 指令碼構成的合集,用於編譯並且可以選擇性地為 Debian(LCTT 譯註:Ubuntu 的上游發行版)及其衍生發行版升級核心。它包含三個實用程式,一個用於手動編譯、安裝來自於 http://www.kernel.org 網站的原始碼核心,另一個用於安裝來自 https://kernel.ubuntu.com 網站的預編譯的核心,第三個指令碼用於移除舊核心。更多細節請瀏覽以下連結。

優勢: 簡單,自動。

缺點: 需要聯網,需要重新啟動。

第二部分:無需重新啟動的核心升級

我之前說過,上邊所有的方法都需要你重新啟動伺服器(LCTT 譯註:也可以是桌面版)來啟用新核心。如果是個人系統或者測試系統,可以這麼辦。但對於無法停機的生產環境系統該怎麼辦呢?一點問題沒有,這時候實時修補程式livepatching就派上用場了。

實時修補程式(或者叫熱修補程式)允許你在不重新啟動的情況下安裝 Linux 更新或修補程式,使你的伺服器處於最新的安全級別。這對 web 主機、遊戲伺服器這類需要不間斷線上的伺服器來說是很有價值的。事實上,任何情況下,伺服器都應該保持在不間斷執行的狀態下。由於 Linux 供應商只會在出於修復安全漏洞的目的下維護修補程式,所以如果安全性是你最關注的問題時,這種方式再適合不過了。

以下兩種方法不需要重新啟動,對於生產環境和執行關鍵任務的 Ubuntu 伺服器的 Linux 核心更新非常有用。

方法 6 – 使用 Canonical 實時修補程式服務來更新 Linux 核心

Canonical 實時修補程式服務可以在不需要重新啟動 Ubuntu 系統的情況下自動應用核心更新、修補程式和安全修補程式。它可以減少Ubuntu系統的停機時間,並保證系統的安全。Canonical 實時修補程式服務可以在安裝過程當中或安裝之後進行設定。如果你使用的是 Ubuntu 桌面版,軟體更新器會自動檢查核心修補程式的更新,並通知你。在基於控制台的系統中,則需要你定期執行 apt-get update 命令來進行升級。由於需要你手動執行 apt-get upgrade 命令它才會安裝核心的安全修補程式,所以算是半自動的。

實時修補程式對三個及以下系統免費,如果多於三個,你需要升級成名為 Ubuntu Advantage 的企業支援方案套件。這個套件包括 Kernel 實時修補程式及以下服務:

  • 擴充套件安全維護 – Ubuntu 生命週期後的重要安全更新
  • Landscape – 針對大規模使用 Ubuntu 的系統管理工具
  • 知識庫 – 由 Ubuntu 專家撰寫的私人文章和教學
  • 電話和網站支援

價格

Ubuntu Advantage 包含三種付費計劃,即基本計劃、標準計劃和高階計劃。最基礎的計劃(基本計劃)從 單物理節點 225 美元/年單VPS 75美元/年開始計價。對於 Ubuntu 伺服器版和桌面版看上去沒有按月訂閱。你可以在此處瀏覽所有計劃的細節資訊。

優勢: 簡單。半自動化。無需重新啟動。支援三個免費系統。

缺點: 4 個以上主機的話非常昂貴。沒有修補程式回滾。

開啟 Canonical 實時修補程式

如果你想在安裝後設定實時修補程式服務,依照以下方法逐步執行:

https://auth.livepatch.canonical.com/ 獲取一個金鑰。

$ sudo snap install canonical-livepatch$ sudo canonical-livepatch enable your-key

方法 7 - 使用 KernelCare 升級 Linux 核心

KernelCare 是最新的實時修補程式方案。它是 CloudLinux 推出的產品。KernelCare 可以執行在 Ubuntu 和其他的 Linux 發行版中。它每四個小時檢查一遍修補程式的發布,並在無需確認的情況下安裝它們。如果更新後存在問題,可以將修補程式進行回滾。

價格

費用,每台伺服器:4 美元/月45 美元/年

跟 Ubuntu 實時修補程式相比,KernelCare 看起來非常便宜、實惠。好的方面在於也可以按月訂閱。另一個前者不具備的功能是支援其他 Linux 發行版,如 Red Hat、CentOS、Debian、Oracle Linux、Amazon Linux 以及 OpenVZ、Proxmox 等虛擬化平台。

你可以在此處了解 KernelCare 的所有特性和簡介,以及所有的付費計劃的細節。

優勢: 簡單。全自動化。覆蓋範圍更廣的作業系統。修補程式回滾。無需重新啟動。對非營利組織提供免費許可。價格低廉。

缺點: 不是免費的(除了30天的試用期)。

開啟 KernelCare 服務

https://cloudlinux.com/kernelcare-free-trial5 獲取一個 30 天免費試用金鑰。

執行以下命令開啟 KernelCare 並註冊秘鑰。

$ sudo wget -qq -O - https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | bash$ sudo /usr/bin/kcarectl --register KEY

如果你正在尋找一種經濟實惠且可靠的商業服務來保持 Linux 伺服器上的 Linux 核心更新,那麼 KernelCare 是個不錯的選擇。

由來自 Cloud Linux 的技術撰稿人和內容作者 Paul A. Jacobs 提供。

到此,希望這邊文章能對你有所幫助。如果你覺得還有其他的工具和方法需要列在這裡,可以在留言區給我們留言。我會根據反饋檢查和更新這篇指南的。

接下來會有更多好東西給大家呈現,敬請期待。

Cheers!