在工作中,很多时候源码安装编译安装,因为需要使用新的技术方案,需要较新版本的内核来支持新的功能,而CentOS系统自带的内核版本一般都比较旧,所以我们需要升级系统内核。 安装新版本的内核。 这里以CentOS7系统为例源码安装编译安装,编译安装最新版本内核的过程总结如下:
1、下载最新稳定版内核源码包到/usr/local/src并解压到当前目录。
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.安装依赖包
安装开发包组
[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硬件的性能。
如果一开始编译就出现错误,可能需要提前安装相应的组件包,如:
[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.安装内核核心文件
[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教程