centos 安装低版本内核_Linux 升级内核
Centos7 升級內(nèi)核版本
??????????linux內(nèi)核官方網(wǎng)站:https://www.kernel.org/
????????今天做docker 實驗時,發(fā)現(xiàn)docker網(wǎng)橋無法正常使用,排查了1個小時,宿主機網(wǎng)絡(luò)都正常,由于系統(tǒng)內(nèi)核為3.1 但是docker 版本為最新版,百度后說是內(nèi)核版本過低。所有升級了下內(nèi)核,發(fā)現(xiàn)docker0?正常了,順便整理下內(nèi)核版本資料。
?????????? Linux內(nèi)核版本命名在不同時期有著不同的規(guī)范,在涉及到Linux版本問題時經(jīng)常容易混淆,主線版本/穩(wěn)定版/長期支持版本經(jīng)常搞不清楚,本文主要記錄下內(nèi)核版本命名的規(guī)則以及如何查看Linux系統(tǒng)版本信息。
Linux內(nèi)核(Linux kernel)簡介
內(nèi)核是操作系統(tǒng)的核心 ,其主要功能有:
響應(yīng)中斷,執(zhí)行中斷服務(wù)程序管理多個進程,調(diào)度和分享處理器的時間
管理進程地址空間的內(nèi)存管理
網(wǎng)絡(luò)和進程間通信等系統(tǒng)服務(wù)程序
內(nèi)核的活動范圍:
運行于用戶空間,執(zhí)行用戶進程運行于內(nèi)核空間,處于進程上下文,代表某個特定進程的執(zhí)行
運行于內(nèi)核空間,處于中斷上下文,與任何進程無關(guān),處理某個特定的中斷
Linux內(nèi)核版本號
第一種方式:
Linux 的版本號分為兩部分,即內(nèi)核版本與發(fā)行版本。內(nèi)核版本號由3個數(shù)字組成:A.B.C。各數(shù)字含義如下:
B:內(nèi)核次版本號。是指一些重大修改的內(nèi)核。偶數(shù)表示穩(wěn)定版本;奇數(shù)表示開發(fā)中版本。
C:內(nèi)核修訂版本號。是指輕微修訂的內(nèi)核。這個數(shù)字當(dāng)有安全補丁,bug修復(fù),新的功能或驅(qū)動程序,內(nèi)核便會有變化。
第二種方式:
major.minor.patch-build.desc
minor : 次版本號,新增功能時才發(fā)生變化,一般技術(shù)表示測試版,偶數(shù)表示生產(chǎn)版
patch : 補丁包數(shù)或次版本的修改次數(shù)
build : 編譯(或構(gòu)建)的次數(shù),每次編譯可能對少量程序做優(yōu)化或修改,但一般沒有大的(可控的)功能變化。
desc : 當(dāng)前版本的特殊信息,其信息由編譯時指定,具有較大的隨意性,有如下的標(biāo)識是常用的:
rc(或r),表示發(fā)行候選版本(release candidate),rc后的數(shù)字表示該正式版本的第幾個候選版本,多數(shù)情況下,各候選版本之間數(shù)字越大越接近正式版。
smp,表示對稱多處理器(Symmetric MultiProcessing)。
pp,在Red Hat Linux中常用來表示測試版本(pre-patch)。
EL,在Red Hat Linux中用來表示企業(yè)版Linux(Enterprise Linux)。
mm,表示專門用來測試新的技術(shù)或新功能的版本。
fc,在Red Hat Linux中表示Fedora Core。
例如:
用命令uname -a查看內(nèi)核版本號
1、在CentOS下如:
Linux localhost 2.6.32-642.15.1.el6.x86_64 #1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux說明如下:
第一個組數(shù)字:2, 主版本號第二個組數(shù)字:6, 次版本號,當(dāng)前為穩(wěn)定版本
第三個組數(shù)字:32, 修訂版本號
第四個組數(shù)字:642.15.1,表示發(fā)型版本的補丁版本
el6:則表示我正在使用的內(nèi)核是 RedHat / CentOS 系列發(fā)行版專用內(nèi)核
x86_64:采用的是64位的CPU
2、在Ubuntu下如:
Linux localhost 3.2.0-67-generic #101-Ubuntu SMP Tue Jul 15 17:46:11 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux#有的是3.2.0-67-generic-pae
說明如下:
第一個組數(shù)字:3, 主版本號第二個組數(shù)字:2, 次版本號,當(dāng)前為穩(wěn)定版本
第三個組數(shù)字:0, 修訂版本號
第四個組數(shù)字:67,當(dāng)前內(nèi)核版本(3.2.0)的第67次微調(diào)patch
generic:當(dāng)前內(nèi)核版本為通用版本,另有表示不同含義的server(針對服務(wù)器)、i386(針對老式英特爾處理器)
pae(Physical Address Extension):物理地址擴展,為了彌補32位地址在PC服務(wù)器應(yīng)用上的不足而推出,表示此32位系統(tǒng)可以支持超過4G的內(nèi)存
x86_64:采用的是64位的CPU
SMP:對稱多處理機,表示內(nèi)核支持多核、多處理器
Tue Jul 15 17:46:11 UTC 2014:內(nèi)核的編譯時間(build date)為 2014/07/15 17:46:11
查看Linux系統(tǒng)版本的命令
1、lsb_release -a(適用于所有的Linux發(fā)行版本)
LSB是Linux Standard Base的縮寫,lsb_release命令用來顯示LSB和特定版本的相關(guān)信息。如果使用該命令時不帶參數(shù),則默認(rèn)加上-v參數(shù)。
說明:
-i 顯示發(fā)行版的id。
-d 顯示該發(fā)行版的描述信息。
-r 顯示當(dāng)前系統(tǒng)是發(fā)行版的具體版本號。
-c 發(fā)行版代號。
-a 顯示上面的所有信息。
-h 顯示幫助信息。
-s 輸出簡短的描述信息(僅限于redhat和fedora系統(tǒng)) 。
有些系統(tǒng)中默認(rèn)并沒有安裝lsb_release,需要進行安裝,以CentOS為例:
首先查找lsb_release安裝包:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* elrepo: mirrors.tuna.tsinghua.edu.cn
* extras: centos.ustc.edu.cn
* updates: mirrors.cn99.com
redhat-lsb-core-4.1-27.el7.centos.1.x86_64 : LSB Core module support
Repo : base
Matched from:
Filename : /usr/bin/lsb_release
安裝:
[root@bogon ~]# yum install -y redhat-lsb-core2、cat /etc/redhat-release(適用于Redhat系的Linux)
[root@bogon ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core)
3、cat /etc/issue(適用于所有的Linux發(fā)行版本)
root@localhost:~# cat /etc/issueUbuntu 14.04.5 LTS \n \l
內(nèi)核版本分類
名詞解釋:
1、mainline ? ? 主線版本
2、stabel ? ? ? ? 穩(wěn)定版,提供內(nèi)核bug修復(fù)和安全升級;結(jié)尾帶EOL字樣表示此版內(nèi)核不在支持安全和修復(fù)
3、longterm ? ? 長期支持版,不再支持的版本結(jié)尾會標(biāo)記EOL字樣
4、linux-next ?? 代碼周期提交結(jié)束之前生成的快照 用于給linux代碼貢獻者測試作使用
升級內(nèi)核方法
$ uname -r3.10.0-514.el7.x86_64$ uname -aLinux k8s-master 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux$ cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core)$ yum -y update啟用 ELRepo 倉庫
ELRepo 倉庫是基于社區(qū)的用于企業(yè)級 Linux 倉庫,提供對 RedHat Enterprise (RHEL) 和 其他基于 RHEL的 Linux 發(fā)行版(CentOS、Scientific、Fedora 等)的支持。
ELRepo 聚焦于和硬件相關(guān)的軟件包,包括文件系統(tǒng)驅(qū)動、顯卡驅(qū)動、網(wǎng)絡(luò)驅(qū)動、聲卡驅(qū)動和攝像頭驅(qū)動等。
#導(dǎo)入ELRepo倉庫的公共密鑰
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org#安裝ELRepo倉庫的yum源rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm3、查看可用的系統(tǒng)內(nèi)核包
可以看到4.4和4.18兩個版本
yum --disablerepo="*" --enablerepo="elrepo-kernel" list availableLoaded plugins: fastestmirrorLoading mirror speeds from cached hostfile * elrepo-kernel: mirrors.tuna.tsinghua.edu.cnelrepo-kernel | 2.9 kB 00:00:00 elrepo-kernel/primary_db | 1.8 MB 00:00:03 Available Packageskernel-lt.x86_64 4.4.155-1.el7.elrepo elrepo-kernelkernel-lt-devel.x86_64 4.4.155-1.el7.elrepo elrepo-kernelkernel-lt-doc.noarch 4.4.155-1.el7.elrepo elrepo-kernelkernel-lt-headers.x86_64 4.4.155-1.el7.elrepo elrepo-kernelkernel-lt-tools.x86_64 4.4.155-1.el7.elrepo elrepo-kernelkernel-lt-tools-libs.x86_64 4.4.155-1.el7.elrepo elrepo-kernelkernel-lt-tools-libs-devel.x86_64 4.4.155-1.el7.elrepo elrepo-kernelkernel-ml.x86_64 4.18.7-1.el7.elrepo elrepo-kernelkernel-ml-devel.x86_64 4.18.7-1.el7.elrepo elrepo-kernelkernel-ml-doc.noarch 4.18.7-1.el7.elrepo elrepo-kernelkernel-ml-headers.x86_64 4.18.7-1.el7.elrepo elrepo-kernelkernel-ml-tools.x86_64 4.18.7-1.el7.elrepo elrepo-kernelkernel-ml-tools-libs.x86_64 4.18.7-1.el7.elrepo elrepo-kernelkernel-ml-tools-libs-devel.x86_64 4.18.7-1.el7.elrepo elrepo-kernelperf.x86_64 4.18.7-1.el7.elrepo elrepo-kernelpython-perf.x86_64 4.18.7-1.el7.elrepo elrepo-4、安裝最新版本內(nèi)核
$ yum --enablerepo=elrepo-kernel install kernel-ml5、設(shè)置 grub2
內(nèi)核安裝好后,需要設(shè)置為默認(rèn)啟動選項并重啟后才會生效
查看系統(tǒng)上的所有可用內(nèi)核:
$ sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg0 : CentOS Linux (4.18.7-1.el7.elrepo.x86_64) 7 (Core)1 : CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)2 : CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)3 : CentOS Linux (0-rescue-063ec330caa04d4baae54c6902c62e54) 7 (Core)設(shè)置新的內(nèi)核為grub2的默認(rèn)版本
服務(wù)器上存在4 個內(nèi)核,我們要使用 4.18 這個版本,可以通過?grub2-set-default 0?命令或編輯?/etc/default/grub?文件來設(shè)置
方法1、通過?grub2-set-default 0?命令設(shè)置
其中 0 是上面查詢出來的可用內(nèi)核
grub2-set-default 0方法2、編輯?/etc/default/grub?文件
設(shè)置 GRUB_DEFAULT=0,通過上面查詢顯示的編號為 0 的內(nèi)核作為默認(rèn)內(nèi)核:
$ vim /etc/default/grubGRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"GRUB_DEFAULT=0GRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="console"GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rhgb quiet"GRUB_DISABLE_RECOVERY="true"生成 grub 配置文件并重啟
$ grub2-mkconfig -o /boot/grub2/grub.cfgGenerating grub configuration file ...Found linux image: /boot/vmlinuz-4.18.7-1.el7.elrepo.x86_64Found initrd image: /boot/initramfs-4.18.7-1.el7.elrepo.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-862.11.6.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-862.11.6.el7.x86_64.imgFound linux image: /boot/vmlinuz-3.10.0-514.el7.x86_64Found initrd image: /boot/initramfs-3.10.0-514.el7.x86_64.imgFound linux image: /boot/vmlinuz-0-rescue-063ec330caa04d4baae54c6902c62e54Found initrd image: /boot/initramfs-0-rescue-063ec330caa04d4baae54c6902c62e54.imgdone$ reboot6、驗證
$ uname -r4.18.7-1.el7.elrepo.x86_647、刪除舊內(nèi)核(可選)
查看系統(tǒng)中全部的內(nèi)核:
$ rpm -qa | grep kernelkernel-3.10.0-514.el7.x86_64kernel-ml-4.18.7-1.el7.elrepo.x86_64kernel-tools-libs-3.10.0-862.11.6.el7.x86_64kernel-tools-3.10.0-862.11.6.el7.x86_64kernel-3.10.0-862.11.6.el7.x86_64方法1、yum remove 刪除舊內(nèi)核的 RPM 包
$ yum remove kernel-3.10.0-514.el7.x86_64 \kernel-tools-libs-3.10.0-862.11.6.el7.x86_64 \kernel-tools-3.10.0-862.11.6.el7.x86_64 \kernel-3.10.0-862.11.6.el7.x86_64方法2、yum-utils?工具
如果安裝的內(nèi)核不多于 3 個,yum-utils?工具不會刪除任何一個。只有在安裝的內(nèi)核大于 3 個時,才會自動刪除舊內(nèi)核。
安裝yum-utils
$ yum install yum-utils刪除舊版本
package-cleanup --oldkernels參考資料
????????https://www.cnblogs.com/xzkzzz/p/9627658.html
????????https://www.ibm.com/developerworks/cn/linux/l-linux-kernel/
????????Linux內(nèi)核(維基百科)
總結(jié)
以上是生活随笔為你收集整理的centos 安装低版本内核_Linux 升级内核的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信号与线性系统分析_什么是线性系统?如何
- 下一篇: linux 串口工具_Zynq下linu