Centos7 更换内核到4.16的尝试

简介: 云上ECS的Centos 7.x系统是3.x的内核,如何更换到4.x呢?

背景:

  特殊需求,需要使用kernel 4.x版本,在云上ECS如何更换呢?
  

怂一下先:
请对生产环境,保持敬畏之心,务必做好快照备份!
请对生产环境,保持敬畏之心,务必做好快照备份!
请对生产环境,保持敬畏之心,务必做好快照备份!

1,看下内核先

# uname -r
3.10.0-514.26.2.el7.x86_64

2,升级内核需要先导入elrepo的key,然后安装elrepo的yum源:

# rpm -import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#  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%]

3,看下源上的内核版本

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available
Loaded plugins: fastestmirror
elrepo-kernel                                                                                           | 2.9 kB  00:00:00     
elrepo-kernel/primary_db       FAILED                                                        ] 4.1 kB/s |  83 kB  00:06:58 ETA 
http://elrepo.org/linux/kernel/el7/x86_64/repodata/b970175c81e43b64f8ed487034e08db0f81ba50f2ba1a770606d4a85f7c3c1ab-primary.sqlite.bz2: [Errno 14] curl#18 - "transfer closed with 1740046 bytes remaining to read"
Trying other mirror.
elrepo-kernel/primary_db       FAILED                                          
http://mirrors.coreix.net/elrepo/kernel/el7/x86_64/repodata/b970175c81e43b64f8ed487034e08db0f81ba50f2ba1a770606d4a85f7c3c1ab-primary.sqlite.bz2: [Errno 14] curl#6 - "Could not resolve host: mirrors.coreix.net; Unknown error"
Trying other mirror.
elrepo-kernel/primary_db                                                                                | 1.7 MB  00:00:02     
Determining fastest mirrors
 * elrepo-kernel: mirrors.tuna.tsinghua.edu.cn
Available Packages
kernel-lt.x86_64                                               4.4.131-1.el7.elrepo                               elrepo-kernel
kernel-lt-devel.x86_64                                         4.4.131-1.el7.elrepo                               elrepo-kernel
kernel-lt-doc.noarch                                           4.4.131-1.el7.elrepo                               elrepo-kernel
kernel-lt-headers.x86_64                                       4.4.131-1.el7.elrepo                               elrepo-kernel
kernel-lt-tools.x86_64                                         4.4.131-1.el7.elrepo                               elrepo-kernel
kernel-lt-tools-libs.x86_64                                    4.4.131-1.el7.elrepo                               elrepo-kernel
kernel-lt-tools-libs-devel.x86_64                              4.4.131-1.el7.elrepo                               elrepo-kernel
kernel-ml.x86_64                                               4.16.8-1.el7.elrepo                                elrepo-kernel
kernel-ml-devel.x86_64                                         4.16.8-1.el7.elrepo                                elrepo-kernel
kernel-ml-doc.noarch                                           4.16.8-1.el7.elrepo                                elrepo-kernel
kernel-ml-headers.x86_64                                       4.16.8-1.el7.elrepo                                elrepo-kernel
kernel-ml-tools.x86_64                                         4.16.8-1.el7.elrepo                                elrepo-kernel
kernel-ml-tools-libs.x86_64                                    4.16.8-1.el7.elrepo                                elrepo-kernel
kernel-ml-tools-libs-devel.x86_64                              4.16.8-1.el7.elrepo                                elrepo-kernel
perf.x86_64                                                    4.16.8-1.el7.elrepo                                elrepo-kernel
python-perf.x86_64                                             4.16.8-1.el7.elrepo                                elrepo-kernel

4,安装内核

# yum -y --enablerepo=elrepo-kernel install kernel-ml.x86_64 kernel-ml-devel.x86_64 

image
版本性质:主分支ml(mainline),稳定版(stable),长期维护版lt(longterm)

5,查看内核是否安装完成

# rpm -qa |grep kernel
kernel-ml-devel-4.16.8-1.el7.elrepo.x86_64
kernel-3.10.0-327.el7.x86_64
kernel-headers-3.10.0-514.26.2.el7.x86_64
kernel-ml-4.16.8-1.el7.elrepo.x86_64
kernel-3.10.0-514.26.2.el7.x86_64
kernel-tools-libs-3.10.0-514.26.2.el7.x86_64
kernel-tools-3.10.0-514.26.2.el7.x86_64

6,查看并修改grub的启动顺序

# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
CentOS Linux (4.16.8-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-36dc953195bb4389870d2591ff6bfea5) 7 (Core)

注:第一个是4.16,但是对应的顺序是0

# vi /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved(这里改成0)
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 console=tty0 console=ttyS0,115200n8"
GRUB_DISABLE_RECOVERY="true"

7,生成grub重新创建内核配置并重启

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.16.8-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.16.8-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-514.26.2.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-514.26.2.el7.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-36dc953195bb4389870d2591ff6bfea5
Found initrd image: /boot/initramfs-0-rescue-36dc953195bb4389870d2591ff6bfea5.img
done

# reboot

8,重启成功后登陆确认内核版本

# uname -r
4.16.8-1.el7.elrepo.x86_64

更换成功~请务必做好新内核的测试,再考虑生产环境的更换

目录
相关文章
|
6月前
|
Linux Perl
Linux centos7升级内核(两种方法:内核编译和yum更新)
Linux centos7升级内核(两种方法:内核编译和yum更新)
2033 1
Linux centos7升级内核(两种方法:内核编译和yum更新)
|
安全 Linux
Centos 7.x 升级内核
千万不要小瞧这操作。
379 0
Centos 内核更新后缺少initramfs 导致无法启动
Centos 内核更新后缺少initramfs 导致无法启动
|
3月前
|
Linux
centos7升级内核到最新稳定版
centos7升级内核到最新稳定版
389 0
|
2月前
|
Linux
centos linux内核下载
centos linux内核下载
|
5月前
|
Linux
通过ELRepo修改CentOS 7内核版本的详细步骤
通过ELRepo修改CentOS 7内核版本的详细步骤
695 3
|
6月前
|
Kubernetes 监控 Linux
容器服务ACK常见问题之新增一台CentOS 5.4内核的节点失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
安全 Linux 虚拟化
【Centos7系统内核如何更换?为什么需要更新内核?】
在CentOS 7系统中,内核是非常重要的一部分。它是操作系统的核心,负责管理系统的硬件资源和提供各种系统服务。
285 0
|
Linux 编译器 C语言
百度搜索:蓝易云【Linux系统:CentOS编译Linux内核教程!】
请注意,以上步骤仅提供了一个基本的编译内核的概述。实际的编译过程可能因系统配置、内核版本等因素而有所差异。建议参考Linux内核官方文档和其他可靠资源,以获取更详细和特定于你的系统的指导。在进行任何内核操作之前,请务必备份你的系统数据并了解相关风险。
194 2
百度搜索:蓝易云【Linux系统:CentOS编译Linux内核教程!】
|
Linux C语言
实验:CentOS 7 编译安装最新版内核 Linux Kernel 6.5.2
CentOS 7 编译安装最新版内核 Linux Kernel 6.5.2
668 0