yum安装
添加阿里源
1 2 3 4 5 6 7
| cat <<EOF > /etc/yum.repos.d/elrepo.repo [elrepo] name=elrepo baseurl=https://mirrors.aliyun.com/elrepo/archive/kernel/el7/x86_64 gpgcheck=0 enabled=1 EOF
|
重建yum缓存
1
| yum clean all && yum makecache
|
查看yum仓库中的内核包
1
| yum list --showduplicate kernel*
|
安装内核
1
| yum install -y kernel-lt kernel-lt-devel
|
查看启动内核
1
| cat /etc/grub2.cfg | grep menuentry|awk -F "\'" '$1=="menuentry " {print i++ " : " $2}'
|
设置启动内核
重启,查看是否生效
查找版本
因 ELRepo 源都是最新版本,所以旧版本内核只能手动下载。
查找 kernel rpm 历史版:
http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/
下载文件
1 2 3 4 5 6 7 8 9
| wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.265-1.el7.elrepo.x86_64.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.265-1.el7.elrepo.x86_64.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-doc-5.4.265-1.el7.elrepo.noarch.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.265-1.el7.elrepo.x86_64.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-tools-5.4.265-1.el7.elrepo.x86_64.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-tools-libs-5.4.265-1.el7.elrepo.x86_64.rpm wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-tools-libs-devel-5.4.265-1.el7.elrepo.x86_64.rpm
|
安装内核
查看启动内核
1 2 3 4 5 6 7 8 9
| [root@node1 ~]# rpm -qa | grep kernel kernel-3.10.0-1160.119.1.el7.x86_64 kernel-3.10.0-1160.el7.x86_64 kernel-lt-headers-5.4.226-1.el7.elrepo.x86_64 kernel-lt-5.4.226-1.el7.elrepo.x86_64 kernel-tools-libs-3.10.0-1160.119.1.el7.x86_64 kernel-tools-3.10.0-1160.119.1.el7.x86_64 kernel-lt-devel-5.4.226-1.el7.elrepo.x86_64
|
设置启动内核
1 2
| cat /etc/grub2.cfg | grep menuentry|awk -F "\'" '$1=="menuentry " {print i++ " : " $2}'
|
1 2 3 4 5 6
| [root@node1 ~]# cat /etc/grub2.cfg | grep menuentry|awk -F "\'" '$1=="menuentry " {print i++ " : " $2}' awk: warning: escape sequence `\'' treated as plain `'' 0 : CentOS Linux (5.4.226-1.el7.elrepo.x86_64) 7 (Core) 1 : CentOS Linux (3.10.0-1160.119.1.el7.x86_64) 7 (Core) 2 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core) 3 : CentOS Linux (0-rescue-89ca0c0544ae4eabb7417e2850f8025d) 7 (Core)
|
设置启动顺序
重启生效
源码安装
安装核心软件包
1 2 3
| yum install -y gcc make git ctags ncurses-devel openssl-devel yum install -y bison flex elfutils-libelf-devel bc
|
创建内核编译目录
使用 home 下的 kernelbuild 目录
获取内核源码
清华大学镜像站:https://mirror.tuna.tsinghua.edu.cn/kernel/
其他源码安装包下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/
1 2 3
| linux-4.xx.xx.tar.xz linux-4.xx.xx.tar.gz 这两个格式都可以的,tar.xz压缩率更高,文件更小。
|
在线下载
1
| wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.266.tar.xz
|
解压内核代码
将其解压后进入源码目录:
1
| tar -xvJf linux-5.4.266.tar.xz
|
为确保内核树绝对干净,进入内核目录并执行 make mrproper 命令:
1 2
| cd linux-5.4.266 make clean && make mrproper
|
内核配置
复制当前的内核配置文件
config-3.10.0-1160.el7.x86_64是我当前环境的内核配置文件,根据实际情况修改
1
| cp /boot/config-3.10.0-1160.el7.x86_64 .config
|
高级配置
y 是启用, n 是禁用, m 是需要时启用.
1 2 3
| make menuconfig # 老的 ncurses 界面,被 nconfig 取代 make nconfig # 新的命令行 ncurses 界面
|
编译和安装
编译内核
如果你是四核的机器,x可以是8
安装内核
编译完内核后安装:Warning: 从这里开始,需要 root 权限执行命令,否则会失败.
1
| make modules_install install
|
查看启动内核
1 2 3 4 5 6
| [root@localhost ~]# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg CentOS Linux (4.17.11-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (4.9.9-1.el7.elrepo.x86_64) 7 (Core) CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core) CentOS Linux (0-rescue-b91f945269084aa98e8257311ee713c5) 7 (Core)
|
设置启动内核
重启生效