linux通过http升级内核,[转]Linux内核升级指南

#uname -r

2.6.35.13

L inux2.6.9.42内核升级

在这里且不说版本的不同与区别,它所支持的功能。相信用过LINUX的人都希望自己所用的系统,内核是最新的了。接下来就来就给大家介绍linux2.6.9-42升级linux2.6.26-42的方法。首先来看下当前系统的版本吧:

49852536_1.jpg

接下来就开始吧,把所需文件 “linux-2.6.26.2.tar.bz2 .” 拷贝进 /usr/src目录下来,先进行bzip2–d linux-2.6.26 tar.bz2解压,然后tar一下。看我操作步骤:

49852536_2.jpg

按下回车键,解压完毕就可以进行配置了。现在看看目录下是不是多了个linux-2.6.26.2的目录,那么就#cd linux-2.6.26.2命令进到它下面了。执行#make mrproper命令,为的是清除掉以前升级留下的一些不正确文件。

49852536_3.jpg

好了,下面要做的就是拷贝/boot/config- 2.6.26.2.EL里的文件到/usr/src/ linux-2.6.26.2/.config下生成.config文件

49852536_4.jpg

确认.config文件存在,那么就来配置内核各个选项吧,键入make menuconfig命令:

49852536_5.jpg

出现内核配置工具拦,如图;

49852536_6.jpg

选择倒数第二项,加载一个已经存在的配置文件,按下select键。弹出保存文件名为.condig选择OK。

49852536_7.jpg

进到主菜单下,看到配置比较多就选择“File sysyems”下。

49852536_8.jpg

来做个NTFS格式的加载吧。点住这项选select键。

49852536_9.jpg

出现下面这个对话框后,点到末尾按下” M ” 键。

49852536_10.jpg

出现前面带有<>的两行,按空格键加*号退出并保存。

49852536_11.jpg

配置结束了,该是进行编译了,进到下图所示目录,make dep来建立编译时所需要的从属文件,但是以前没进行过升级的话可以省略。

49852536_12.jpg

“ make clean ” 来清除下内核编译的目标文件,看到成功,继续输入” make bzImage ” ,注意” I ”大写,这时候真正的编译才算是开始了。(时间比较长,耐心等待吧)

49852536_13.jpg

好了,编译终于算是完成了,功夫不负有心人啊。

49852536_14.jpg

下面就进行编译可加载模块了,键入“make modules”命令执行,时间相对也要长些。

49852536_15.jpg

看到编译完成。

49852536_16.jpg

下面就开始安装可加载模块,输入“make_install”命令。

49852536_17.jpg

过段时间后,完成了。进行下一步吧,从图中看到输入的是“make install”,这是加载新内核的命令。

49852536_18.jpg

在安装过程中,发出个警告,不要去理会它。是scsi盘加载失败,我们用的是虚拟机吗,所以会报错,但这并不影响内核的升级。

49852536_19.jpg

好了,经过编译、安装后终于完成了。但如果认为真正意义上的完成那就错了。重启下系统就会发现,起不来。这是因为刚升级完内核,在启动加载配置文件上还是第一个,这时需要做的就是让系统能找到升级完后的新文件。

那就是“cd /boot/grub ”命令,查看下“menu.last”就是它了。

49852536_20.jpg

V i 编辑器打开,在下图所示红色标记处添加“enforcing=0”然后保存退出,目的是使其强制加载。

49852536_21.jpg

重启下系统,选择“Red Hat Enterprise linux AS (2.6.26.2)”看能否启动得了。

49852536_22.jpg

经过段时间,系统正常启动。来查看下内核版本。

49852536_23.jpg

已经成功升级为2.6.26.2了,实验成功完成了。回过头来总结一下实验也就是配置内核选项和编译两项比较麻烦一点,其它也没什么。

Linux的内核是系统的核心,所以升级内核是Linux系统管理员的一项基本技能,所以我就分享了系统运维实务上的一篇文章,当然我对源文件稍做了一些内容的增加,就是把遇到的问题及解决方案也加上了,希望对各位Linux系统管理员有所帮助!

1.下载内核

cd /usr/src

wget linux/kernel/v2.6/linux-2.6.38.tar.gz">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz

tar zxvf linux-2.6.38.tar.gz

cd linux-2.6.38

2.下载热点内核标准配置文件

wget http://vbets.googlecode.com/files/config

mv config .config

3.编译内核

make menuconfig

选中Load an Alternate Configuration File ,然后选择刚下载的。config

另外,要特别选中:

1)、通过make menuconfig选中以下对应的选项

General setup –>

[*] enable deprecated sysfs features to support old userspace tools

2)、修改。config文件

修改。config文件中CONFIG_SYSFS_DEPRECATED_V2,将原本被注释掉的

CONFIG_SYSFS_DEPRECATED_V2 改成CONFIG_SYSFS_DEPRECATED_V2=y

注: 修改这项是因为旧版的mkinitrd及其nash在内核没有CONFIG_SYSFS_DEPRECATED_V2参数时默认使用旧版sysfs路径格式,从而在新内核下无法正确访问/sys内的硬盘信息节点。

主要是解决"mount:could not find filesystem '/dev/root'"这样的错误

make bzImage

make modules

make modules_install

make install

4.解压修改内核

cp /boot/initrd-2.6.38.img /tmp

cd /tmp/

mkdir newinitrd

cd newinitrd/

zcat /initrd-2.6.38.img |cpio -i

rm -rf /tmp/initrd-2.6.38.img

vi init

找到这2行一样的,去掉1行

echo "Loading dm-region-hash.ko module"

insmod /lib/dm-region-hash.ko

echo "Loading dm-region-hash.ko module"

insmod /lib/dm-region-hash.ko

这主要是解决:"insmod: error inserting '/lib/dm-region-hash.ko': -1 File exists"这样的错误

5.从新打包内核

find .|cpio -c -o > /initrd

cd /

gzip -9 < initrd > initrd-2.6.38img

rm -rf /boot/initrd-2.6.38.img

cp initrd-2.6.38.img /boot

rm -rf /cd /usr/src/linux-2.6.38.tar.gz

rm -rf /cd /usr/src/linux-2.6.38

6.设置从新内核启动

vi /boot/grub/grub.conf

把default=1改为default=0

7.重新启动系统

reboot

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值