CentOS6.7 编译安装4.2.0内核

工作之后开始接触Linux,

本人略微有些强迫症,

看着内核不是最新的版本感觉不爽,

所以才有了这篇文章,

算是一个记录吧.


1. 首先去 https://www.kernel.org/ 下载内核. 建议使用迅雷等工具下载,否则下载速度很慢.

    CentOS6.7 编译安装4.2.0内核_第1张图片

2. 利用工具,将下载好的内核上传到服务器上.

    SecureSRT/Putty/WinCP等. 目录自定义.

3. 使用yum安装基本运行环境.(可以先把yum源更换为国内的,这样下载速度比较快.)

# 更换163yum源
#[1] 首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#[2] 进入yum源配置文件所在文件夹
cd /etc/yum.repos.d/
#[3] 下载163的yum源配置文件,放入/etc/yum.repos.d/(操作前请做好相应备份)
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
#[4] 运行yum makecache生成缓存
yum makecache

# 编译环境安装
yum install -y gcc gdb make libncurses5* xz bc ncurses*

4. 解压内核文件

# 先将 .xz解压成 .tar,再解压 .tar
xz -d linux-4.2.tar.xz
tar xvf linux.tar

5. 配置内核

    这里你可以根据你自己的需求来选择内核的功能,这里内核的功能不做介绍.

# 配置内核
# 此处会弹出类似于安装Linux时那样的界面,
# 由于这也是本人第一次编译内核,没有经验,以为这个界面需要在GUI下完成,
# 所以中间安装了KDE桌面,导致浪费了很长时间.

# 在使用make menuconfig这个命令后,会出现如下的字符界面,我们就可以在这个界面上对内核进行配置。
# 但是如果这不是你第一次配置这个内核,那么请先运行:make mrproper来清除以前的配置,回到默认配置,然后再运行:make menuconfig

make menuconfig

   CentOS6.7 编译安装4.2.0内核_第2张图片

6. 编译内核

    PS : 编译之前一定要注意磁盘空间 , 本人利用虚拟机练手 , 没注意磁盘空间 , 导致编译了好长时间的内核都无用了.

    这一步时间比较成,去喝杯咖啡吧.

# 虚拟机配置
# i5-4200U 2G 20G 桥接网卡
# 编译耗时大概在20分钟左右.
make

   CentOS6.7 编译安装4.2.0内核_第3张图片

7. 安装内核

    7.1 安装模块

    安装模块,对于内核来说,每一个内核版本有自己的模块目录,

    默认在/lib/modules/内核版本号这个目录下,make modules_install会创建对应的目录,

    并把对应的模块文件拷贝过去。

make modules_install

    记住 这个文件夹的名字 稍后会用到.

    注意,这一步必须要在编译过内核再做.

   

    7.2 复制内核文件到/boot 并改名 vmlinux-4.2_x86_64

# 复制
cd /YourKernelDir/arch/x86_64/boot
cp bzImage /boot
cd /boot
mv bzImage vmlinux-4.2_x86_64
chmod +x vmlinux-4.2_x86_64

   

     7.3 制作initrd.

# img文件名自定义   注意 : 后边的4.2.0为7.1步骤中的模块文件夹的名字

mkinitrd /boot/initramfs-4.2_x86_64.img 4.2.0

    7.4 修改启动菜单

# CentOS中grub.conf 和 menu.lst 是一个文件
# 所以修改一处就可以
vi /boot/grub/grub.conf

# 复制原有的启动项
# 修改如下内容
# 这里 CentOS给出了一个示例

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          你在写文件路径是时不需要写绝对路径,只需要写复制过来的那个文件的名字就可以了
#          kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-LogVol01
#                  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
#          这里写刚才生成的img的文件名
#          initrd /initrd-[generic-]version.img
#                  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

     CentOS6.7 编译安装4.2.0内核_第4张图片

   第一个方块 对应上方 vmlinuz-version

   第二个方块 对应下方 initrd-[generic-]version.img

8. 重启

   不出意外的话,我们的内核已经安装完成了,

   在启动的时候注意选下新的内核版本就可以了.

   启动之后 使用

uname -s -r -i

   来查看你的新内核吧!



心得 :

刚开始的时候总觉得内核这个东西里我很远,

感觉这个东西都是大神级别去弄的东西,

自己动手尝试下未尝不是一件好事,

多练习,早晚有一天,你可以把Linux调教的很好的.

与君共勉.

你可能感兴趣的:(linux,centos,kernel,编译内核)