运维项目实训—内核编译

1.内核编译

实验环境:
<1>物理机系统根分区至少10G以上内存空间
这里写图片描述
<2>虚拟机至少2048M以上memory(内存)
这里写图片描述
<3>虚拟机server5设定:
1>版本6.5
2>ip=172.25.51.5
3>yum源:

[root@server5 ~]# vim /etc/yum.repos.d/rhel-source.repo 
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.9.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.9.250/rhel6.5/LoadBalancer
gpgcheck=0

实验步骤:
<1>安装ipvsadm服务

[root@server5 ~]# yum install ipvsadm -y

这里写图片描述
<2>下载并安装LVS-FULLNAT和内核源码包

lftp 172.25.9.250:/pub> get Lvs-fullnat-synproxy.tar.gz kernel-2.6.32-220.23.1.el6.src.rpm
[root@server5 ~]# rpm -ivh kernel-2.6.32-220.23.1.el6.src.rpm 
[root@server5 ~]# yum install rpm-build -y
[root@server5 ~]# cd rpmbuild/
[root@server5 rpmbuild]# ls
SOURCES  SPECS
[root@server5 rpmbuild]# cd SPECS/
[root@server5 SPECS]# rpmbuild -bp kernel.spec   ##根据依赖性提示,安装包
[root@server5 SPECS]# yum install -y gcc redhat-rpm-config patchutils xmlto asciidoc elfutils-libelf-devel zlib-devel binutils-devel newt-devel python-devel hmaccalc perl-ExtUtils-Embed

示图:安装提示
这里写图片描述
<3>下载并安装软件包(3个)

lftp 172.25.9.250:/pub> get asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm slang-devel-2.2.1-1.el6.x86_64.rpm  
[root@server5 ~]# yum install asciidoc-8.4.5-4.1.el6.noarch.rpm newt-devel-0.52.11-3.el6.x86_64.rpm slang-devel-2.2.1-1.el6.x86_64.rpm -y

<4>编译内核并生成rpm包、src包

[root@server5 ~]# cd rpmbuild/
[root@server5 rpmbuild]# ls
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
[root@server5 rpmbuild]# cd SPECS/
[root@server5 SPECS]# rpmbuild -bp kernel.spec 

此时另开启一台server5,执行如下命令:

[root@server5 ~]# yum provides */rngd
[root@server5 ~]# yum install rng-tools -y
[root@server5 ~]# rngd -r /dev/urandom

这里写图片描述
再次返回原server5:

[root@server5 ~]# tar zxf Lvs-fullnat-synproxy.tar.gz 
[root@server5 ~]# cd lvs-fullnat-synproxy/
[root@server5 lvs-fullnat-synproxy]# ls
lvs-2.6.32-220.23.1.el6.patch  README
lvs-tools.tar.gz               toa-2.6.32-220.23.1.el6.patch
[root@server5 lvs-fullnat-synproxy]# cp lvs-2.6.32-220.23.1.el6.patch ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/    ##复制内核源码,并修改
[root@server5 lvs-fullnat-synproxy]# cd ~/rpmbuild/BUILD/kernel-2.6.32-220.23.1.el6/linux-2.6.32-220.23.1.el6.x86_64/
[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# patch -p1 < lvs-2.6.32-220.23.1.el6.patch   ##打补丁

<5>查看原内核版本并修改配置文件

[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# uname -r
2.6.32-431.el6.x86_64
[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# vim Makefile   

EXTRAVERSION = -220.23.1.el6.x86_64

<6>编译、导入模块并安装

[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# make  ##编译
[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# make modules_install   ##导入模块
[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# make install          

示图:导入模块
这里写图片描述
<7>开机引导文件

[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# vim /boot/grub/grub.conf 
default = 0             ##默认启动

这里写图片描述
<8>重新启动
这里写图片描述
<9>查看新内核版本,则编译成功
这里写图片描述


2.FULLNET

实验环境:
内核编译完成的虚拟机server5
实验步骤:
<1>编译完成的内核
这里写图片描述

这里写图片描述
<2>编译并安装
这里写图片描述
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/hannah_zh/article/details/80805117