CentOS6.9手动编译并更新Kernel内核版本 - 图1

    Kernel是Linux操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。Kernel是操作系统的核心,掌控着所有硬件设备的控制权。
    内核就是系统上面的一个文件,这个文件包含了驱动主机各项硬件的检测程序与驱动模块,在系统启动流程中,当系统读完BIOS并加载MBR的Boot Loader之后,就能够加载内核到内存中,然后去检测硬件设备,挂载根目录来获取内核模块来驱动所有的硬件设备,之后就开始会叫/sbin/init进程来完成系统的启动,同时内核文件就是/boot目录下一个以vmlinuz开头的文件


    下面以CentOS6.9版本为例介绍如何手动编译Kernel内核版本,并更新

    1、查看当前系统内核版本
    [root@localhost ~]# uname -r
    2.6.32-696.el6.x86_64
    image.png

    2、下载稳定版本的kernel内核版本
    image.png
    例如下载2.6.39.4版本的内核
    https://mirrors.edge.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.4.tar.gz
    3、解压内核源码包到/usr/src目录 -C 指定解压目录
    CentOS6.9手动编译并更新Kernel内核版本 - 图4
    4、[root@localhost ~]# cd /usr/src/linux-2.6.39.4/
    [root@localhost linux-2.6.39.4]# cp /boot/config-2.6.32-696.el6.x86_64 ./.config
    从boot目录拷贝一个config文件过来主要是为了方便,这个文件里保存都是之前你在安装系统时内核所安装的模块
    5、[root@localhost linux-2.6.39.4]# make menuconfig
    CentOS6.9手动编译并更新Kernel内核版本 - 图5
    这时有报错提示,要安装ncurses基础开发包
    可采用yum install ncurses-devel方式安装, 安装过程省略,再次make menuconfig
    CentOS6.9手动编译并更新Kernel内核版本 - 图6
    6、进行调整你要编译的模块,例如新增文件系统模块里支持NTFS文件系统的模块
    image.png
    然后保存配置
    CentOS6.9手动编译并更新Kernel内核版本 - 图8
    保存之后检查与原/boot下config文件对比NTFS参数就说明保存成功了
    CentOS6.9手动编译并更新Kernel内核版本 - 图9
    7、接下来执行编译make操作
    CentOS6.9手动编译并更新Kernel内核版本 - 图10
    编译需要花费很长一段时间,请耐心等待
    8、编译完成后执行make modules_install 安装内核模块
    CentOS6.9手动编译并更新Kernel内核版本 - 图11
    9、执行完成后再make install 安装内核核心
    image.png
    10、这时内核就编译完成了cd /boot目录下查看,可以看到生成的内核相关文件
    这时修改/boot/grub/grub.conf将default=1改为0,下次开机启动从新内核版本启动
    CentOS6.9手动编译并更新Kernel内核版本 - 图13
    11、reboot重启后重新登录查看内核版本就可以看到版本更新为2.6.39.4版本了
    CentOS6.9手动编译并更新Kernel内核版本 - 图14
    或者重启后在开机过程中进入grub页面选择内核版本也可以看到新的内核版本2.6.39.4
    CentOS6.9手动编译并更新Kernel内核版本 - 图15