如何在CentOS 7中安裝或升級最新的內(nèi)核
雖然有些人使用 Linux 來表示整個操作系統(tǒng),但要注意的是,嚴格地來說,Linux 只是個內(nèi)核。另一方面,發(fā)行版是一個完整功能的系統(tǒng),它建立在內(nèi)核之上,具有各種各樣的應用程序工具和庫。
在正常操作期間,內(nèi)核負責執(zhí)行兩個重要任務(wù):
- 作為硬件和系統(tǒng)上運行的軟件之間的接口。
- 盡可能高效地管理系統(tǒng)資源。
為此,內(nèi)核通過內(nèi)置的驅(qū)動程序或以后可作為模塊安裝的驅(qū)動程序與硬件通信。
例如,當你計算機上運行的程序想要連接到無線網(wǎng)絡(luò)時,它會將該請求提交給內(nèi)核,后者又會使用正確的驅(qū)動程序連接到網(wǎng)絡(luò)。
- 建議閱讀: 如何在 Ubuntu 中升級內(nèi)核
隨著新的設(shè)備和技術(shù)定期出來,如果我們想充分利用它們,保持最新的內(nèi)核就很重要。此外,更新內(nèi)核將幫助我們利用新的內(nèi)核函數(shù),并保護自己免受先前版本中發(fā)現(xiàn)的漏洞的攻擊。
準備好了在 CentOS 7 或其衍生產(chǎn)品(如 RHEL 7和 Fedora)上更新內(nèi)核了么?如果是這樣,請繼續(xù)閱讀!
步驟 1:檢查已安裝的內(nèi)核版本
讓我們安裝了一個發(fā)行版,它包含了一個特定版本的內(nèi)核。為了展示當前系統(tǒng)中已安裝的版本,我們可以:
- # uname -sr
下面的圖片展示了在一臺 CentOS 7 服務(wù)器上的輸出信息:
在 CentOS 7 上檢查內(nèi)核版本
如果我們現(xiàn)在進入 https://www.kernel.org/,在撰寫本文時,我們看到最新的內(nèi)核版本是4.10.1(其他版本可以從同一網(wǎng)站獲得)。
還要考慮的一個重要的事情是內(nèi)核版本的生命周期 - 如果你當前使用的版本接近它的生命周期結(jié)束,那么在該日期后將不會提供更多的 bug 修復。關(guān)于更多信息,請參閱內(nèi)核發(fā)布頁。
步驟 2:在 CentOS 7 中升級內(nèi)核
大多數(shù)現(xiàn)代發(fā)行版提供了一種使用 yum 等包管理系統(tǒng)和官方支持的倉庫升級內(nèi)核的方法。
但是,這只會升級內(nèi)核到倉庫中可用的最新版本 - 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允許使用前者升級內(nèi)核。
與 Red Hat 不同,CentOS 允許使用 ELRepo,這是一個第三方倉庫,可以將內(nèi)核升級到最新版本。
要在 CentOS 7 上啟用 ELRepo 倉庫,請運行:
- # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
- # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
在 CentOS 7 啟用 ELRepo
倉庫啟用后,你可以使用下面的命令列出可用的內(nèi)核相關(guān)包:
- # yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
yum - 找出可用的內(nèi)核版本
接下來,安裝最新的主線穩(wěn)定內(nèi)核:
- # yum --enablerepo=elrepo-kernel install kernel-ml
在 CentOS 7 中安裝最新的內(nèi)核版本
最后,重啟機器并應用最新內(nèi)核,接著運行下面的命令檢查最新內(nèi)核版本:
- uname -sr
驗證內(nèi)核版本
步驟 3:設(shè)置 GRUB 默認的內(nèi)核版本
為了讓新安裝的內(nèi)核成為默認啟動選項,你需要如下修改 GRUB 配置:
打開并編輯 /etc/default/grub 并設(shè)置 GRUB_DEFAULT=0。意思是 GRUB 初始化頁面的第一個內(nèi)核將作為默認內(nèi)核。
- GRUB_TIMEOUT=5
- GRUB_DEFAULT=0
- GRUB_DISABLE_SUBMENU=true
- GRUB_TERMINAL_OUTPUT="console"
- GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet"
- GRUB_DISABLE_RECOVERY="true"
接下來運行下面的命令來重新創(chuàng)建內(nèi)核配置。
- # grub2-mkconfig -o /boot/grub2/grub.cfg
在 GRUB 中設(shè)置內(nèi)核
重啟并驗證最新的內(nèi)核已作為默認內(nèi)核。
Booting Default Kernel Version in CentOS 7
在 CentOS 7 中啟動默認內(nèi)核版本
恭喜你!你已經(jīng)在 CentOS 7 中升級內(nèi)核了!
總結(jié)
在本文中,我們解釋了如何輕松升級系統(tǒng)上的 Linux 內(nèi)核。我們還沒講到另外一個方法,因為它涉及從源代碼編譯內(nèi)核,這可以寫成一本書,并且不推薦在生產(chǎn)系統(tǒng)上這么做。
雖然它是最好的學習體驗之一,并且允許細粒度配置內(nèi)核,但是你可能會讓你的系統(tǒng)不可用,并且可能必須從頭重新安裝它。
如果你仍然有興趣構(gòu)建內(nèi)核作為學習經(jīng)驗,你可以在 Kernel Newbies頁面中獲得指導。
一如既往,如果你對本文有任何問題或意見,請隨時使用下面的評論欄。
作者簡介:
我是一個計算機上癮的家伙,并且是開源和 Linux 系統(tǒng)軟件的粉絲,有大約 4 年的 Linux 發(fā)行版桌面、服務(wù)器和 bash 腳本的經(jīng)驗。