如何在CentOS下从源代码编译并安装新版本的内核?
在工作中,很多时候,因为需要使用新的技术方案,需要较新版本的内核来支持新的功能,而CentOS系统自带的内核版本一般都比较旧,所以我们需要升级系统内核。 安装新版本的内核。 这里以CentOS7系统为例,编译安装最新版本内核的过程总结如下:
1、下载最新稳定版内核源码包到/usr/local/src编译centos源码,并解压到当前目录
2.解压内核源码包
3、将/boot目录下现有版本的内核编译config配置文件复制到新内核源码解压目录下的隐藏文件中,并重命名为.config
[root@localhost src]# cd linux-5.2.11 [root@localhost linux-5.2.11]# cp /boot/config-3.10.0-957.el7.x86_64 ./.config
从boot目录复制原内核的config文件主要是为了方便。 该文件保存了系统安装时内核安装的模块配置信息(否则需要重新自动指定各个模块的编译配置)。
4.安装依赖包
安装SDK组
[root@localhost linux-5.2.11]# yum -y groupinstall "development tools"
登录后复制
安装ncurse-devel包(makemenuconfig文本界面窗口依赖包)
[root@localhost linux-5.2.11]# yum -y install ncurses-devel
登录后复制
5、运行makemenuconfig,打开文本界面的编译选项菜单窗口,可以调整内核加载的模块的编译选项,如更改编译后的内核的名称、添加系统中缺少的新模块等之前等等
更改内核名称:
General setup --->local version -append to kernel release
登录后复制
将此处的内核名称更改为5.2.11-001.el7.x86_64
新增NTFS文件系统支持模块:
文件系统--->DOS/FAT/NT 文件系统--->NTFS 文件系统支持
建议选择以模块形式编译(M选项)。 (*号是静态编译打包到内核文件中的,如果新添加的模块较多,内核文件的大小会减小。)
6.编译内核
[root@localhost linux-5.2.11]# make -j 4 #根据CPU核数开启多线程编译以加快编译速度
登录后复制
开始漫长的编译过程大约需要1-2小时,具体取决于CPU硬件的性能。
如果编译开始提示错误编译centos源码,可能需要预安装相应的组件包,例如:
[root@localhost linux-5.2.11]# yum -y install openssh-devel elfutils-libelf-devel bc
登录后复制
根据相应的错误提示,以yum的形式安装相应的组件包,而部分组件包在epel源中,所以需要预先配置epel源仓库。
7. 编译并安装模块
编译完成后,执行makemodules_install安装内核模块
[root@localhost linux-5.2.11]# make modules_install
登录后复制
8.安装内核core文件
[root@localhost linux-5.2.11]# make install
登录后复制
重新启动 重新启动
要将新版本的内核设置为默认启动内核,可以使用此命令
grub2-set-default 0 #0表示 /boot/grub2/grub.cfg 文件中排在第一位的 menuentry 段
登录后复制
重启进入系统后查看内核版本,已经是最新版本5.2.11
[root@localhost ~]# uname -r 5.2.11-001.el7.x86_64
登录后复制
至此,整个内核的编译和安装过程就完成了。
相关参考:centOS教程