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>编译并安装