1. 程式人生 > >linux 實現centos7線上升級最新版本核心

linux 實現centos7線上升級最新版本核心

Kernel  (核心)是作業系統的核心,掌握所有硬體裝置的控制權,也就是說,你所希望計算機幫你完成的各項工作,都需要通過核心的幫助才能完成,當然,如果我們想完成的某個功能是核心沒有的,則核心不會操控計算機來幫你完成這項工作,如果我們想讓核心去完成這個功能,那麼我們就必須將該功能的模組新增到核心當中,這就類似於驅動程式,有了這樣一個“驅動程式”的支援後,我們的硬體才能完成之前所不能完成的功能。

那麼核心到底是什麼呢?其實核心就是系統上面的一個檔案而已,這個檔案包含了驅動主機各項硬體的檢測程式和驅動模組,在系統啟動過程中,我們知道,系統讀完BIOS並載入MBR中的Boot Loader之後,就能夠載入核心到記憶體當中了,然後就去開始檢測硬體裝置,掛載根目錄來獲取核心模組來驅動所有的硬體裝置,之後就開始讓/sbin/init程序來完成系統的啟動,同時講到了核心檔案就是在/boot 目錄下的一個以vmlinuz 開頭的檔案,有時候我們會發現,/boot目錄下有好幾個以vmlinuz 開頭的檔案,也就是說主機可以有多個核心,但是啟動後,只能選擇一個來載入,所以說linux系統是單核心,模組化體系。

模組化可以這樣理解,一個程式可以完成很多功能,那麼每個獨立的功能就可以稱之為模組,這些獨立的功能模組組合起來就可以完成一系列大的功能,核心也是一樣。

當我們需要實現的功能核心不能提供時,這時我們就需要對核心進行更新升級,來實現滿足我們要有功能需要,下面我就演示一下在centos7中升級最新版本核心步驟:

使用  uname -sr 檢視自己核心版本號:

[[email protected] ~]# uname -sr
Linux 3.10.0-862.el7.x86_64

然後我們在瀏覽器中輸入 www.kernel.org,檢視centos,最新核心版本為:4.18

一:、安裝elrepo的yum源

elrepo是CentOS十分有用的穩定的軟體源,這是一個第三方倉庫,可以將核心升級到最新版本。我們可以在命令列中輸入:

首先匯入public key

[[email protected] ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[[email protected] ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:elrepo-release-7.0-3.el7.elrepo  ################################# [100%]

倉庫啟用後,我們可以使用下面的命令列出可用的核心相關包:

yum --disablerepo="*" --enablerepo="elrepo-kernel" list availableLoaded plugins: fastestmirror, langpacks
Repository 'QJC' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
 * elrepo-kernel: hkg.mirror.rackspace.com
elrepo-kernel                                                 | 2.9 kB  00:00:00     
elrepo-kernel/primary_db                                      | 1.8 MB  00:00:00     
Available Packages
kernel-lt.x86_64                          4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-devel.x86_64                    4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-doc.noarch                      4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-headers.x86_64                  4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-tools.x86_64                    4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-tools-libs.x86_64               4.4.152-1.el7.elrepo          elrepo-kernel
kernel-lt-tools-libs-devel.x86_64         4.4.152-1.el7.elrepo          elrepo-kernel
kernel-ml.x86_64                          4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-devel.x86_64                    4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-doc.noarch                      4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-headers.x86_64                  4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-tools.x86_64                    4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-tools-libs.x86_64               4.18.5-1.el7.elrepo           elrepo-kernel
kernel-ml-tools-libs-devel.x86_64         4.18.5-1.el7.elrepo           elrepo-kernel
perf.x86_64                               4.18.5-1.el7.elrepo           elrepo-kernel
python-perf.x86_64                        4.18.5-1.el7.elrepo           elrepo-kernel

二:升級核心

在yum的elrepo源中有ml和lt兩種核心,其中ml(mainline)為最新版本的核心,lt為長期支援的核心。

如果要安裝ml核心,使用如下命令:

yum --enablerepo=elrepo-kernel -y install kernel-ml

如果要安裝lt核心,使用如下命令:

yum --enablerepo=elrepo-kernel -y install kernel-lt

在此我們安裝的是ml核心,如下:

yum --enablerepo=elrepo-kernel install kernel-ml
Loaded plugins: fastestmirror, langpacks
Repository 'QJC' is missing name in configuration, using id
Loading mirror speeds from cached hostfile
 * elrepo: hkg.mirror.rackspace.com
 * elrepo-kernel: hkg.mirror.rackspace.com
file:///media/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /media/repodata/repomd.xml"
Trying other mirror.
elrepo                                                        | 2.9 kB  00:00:00     
elrepo/primary_db                                             | 469 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package kernel-ml.x86_64 0:4.18.5-1.el7.elrepo will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================
 Package         Arch         Version                      Repository           Size
=====================================================================================
Installing:
 kernel-ml       x86_64       4.18.5-1.el7.elrepo          elrepo-kernel        45 M

Transaction Summary
=====================================================================================
Install  1 Package

Total download size: 45 M
Installed size: 203 M
Is this ok [y/d/N]: y
Downloading packages:
kernel-ml-4.18.5-1.el7.elrepo.x86_64.rpm                      |  45 MB  00:00:04     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : kernel-ml-4.18.5-1.el7.elrepo.x86_64                              1/1 
  Verifying  : kernel-ml-4.18.5-1.el7.elrepo.x86_64                              1/1 

Installed:
  kernel-ml.x86_64 0:4.18.5-1.el7.elrepo                                             

Complete!

核心升級完畢後,不會立即生效,還需要我們修改grub.conf檔案。

三:修改grub.conf檔案

核心升級完畢後,需要我們修改核心的啟動順序,預設啟動的順序應該為1,升級以後核心是往前面插入為0,開啟並編輯 /etc/default/grub並設定GRUB_DEFAULT=0。一般新安裝的核心在第一個位置,所以設定default=0,意思是 GRUB 初始化頁面的第一個核心將作為預設核心。

接下來執行下面的命令來重新建立核心配置。

grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.5-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.18.5-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-619aa3de60a746919cbffe30b3f3329b
Found initrd image: /boot/initramfs-0-rescue-619aa3de60a746919cbffe30b3f3329b.img
done
[[email protected] ~]# 

然後reboot系統

再次檢視核心版本號:

[[email protected] ~]# uname -sr
Linux 4.18.5-1.el7.elrepo.x86_64
[[email protected] ~]# 

核心升級完成!

當我們想開機手動選擇核心版本時候,將上一步的0改為1,1 是手動選擇在開機時候按方上下方向鍵 介面會停留在選擇核心的介面如圖所示:

完畢!

相關推薦

linux 實現centos7線上升級最新版本核心

Kernel  (核心)是作業系統的核心,掌握所有硬體裝置的控制權,也就是說,你所希望計算機幫你完成的各項工作,都需要通過核心的幫助才能完成,當然,如果我們想完成的某個功能是核心沒有的,則核心不會操控計算機來幫你完成這項工作,如果我們想讓核心去完成這個功能,那麼我們就必須將該

linux 實現centos7在線升級最新版本內核

init進程 config 安裝 希望 repo lis 開機 計算 grub Kernel (內核)是操作系統的核心,掌握所有硬件設備的控制權,也就是說,你所希望計算機幫你完成的各項工作,都需要通過內核的幫助才能完成,當然,如果我們想完成的某個功能是內核沒有的,則內核不

Linux 升級最新版本openSSH 7.8p

*注意:如果一次安裝失敗,下次安裝前解壓縮的目錄一定要刪除 升級openssh前需要先升級依賴包,教程如下 1、zlib-1.2.11.tar.gz # tar xzvf zlib-1.2.11.tar.gz #cd zlib-1.2.11 # ./configur

android 實現app內部檢測最新版本 自動升級最新版本

app現在基本都有版本更新這個功能,實現起來也很簡單 截圖效果: 1. 獲取當前app的版本號 /** * 獲取版本號 * * @throws PackageManager.NameNotFoundException */

Centos 7升級最新核心版本並刪除舊的系統核心

Centos 7最小化安裝的環境下進行 檢查已安裝的核心版本 uname -sr CentOS下使用 ELRepo第三方的倉庫,可以將核心升級到最新版本噢。 ELRepo 倉庫官方網站:http

Linux下開源軟件最新版本

開源 軟件 最新 版本apache 2.4.33 -----------------------21-Mar-2018 16:20 nginx-1.13.11------------------------- - mysql 5.7.21-------------------------- PHP 7.1.

Centos7下git最新版本安裝

問題 新版本 col ref mir fix edge git源 並且 剛重新裝了centos7最小版的系統,發現沒有git,只好重新安裝了,記錄下以防忘記。 安裝方法有兩種: 一、yum命令安裝: sudo yum install -y git 此方法簡單,並且會

Centos7下vim最新版本安裝

oca centos 安裝方法 解決 targe 編譯 span centos7 master 一直以來用的都是vim,因為之前都是系統自帶的vim沒有研究過怎麽自己安裝,今天趁著剛裝完新系統,順便裝下vim。 同樣vim也有兩種安裝方法: 一、yum安裝,centos

centos7升級PHP版本

1、yum provides php #自帶的只有5.4版本2、 rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm#更新源 rpm -Uvh https://mirror.webtatic.

CentOS7升級PHP版本為7.2

yum provides php #自帶的只有5.4版本 rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm #更新源 rpm -Uvh https://mirror.webtatic

CentOS7編譯安裝最新版本Git

Git簡介 git官網:https://git-scm.com/ git github地址:https://github.com/git/git/releases yum預設安裝git 1.8.x yum install –y git 原始碼編譯安裝最新版本git #解

ThinkPHP5 遠端程式碼執行漏洞被入侵日誌,升級最新版本解決

2018年12月9日,ThinkPHP團隊釋出了一個補丁更新,修復了一處由於路由解析缺陷導致的程式碼執行漏洞。該漏洞危害程度非常高,預設環境配置即可導致遠端程式碼執行。經過啟明星辰ADLab安全研究員對ThinkPHP的56個小版本的原始碼分析和驗證,確定具體受影響的版本為: ThinkPH

Centos7下安裝最新版本redis

1.安裝最新的redis,需要安裝Remi的軟體源, yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 2.安裝最新版本的redis ,當遇見詢問的時

centos7下安裝最新版本的kubernates

1 下載最新release包1 curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-rel

Linux 環境下編譯 0.11版本核心 kernel

原文地址:http://chfj007.blog.163.com/blog/static/173145044201132523034138/ 最近在看《linux核心0.11完全註釋》一書,由於書中涉及組合語言的地方眾多,本人在大學時組合語言學得一塌糊塗,所以實在看不下去了

ABP開發框架前後端開發系列---(16)ABP框架升級最新版本的經驗總結

有一小段時間沒有持續升級ABP框架了,最近就因應客戶的需要,把ABP框架進行全面的更新,由於我們應用的ABP框架,基礎部分還是會使用官方的內容,因此升級的時候需要把官方基礎ABP的DLL進行全面的更新,以及對應的引用DLL也同步更新才行。不過在升級過程中還是很多奇奇怪怪的問題,本篇隨筆針對出現的情況進行一系列

centos7通過yum升級核心最新版本

1.檢視當前的核心版本: [[email protected] ~]# uname -sr Linux 3.10.0-514.26.2.el7.x86_64 2.檢視最新的核心版本: https://www.kernel.org 來檢視最新的kernel版本 3.

linux,centos升級php版本最新

在更新PHP之前,先檢視下當前PHP版本,避免重複的更新  # php -v  檢查當前PHP的安裝包  # yum list installed | grep php  移除當前PHP的安裝包,否則容易起衝突  # yum re

centos7 docker升級最新穩定版本

一、前言   docker的版本分為社群版docker-ce和企業版dokcer-ee社,區版是免費提供給個人開發者和小型團體使用的,企業版會提供額外的收費服務,比如經過官方測試認證過的基礎設施、容器、外掛,當然docker的版本更新比較快,截止2018.12最新版本是18.09,如果你的機器上安裝了老版本

LinuxCentos7升級核心

更新前,核心版本為: uname -r 3.10.0-327.10.1.el7.x86_64 升級的方法: 1、匯入key rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org