1. 程式人生 > 實用技巧 >Centos核心版本升級

Centos核心版本升級

關於核心

核心進行的是應用軟體和計算機硬體的互動工作

核心進行的是應用軟體和計算機硬體的互動工作在電腦科學中,核心(英語:kernel)又稱核心,是一個計算機程式,用來管理軟體發出的資料I/O(輸入與輸出)要求,將這些要求轉譯為資料處理的指令,交由中央處理器(CPU)及計算機中其他電子元件進行處理,是現代作業系統中最基本的部分。
它是為眾多應用程式提供對計算機硬體的安全訪問的一部分軟體,這種訪問是有限的,並由核心決定一個程式在什麼時候對某部分硬體操作多長時間。直接對硬體操作是非常複雜的。所以核心通常提供一種硬體抽象的方法,來完成這些操作。通過程序間通訊機制及系統呼叫,應用程序可間接控制所需的硬體資源(特別是處理器及IO裝置)。

1、Centos 6.x系統

1.1 安裝elrepo

yum update -y
# 匯入公鑰
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
# 安裝6版本的ELRepo
rpm -Uvh elrepo-release-6-8.el6.elrepo.noarch.rpm 	
# 安裝新版本核心
yum --enablerepo=elrepo-kernel install kernel-lt -y

目前centos6版本中僅提供有kernel-lt 版本核心,最新核心為 4.4.17(截至20190121)
https://elrepo.org/linux/kernel/el6/x86_64/RPMS/


1.2 啟用新版本核心

cp /etc/grub.conf{,.bak}
vim /etc/grub.conf
將其中的default修改為0

1.3 修改完成後重啟伺服器

reboot

2、Centos 7.x系統

2.1 安裝elrepo

yum update -y
# 匯入公鑰
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 
# 安裝7.x版本的ELRepo
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 安裝新版本核心
yum --enablerepo=elrepo-kernel install kernel-lt -y

目前為cetnos 7.x提供了ml和lt兩個版本的核心,可以根據需求進行選擇:
https://elrepo.org/linux/kernel/el7/x86_64/RPMS/

2.2 修改grub檔案

Centos7.x 核心升級完畢後,需要修改核心的啟動順序:

vim /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved		#把這裡的saved改成0
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"

接下來還需要執行grub2-mkconfig命令來重新建立核心配置,命令是grub2-mkconfig -o /boot/grub2/grub.cfg,如下:

grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.17.171-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.17.171-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.2.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.2.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa
Found initrd image: /boot/initramfs-0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa.img
done

2.3 修改完成後重啟伺服器

reboot

2.4 關於兩個核心版本的說明

ELRepo有兩種型別的Linux核心包,kernel-lt和kernel-ml。 他們之間有什麼區別?
kernel-ml軟體包是根據Linux Kernel Archives的主線穩定分支提供的源構建的。 核心配置基於預設的RHEL-7配置,並根據需要啟用了新增的功能。 這些軟體包有意命名為kernel-ml,以免與RHEL-7核心發生衝突,因此,它們可以與常規核心一起安裝和更新。
kernel-lt包是從Linux Kernel Archives提供的原始碼構建的,就像kernel-ml軟體包一樣。 不同之處在於kernel-lt基於長期支援分支,而kernel-ml基於主線穩定分支。

安裝過程中遇到問題可以參考https://dwz.cn/vZotLbZD

3、參考文獻

http://elrepo.org
https://rorschachchan.github.io/2018/08/25/centos6-5升級最新核心4-18的坑/
https://rorschachchan.github.io/2018/06/11/阿里雲centos7升級核心過程/
https://www.admon.org/faqs/kernel-lt-and-kernel-ml/