运维项目实训 - 内核编译

内核编译

一、物理机系统根分区至少10G以上的内存空间

[root@foundation52 ~]# df -H
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       120G   52G   68G  44% /   ##必须有至少10G以上的内存空间
devtmpfs        4.0G     0  4.0G   0% /dev
tmpfs           4.0G  234k  4.0G   1% /dev/shm
tmpfs           4.0G  9.3M  4.0G   1% /run
tmpfs           4.0G     0  4.0G   0% /sys/fs/cgroup
/dev/sda1       518M  154M  364M  30% /boot
/dev/loop0      4.1G  4.1G     0 100% /var/www/html/rhel7.2
/dev/loop1      3.8G  3.8G     0 100% /var/www/html/rhel7.0
/dev/loop2      3.9G  3.9G     0 100% /var/www/html/rhel6.5
tmpfs           784M   37k  784M   1% /run/user/1000
tmpfs           784M     0  784M   0% /run/user/0
/dev/sdc1       1.1G   23M  985M   3% /run/media/kiosk/18D8-45E8

试验环境:server5
版本:6.5
IP:172.25.52.5


二、虚拟机必须有2048M以上的内存(memory)

这里写图片描述

三、虚拟机server5 yum设定:

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

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.52.250/rhel6.5/HighAvailability
gpgcheck=0

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

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.52.250/rhel6.5/ResilientStorage
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.52.250/rhel6.5/ScalableFileSystem
gpgcheck=0

四、安装ipvsadm服务

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

五、下载并安装 kernel-2.6.32-220.23.1.el6.src.rpm 内核源码包

[root@server5 ~]# ls
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 -y rpm-build
[root@server5 ~]# cd rpmbuild/
[root@server5 ~]# cd SPECS/
[root@server5 ~]# 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  ##需要追加安装的包
[root@server5 ~]# ls
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

六、编译内核并生成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上缺少命令rngd所以打开另外一个下载,执行如此命令

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

再次返回原server就安装成功了

[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   ##打补丁

七、查看原内核版本并修改配置文件

[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   
 1 VERSION = 2
   2 PATCHLEVEL = 6
   3 SUBLEVEL = 32
   4 EXTRAVERSION = -220.23.1.el6.x86_64  ##这一行添加修改内核版本   
   5 NAME = Man-Eating Seals of Antiquity
   6 RHEL_MAJOR = 6
   7 RHEL_MINOR = 2
   8 RHEL_RELEASE = 219

八、编译、导入模块并安装

[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    

九、修改开机引导文件

[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# vim /boot/grub/grub.conf 
  9 #boot=/dev/vda
 10 default=0
 11 timeout=5

十、重新启动

[root@server5 linux-2.6.32-220.23.1.el6.x86_64]# reboot

十一、重新启动后查看内核版本,则编译成功
查看编译好后内核版本:

[root@server5 ~]# uname -r
2.6.32-220.23.1.el6.x86_64

编译之前红帽公司内核版本:

[root@server2 ~]# uname -r
2.6.32-431.el6.x86_64

原redhat内核版本不支持某些服务,有些服务需要重新编译内核比如 fullnat


猜你喜欢

转载自blog.csdn.net/lx543733371/article/details/80845970