這個(gè)指南里介紹了 7 種為 Ubuntu 升級(jí) Linux 內(nèi)核的不同方法。這 7 種方法里,有 5 種需要重啟系統(tǒng)來使新內(nèi)核生效,其他兩種則不用。升級(jí)之前,強(qiáng)烈建議你將重要數(shù)據(jù)進(jìn)行備份! 這里提到的所有方法只在 Ubuntu 中測(cè)試過。我們并不確定這些方法是不是也能適用于其他 Ubuntu 的特色發(fā)行版(如:Xubuntu)和衍生發(fā)行版(如:Linux Mint)。
第一部分:需要重啟的內(nèi)核升級(jí)
以下方法需要你重啟系統(tǒng)以便新的內(nèi)核生效。以下所有方法都建議在個(gè)人系統(tǒng)或測(cè)試系統(tǒng)中進(jìn)行。重要的事兒再說一遍,請(qǐng)備份好你 Ubuntu 中的重要數(shù)據(jù)、配置文件和其他重要的東西。
方法 1 - 使用 dpkg 升級(jí) Linux 內(nèi)核(手動(dòng)方式)
這個(gè)方法可以幫助你從 kernel.ubuntu.com 網(wǎng)站手動(dòng)下載可用的最新 Linux 內(nèi)核。如果你打算安裝最新版(而不是穩(wěn)定版或者正式發(fā)布版),那這種方法對(duì)你會(huì)很有用。從以上鏈接下載 Linux 內(nèi)核版本。編寫這個(gè)指南的時(shí)候,最新的可用版本是 5.0-rc1,最新的穩(wěn)定版是 v4.20。
點(diǎn)擊你所選擇的 Linux 內(nèi)核版本鏈接,找到你對(duì)應(yīng)的架構(gòu)(“Build for XXX”)的那部分。然后下載符合以下格式的兩個(gè)文件(其中 X.Y.Z 是最高版本號(hào)):
- linux-image-X.Y.Z-generic-*.deb
- linux-modules-X.Y.Z-generic-.deb
在終端中改變到文件所在的目錄,然后執(zhí)行此命令手動(dòng)安裝內(nèi)核:
- $ sudo dpkg --install *.deb
重啟系統(tǒng),使用新內(nèi)核:
- $ sudo reboot
檢查是否如你所愿:
- $ uname -r
以上的指南是針對(duì)的是 4.15 版本,不過安裝最新版本的所有的步驟都是一樣的。
- 優(yōu)勢(shì): 不必聯(lián)網(wǎng)(你可以從任何系統(tǒng)中下載 Linux 內(nèi)核來使用)
- 缺點(diǎn): 手動(dòng)更新,需要重啟系統(tǒng)。
方法 2 - 用 apt-get 來升級(jí) Linux 內(nèi)核(推薦方法)
這是在類 Ubuntu 系統(tǒng)中升級(jí) Linux 內(nèi)核的推薦方法。不同于上一個(gè)方法,這種方法會(huì)從 Ubuntu 官方倉庫下載、安裝內(nèi)核版本,而不是從 kernel.ubuntu.com網(wǎng)站。
要升級(jí)包括內(nèi)核的整個(gè)系統(tǒng),只需要執(zhí)行:
- $ sudo apt-get update
- $ sudo apt-get upgrade
如果只希望升級(jí)內(nèi)核,運(yùn)行:
- $ sudo apt-get upgrade linux-image-generic
- 優(yōu)勢(shì): 簡(jiǎn)單。推薦方法。
- 缺點(diǎn): 需要聯(lián)網(wǎng),需要重啟。
從官方庫中升級(jí)內(nèi)核是最接近開箱即用的方法,并且不會(huì)出什么問題。如果是生產(chǎn)環(huán)境的系統(tǒng),這是最為推薦的升級(jí) Linux 內(nèi)核的方法。
方法 1 和方法 2 都需要用戶去介入到升級(jí) Linux 內(nèi)核的過程中。而下邊的方法(3、 4、 5)則幾乎是全自動(dòng)的。
方法 3 - 使用 Ukuu 升級(jí) Linux 內(nèi)核
Ukuu是一個(gè) Gtk GUI 和命令行工具,它可以從 kernel.ubuntu.com 下載最新的 Linux 主線內(nèi)核,并自動(dòng)安裝到你的 Ubuntu 桌面版和服務(wù)器版中。Ukku 不僅簡(jiǎn)化了手動(dòng)下載和安裝新內(nèi)核的過程,同時(shí)也會(huì)幫助你安全地移除舊的和不再需要的內(nèi)核。
- 優(yōu)勢(shì): 易于安裝使用。自動(dòng)安裝主線內(nèi)核。
- 缺點(diǎn): 需要聯(lián)網(wǎng),需要重啟。
方法 4 - 使用 UKTools 升級(jí) Linux 內(nèi)核
跟 Ukuu 差不多,UKTools 也會(huì)從 kernel.ubuntu.com 網(wǎng)站獲取最新的穩(wěn)定內(nèi)核并且自動(dòng)安裝到 Ubuntu 以及類似于 Linux Mint 的延伸發(fā)行版中。
- 優(yōu)勢(shì): 簡(jiǎn)單,自動(dòng)。
- 缺點(diǎn): 需要聯(lián)網(wǎng),需要重啟。
方法 5 - 使用 Linux 內(nèi)核實(shí)用程序更新 Linux 內(nèi)核
Linux 內(nèi)核實(shí)用程序是目前另一個(gè)用于升級(jí)類 Ubuntu 系統(tǒng) Linux 內(nèi)核的程序。實(shí)質(zhì)上,它是一個(gè)由一系列 Bash 腳本構(gòu)成的合集,用于編譯并且可以選擇性地為 Debian(LCTT 譯注:Ubuntu 的上游發(fā)行版)及其衍生發(fā)行版升級(jí)內(nèi)核。它包含三個(gè)實(shí)用程序,一個(gè)用于手動(dòng)編譯、安裝來自于 http://www.kernel.org 網(wǎng)站的源碼內(nèi)核,另一個(gè)用于安裝來自 https://kernel.ubuntu.com 網(wǎng)站的預(yù)編譯的內(nèi)核,第三個(gè)腳本用于移除舊內(nèi)核。
- 優(yōu)勢(shì): 簡(jiǎn)單,自動(dòng)。
- 缺點(diǎn): 需要聯(lián)網(wǎng),需要重啟。
第二部分:無需重啟的內(nèi)核升級(jí)
我之前說過,上邊所有的方法都需要你重啟服務(wù)器(LCTT 譯注:也可以是桌面版)來啟用新內(nèi)核。如果是個(gè)人系統(tǒng)或者測(cè)試系統(tǒng),可以這么辦。但對(duì)于無法停機(jī)的生產(chǎn)環(huán)境系統(tǒng)該怎么辦呢?一點(diǎn)問題沒有,這時(shí)候?qū)崟r(shí)補(bǔ)丁(livepatching)就派上用場(chǎng)了。
實(shí)時(shí)補(bǔ)丁(或者叫熱補(bǔ)丁)允許你在不重啟的情況下安裝 Linux 更新或補(bǔ)丁,使你的服務(wù)器處于最新的安全級(jí)別。這對(duì) web 主機(jī)、游戲服務(wù)器這類需要不間斷在線的服務(wù)器來說是很有價(jià)值的。事實(shí)上,任何情況下,服務(wù)器都應(yīng)該保持在不間斷運(yùn)行的狀態(tài)下。由于 Linux 供應(yīng)商只會(huì)在出于修復(fù)安全漏洞的目的下維護(hù)補(bǔ)丁,所以如果安全性是你最關(guān)注的問題時(shí),這種方式再適合不過了。
以下兩種方法不需要重啟,對(duì)于生產(chǎn)環(huán)境和執(zhí)行關(guān)鍵任務(wù)的 Ubuntu 服務(wù)器的 Linux 內(nèi)核更新非常有用。
方法 6 – 使用 Canonical 實(shí)時(shí)補(bǔ)丁服務(wù)來更新 Linux 內(nèi)核
Canonical 實(shí)時(shí)補(bǔ)丁服務(wù)可以在不需要重啟 Ubuntu 系統(tǒng)的情況下自動(dòng)應(yīng)用內(nèi)核更新、補(bǔ)丁和安全補(bǔ)丁。它可以減少Ubuntu系統(tǒng)的停機(jī)時(shí)間,并保證系統(tǒng)的安全。Canonical 實(shí)時(shí)補(bǔ)丁服務(wù)可以在安裝過程當(dāng)中或安裝之后進(jìn)行設(shè)置。如果你使用的是 Ubuntu 桌面版,軟件更新器會(huì)自動(dòng)檢查內(nèi)核補(bǔ)丁的更新,并通知你。在基于控制臺(tái)的系統(tǒng)中,則需要你定期運(yùn)行 apt-get update 命令來進(jìn)行升級(jí)。由于需要你手動(dòng)運(yùn)行 apt-get upgrade 命令它才會(huì)安裝內(nèi)核的安全補(bǔ)丁,所以算是半自動(dòng)的。
實(shí)時(shí)補(bǔ)丁對(duì)三個(gè)及以下系統(tǒng)免費(fèi),如果多于三個(gè),你需要升級(jí)成名為 Ubuntu Advantage 的企業(yè)支持方案套件。這個(gè)套件包括 Kernel 實(shí)時(shí)補(bǔ)丁及以下服務(wù):
- 擴(kuò)展安全維護(hù) – Ubuntu 生命周期后的重要安全更新
- Landscape – 針對(duì)大規(guī)模使用 Ubuntu 的系統(tǒng)管理工具
- 知識(shí)庫 – 由 Ubuntu 專家撰寫的私人文章和教程
- 電話和網(wǎng)站支持
(1) 價(jià)格
Ubuntu Advantage 包含三種付費(fèi)計(jì)劃,即基本計(jì)劃、標(biāo)準(zhǔn)計(jì)劃和高級(jí)計(jì)劃。最基礎(chǔ)的計(jì)劃(基本計(jì)劃)從 單物理節(jié)點(diǎn) 225 美元/年和單VPS 75美元/年開始計(jì)價(jià)。對(duì)于 Ubuntu 服務(wù)器版和桌面版看上去沒有按月訂閱。你可以在此處瀏覽所有計(jì)劃的細(xì)節(jié)信息。
- 優(yōu)勢(shì): 簡(jiǎn)單。半自動(dòng)化。無需重啟。支持三個(gè)免費(fèi)系統(tǒng)。
- 缺點(diǎn): 4 個(gè)以上主機(jī)的話非常昂貴。沒有補(bǔ)丁回滾。
(2) 開啟 Canonical 實(shí)時(shí)補(bǔ)丁
如果你想在安裝后設(shè)置實(shí)時(shí)補(bǔ)丁服務(wù),依照以下方法逐步執(zhí)行:
- $ sudo snap install canonical-livepatch
- $ sudo canonical-livepatch enable your-key
方法 7 - 使用 KernelCare 升級(jí) Linux 內(nèi)核
KernelCare 是最新的實(shí)時(shí)補(bǔ)丁方案。它是 CloudLinux 推出的產(chǎn)品。KernelCare 可以運(yùn)行在 Ubuntu 和其他的 Linux 發(fā)行版中。它每四個(gè)小時(shí)檢查一遍補(bǔ)丁的發(fā)布,并在無需確認(rèn)的情況下安裝它們。如果更新后存在問題,可以將補(bǔ)丁進(jìn)行回滾。
(1) 價(jià)格
費(fèi)用,每臺(tái)服務(wù)器:4 美元/月,45 美元/年。
跟 Ubuntu 實(shí)時(shí)補(bǔ)丁相比,KernelCare 看起來非常便宜、實(shí)惠。好的方面在于也可以按月訂閱。另一個(gè)前者不具備的功能是支持其他 Linux 發(fā)行版,如 Red Hat、CentOS、Debian、Oracle Linux、Amazon Linux 以及 OpenVZ、Proxmox 等虛擬化平臺(tái)。
你可以在此處了解 KernelCare 的所有特性和簡(jiǎn)介,以及所有的付費(fèi)計(jì)劃的細(xì)節(jié)。
- 優(yōu)勢(shì): 簡(jiǎn)單。全自動(dòng)化。覆蓋范圍更廣的操作系統(tǒng)。補(bǔ)丁回滾。無需重啟。對(duì)非營(yíng)利組織提供免費(fèi)許可。價(jià)格低廉。
- 缺點(diǎn): 不是免費(fèi)的(除了30天的試用期)。
開啟 KernelCare 服務(wù)
在 https://cloudlinux.com/kernelcare-free-trial5 獲取一個(gè) 30 天免費(fèi)試用密鑰。
執(zhí)行以下命令開啟 KernelCare 并注冊(cè)秘鑰。
- $ sudo wget -qq -O - https://repo.cloudlinux.com/kernelcare/kernelcare_install.sh | bash
- $ sudo /usr/bin/kcarectl --register KEY
如果你正在尋找一種經(jīng)濟(jì)實(shí)惠且可靠的商業(yè)服務(wù)來保持 Linux 服務(wù)器上的 Linux 內(nèi)核更新,那么 KernelCare 是個(gè)不錯(cuò)的選擇。
由來自 Cloud Linux 的技術(shù)撰稿人和內(nèi)容作者 Paul A. Jacobs 提供。
到此,希望這邊文章能對(duì)你有所幫助。