工作之后开始接触Linux,
本人略微有些强迫症,
看着内核不是最新的版本感觉不爽,
所以才有了这篇文章,
算是一个记录吧.
1. 首先去 https://www.kernel.org/ 下载内核. 建议使用迅雷等工具下载,否则下载速度很慢.
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
6. 编译内核
PS : 编译之前一定要注意磁盘空间 , 本人利用虚拟机练手 , 没注意磁盘空间 , 导致编译了好长时间的内核都无用了.
这一步时间比较成,去喝杯咖啡吧.
# 虚拟机配置 # i5-4200U 2G 20G 桥接网卡 # 编译耗时大概在20分钟左右. make
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 # ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
第一个方块 对应上方 vmlinuz-version
第二个方块 对应下方 initrd-[generic-]version.img
8. 重启
不出意外的话,我们的内核已经安装完成了,
在启动的时候注意选下新的内核版本就可以了.
启动之后 使用
uname -s -r -i
来查看你的新内核吧!
心得 :
刚开始的时候总觉得内核这个东西里我很远,
感觉这个东西都是大神级别去弄的东西,
自己动手尝试下未尝不是一件好事,
多练习,早晚有一天,你可以把Linux调教的很好的.
与君共勉.