1.查看当前linux系统内核版本
$ uname -r
3.10.0-1127.el7.x86_64
2.下载并安装4.18.9版本内核rpm包
- 自行查找需要的内核版本(比较全的lt和ml版本):内核rpm包所有版本
2.1 第一种方法
下载网上找来的4.18.9版本内核文件: 4.18.9版本内核rpm包下载
- 执行安装操作
# tar -zxf kernel-ml-4.18.9.tar.gz
# cd kernel-ml-4.18.9
# yum localinstall kernel-ml*
- 查看系统当前所有的内核
# cat /boot/efi/EFI/centos/grub.cfg |grep ^menuentry
menuentry 'CentOS Linux (5.10.6-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.6-1.el7.elrepo.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.18.9-1.el7.elrepo.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.11.1.el7.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (3.10.0-1160.2.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.2.2.el7.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1127.el7.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (0-rescue-30f77b3b8b45481887d2f85d3012ff9b) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-30f77b3b8b45481887d2f85d3012ff9b-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg
0 : CentOS Linux (5.10.6-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-1160.2.2.el7.x86_64) 7 (Core)
4 : CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)
5 : CentOS Linux (0-rescue-30f77b3b8b45481887d2f85d3012ff9b) 7 (Core)
# grep "^menuentry" /boot/efi/EFI/centos/grub.cfg | cut -d "'" -f2
CentOS Linux (5.10.6-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-30f77b3b8b45481887d2f85d3012ff9b) 7 (Core)
- 设置默认启动新内核,并重新生成grub
# 设置启动内核
# sudo grub2-set-default 1
或者:
# sudo grub2-set-default 'CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)'
- 刷新配置文件
$ sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
- 重启服务器进行验证
# reboot
2.2 第二种方法
- 下载4.18.9内核的rpm包
# wget http://35.196.108.58/centos/7/elrepokernel/
x86_64/RPMS/kernel-ml-4.18.9-1.el7.elrepo.x86_64.rpm
- 升级内核
# sudo yum -y install kernel-ml-4.18.9-1.el7.elrepo.x86_64.rpm
- 查看系统当前所有的内核版本
# cat /boot/efi/EFI/centos/grub.cfg |grep ^menuentry
menuentry 'CentOS Linux (5.10.6-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-5.10.6-1.el7.elrepo.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-4.18.9-1.el7.elrepo.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.11.1.el7.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (3.10.0-1160.2.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.2.2.el7.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1127.el7.x86_64-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
menuentry 'CentOS Linux (0-rescue-30f77b3b8b45481887d2f85d3012ff9b) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-30f77b3b8b45481887d2f85d3012ff9b-advanced-5229b9fd-e058-41cb-8c76-eb20fd40d5f9' {
# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/efi/EFI/centos/grub.cfg
0 : CentOS Linux (5.10.6-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core)
3 : CentOS Linux (3.10.0-1160.2.2.el7.x86_64) 7 (Core)
4 : CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)
5 : CentOS Linux (0-rescue-30f77b3b8b45481887d2f85d3012ff9b) 7 (Core)
# grep "^menuentry" /boot/efi/EFI/centos/grub.cfg | cut -d "'" -f2
CentOS Linux (5.10.6-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.11.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-1127.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-30f77b3b8b45481887d2f85d3012ff9b) 7 (Core)
- 设置默认启动新内核,并重新生成grub
# 设置启动内核
# sudo grub2-set-default 1
或者:
# sudo grub2-set-default 'CentOS Linux (4.18.9-1.el7.elrepo.x86_64) 7 (Core)'
- 刷新配置文件
# sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
5. 重启服务器进行验证
# reboot
3.升级内核出现的问题处理
如果重启之后发现服务器一直启动不起来, 进入机房接显示器查看:
注意: 使用yum升级4.X会出现这种下列情况:
问题描述:
发现页面卡死,进行Ctrl+Alt+Del进行重启。重启后页面一直进不去,但这时机器已经启动,ssh可以连接。
解决办法:
- 修改配置文件
# sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX后面加添:mgag200.modeset=0
2. 生成新的配置
# sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
3. 重启系统
# reboot
- 查看系统内核版本
# uname -r
4.18.9-1.el7.elrepo.x86_64