仓酷云 发表于 2015-1-14 21:13:37

CentOS教程之Linux体系内核晋级教程

如果您觉得本篇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教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!

变相怪杰 发表于 2015-1-17 07:45:01

虽然大家都比较喜欢漂亮的mm,但是在学linux的过程中,还是要多和“男人”接触一下:P遇到问题的时候,出来看说和上网查之外,就是要多用linux下的man命令找找帮助。

爱飞 发表于 2015-1-25 12:30:35

我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。

蒙在股里 发表于 2015-2-2 22:13:59

请问谁有Linux的学习心得的吗?简单的说说?

admin 发表于 2015-2-8 14:29:29

Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面。

简单生活 发表于 2015-2-25 19:47:53

尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

第二个灵魂 发表于 2015-3-8 04:19:02

一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。

冷月葬花魂 发表于 2015-3-16 00:06:56

发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。

海妖 发表于 2015-3-22 18:58:11

得到到草率的回答或者根本得不到任何Linux答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。
页: [1]
查看完整版本: CentOS教程之Linux体系内核晋级教程