|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!一次linux体系内核晋级纪录,附带一些和IPVS内核模块、linux启动按次等有关的常识,便利往后参考
晋级前OS的信息
#lsb_release-a
LSBVersion::core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
DistributorID:CentOS
Description:CentOSrelease5.5(Final)
Release:5.5
Codename:Final
#uname-r
2.6.18-194.el5
#
晋级步骤
最新kernel下载地点,本例间接wget到/usr/src下
http://www.ckuyun.com/
一样平常的安装步骤,大概看下目次下的“readme”有安装***
cd/usr/src
wgethttp://www.ckuyun.com/pub/linux/kernel/v2.6/linux-2.6.37.tar.bz2
tar-jxvflinux-2.6.37.tar.bz2
ln-s/usr/src/linux-2.6.37/usr/src/linux
cdlinux
makeclean
cp/boot/config-2.6.18-194.32.1.el5.config
makemenuconfig
makebzImage
makemodules
makemodules_install
makeinstall
#
指令了解
makemenuconfig内审定制(会修正.config文件)
makebzImage天生内核镜像文件于/usr/src/linux/arch/***/boot/bzImage
makemodules编译模块
makemodules_install安装模块,/lib/modules/x目次/附加模块
makeinstall安装新内核到/boot/
mkinitrd/boot/initrd-2.6.23.14.img2.6.23.14mkinitrd可创建映像文件,以供Linux开机时载进ramdisk
假如如上那样步骤,编译重启后我碰到了2个成绩
成绩一
MOUNT:countnotfindfilesystem‘/dev/root’
办理***以下,在makemenuconfig的时分
成绩二
insmod:errorinserting‘/lib/dm-region-hash.ko:-1fileexists’
办理***,***来自收集
1、解压initrd文件
#cp/boot/initrd-2.6.37.img/tmp/
#cd/tmp/
#mkdirnewinitrd
#cdnewinitrd/
#zcat../initrd-2.6.37.img|cpio-i
2、编纂init,删失落个中反复的四行中的两行
echo"Loadingdm-region-hash.komodule"
insmod/lib/dm-region-hash.ko
echo"Loadingdm-region-hash.komodule"
insmod/lib/dm-region-hash.ko
3、从头打包initrd
#find.|cpio-c-o>../initrd
#cd..
#gzip-9<initrd>initrd.img
OK,initrd.img就是从头打包的initrd了,然后把initrd.img拷贝到/boot,变动grub.conf里边的initrd-2.6.37.img为initrd.img就能够了。
附带,IPVS模块的开机加载***(来自收集)
1、先来复习一下鸟哥的http://linux.vbird.org/“开构造机流程与Loader”:
全部开机流程是
(1)载进BIOS的硬件信息,并获得第一个开机安装的代号
(2)读取第一个开机安装的MBR的bootLoader(grub)的开机信息
(3)载进OSKernel信息,解压Kernel,实验驱动硬件
(4)Kernel实行init步伐并取得run-lebel信息(如3或5)
(5)init实行/etc/rc.d/rc.sysinit
(6)启动内核外挂模块(/etc/modprobe.conf)
(7)init实行run-level的各类Scripts,启动办事
(8)init实行/etc/rc.d/rc.local
(9)实行/bin/login,守候用户Login
(10)Login落后进Shell
2、仿效rc.sysinit中其他模块的加载***,扩大该剧本文件,在最初增添上去一段:- #loadLVSIPVSmodulesif[-d/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs];thenformodulein/lib/modules/2.6.18-194.el5/kernel/net/ipv4/ipvs/*;domodule=${module##*/}module=${module%.ko}modprobe$module>/dev/null2>&1donefi
复制代码 重启一下,检察
#lsmod|grepip_vs
ip_vs_wrr359050
ip_vs_wlc348811
ip_vs_sh356490
ip_vs_sed348810
ip_vs_rr350090
ip_vs_nq348810
ip_vs_lc348810
ip_vs_lblcr401360
ip_vs_lblc392410
ip_vs_ftp391090
ip_vs_dh356490
ip_vs12211323ip_vs_wrr,ip_vs_wlc,ip_vs_sh,ip_vs_sed,ip_vs_rr,ip_vs_nq,ip_vs_lc,ip_vs_lblcr,ip_vs_lblc,ip_vs_ftp,ip_vs_dh
if语句反省ipvs模块的目次是不是存在
for轮回遍历该目次上面的一切文件
module=${module##*/}:个中##暗示夙昔面删除字符,*/暗示删除到最初一个/,假如一个#就暗示只删除到第一个/。假如变量前面接##,暗示在##前面的字符串取最长的(一向到最初面),假如接#,暗示取最小的一段。
module=${module%.ko}:暗示从前面删除.ko。假如变量前面接%%,暗示在%%前面的字符串取最长的(一向到最后面),假如接%,暗示取最小的一段。
如许多module的两次修正就失掉了模块名,就是文件名不领路径和.ko后缀。
modprobe$module>/dev/null2>&1:加载模块,输入都指向空设备
本文出自“复杂、简便”博客,请务必保存此出处http://dadaru.blog.51cto.com/218979/499629
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|