Linux内核升级步骤及问题解决方法

2011年07月06日 Linux基础 评论 6 条 阅读 14,130 views 次

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

1.下载内核

cd /usr/src
wget 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://www.ha97.com/code/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

6 条留言  访客:3 条  博主:3 条

  1. 写的很好,不过第6步可略去。还有博主用的是什么版本?这个在ubuntu上应该有问题,我以前用过,重启第一次无法进入系统。后来找别的资料才解决的。你的博客主题做的真好!

    • 此文章的环境是:centos 5.5升级到内核2.6.38版。
      第6步还是确认一下比较好!
      希望也把ubuntu上的解决方法与我们共享!
      感谢您对我博客的支持,欢迎常来这里交流!!

  2. 羽老师,你好,我按照你的方法,让CentOS release 5.3 内核为2.6.18-128.el5 升级到2.6.38版的,在make install 时,出现如下错误。这是什么故障?
    [root@localhost linux-2.6.38]# make install
    sh /root/linux-2.6.38/arch/x86/boot/install.sh 2.6.38 arch/x86/boot/bzImage \
    System.map “/boot”
    WARNING: No module dm-mem-cache found for kernel 2.6.38, continuing anyway
    WARNING: No module dm-message found for kernel 2.6.38, continuing anyway
    WARNING: No module dm-raid45 found for kernel 2.6.38, continuing anyway

  3. 热点标准源链接失效,我用的http://www.ha97.com/code/config

给我留言

Copyright © 羽飞博客 保留所有权利.   Ality主题 皖ICP备14013844号-1

用户登录