1. 程式人生 > >Cento7升級核心到3.18的方法

Cento7升級核心到3.18的方法

預設centos7的核心版本是3.10,升級的原因是為了測試openvswitch的vlan技術,預設openvswitch的2.3版本是允許centos7預設核心3.10支援,下面是軟體與核心版本對比

   Open vSwitch   Linux kernel
   ------------   -------------
     1.4.x	  2.6.18 to 3.2
     1.5.x	  2.6.18 to 3.2
     1.6.x	  2.6.18 to 3.2
     1.7.x	  2.6.18 to 3.3
     1.8.x	  2.6.18 to 3.4
     1.9.x	  2.6.18 to 3.8
     1.10.x	 2.6.18 to 3.8
     1.11.x	 2.6.18 to 3.8
     2.0.x	  2.6.32 to 3.10
     2.1.x	  2.6.32 to 3.11
     2.2.x	  2.6.32 to 3.14

但如何想使用gre與vxlan的話,需要核心3.12以上的

   Protocol    Linux Kernel
   --------    ------------
     GRE           3.11
     VXLAN         3.12
     LISP      <not upstream>

所以得升級核心,下面是升級方法

更新前,核心版本為

[[email protected] tmp]# uname -r
3.10.0-123.el7.x86_64

目前最新的核心是3.18.3為stable,是2015年1月18日更新,具體資訊檢視 

https://www.kernel.org/

1、匯入key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

如果你修改了repo的gpgcheck=0也可以不匯入key

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

在yum的ELRepo源中,有mainline(3.18.3)這個核心版本

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

選擇了使用新安裝的repo來安裝3.18的核心,如果使用其他的repo,看不到3.18版本核心

[[email protected] tmp]# uname -r
3.10.0-123.el7.x86_64

重要:目前核心還是預設的版本,如果在這一步完成後你就直接reboot了,重啟後使用的核心版本還是預設的3.10,不會使用新的3.18,想修改啟動的順序,需要進行下一步

awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (3.18.3-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux, with Linux 3.10.0-123.el7.x86_64
CentOS Linux, with Linux 0-rescue-893b160e363b4ec7834719a7f06e67cf

預設啟動的順序是從0開始,但我們新核心是從頭插入(目前位置在0,而3.10的是在1),所以需要選擇0,如果想生效最新的核心,需要

grub2-set-default 0

然後reboot重啟,使用新的核心,下面是重啟後使用的核心版本

[[email protected] ~]# uname -r
3.18.3-1.el7.elrepo.x86_64

完成後核心已經是最新的了。

目前我升級後測試了2周沒有發現有問題,大家如果升級過程或者升級後有問題我們可以互相溝通。