实战Linux内核升级到3.0.4

一、环境

Linux:RedHat 5.4

内核版本2.6.18 (用命令uname –a 查看)

计划新内核版本Linux-3.0.4.tar.bz2(文件保存在 /usr/src中)

操作用户:root

二、内核裁剪计划:

拷贝/boot/config-2.6.18-164.el5 到源代码目录并改名为.config,由于内核选项多达上千条,所以用当前内核版本配置文件为蓝本,在它的基础上配置。内核的具体裁减可参考网络上的其他文章(一定要加入RAM disk support 和initial RAM disk (initrd) support 的支持,要不然等下你的新系统肯定启动不了)

三、编译准备

1、解决红帽的源更新问题,替代方案:使用CentOS的源

cd /usr/src

rpm -qa|grep yum 查看yum包

rpm -qa|grep yum|xargs rpm -e –nodeps 卸载rhel的默认安装的yum包

wget

wget

wget

rpm -ivh yum-* 同时安装新的yum

cd /etc/yum.repos.d/

wget 下载yum的配置源

yum makecache 生成缓存

2、准备相关软件包

yum install rpmdevtools yum-utils ncurses-devel make rpm-build rpm-devel

yum install ncurses ncurses-devel

3、安装gcc编译包

yum -y install gcc

四、源码编译安装

1、解压源码

cd /usr/src

tar xvf linux-3.0.4.tar.bz2

2、清除环境变量,即清除配置文件,如果是第一次编译,,可省略该步骤

make mrproper

cd linux-3.0.4

3、定制内核配置:(以下几种方法任选一种)

make menuconfig | make config | make menuconfig | make xconfig | make gconfig

进入后load旧配置文件,然后再根据自己的需要修改,完后则保存

4、编译内核

make

5、安装内核模块

make modules_install

6、安装内核(自动方式)

make install

五、收尾工作:

1、清除多余的文件(可略)

make clean

2、重启系统

reboot 或 shutdown -r now

3、出现启动画面时,按 e 方出现启动菜单

其他一:手动安装内核方式

make bzImage

cp bzImage /boot/vmlinuz-3.0.4

cp System.map /boot/System.map-3.0.4

mkinitrd /boot/initrd_2.6.30.img 2.6.30

update-grub

其他二:重启报错 insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits 解决方法:

1、解压initrd文件

mkdir /tmp/mylinux

cp /boot/initrd-3.0.4.img /tmp/mylinux/initrd-3.0.4.img.gz

cd /tmp/mylinux

gunzip initrd-3.0.4.img.gz

cpio -id < initrd-3.0.4.img

2、下边就是编辑init,删掉其中重复的四行中的两行

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

3、重新打包initrd

find . | cpio -H newc -o –quiet | gzip -9 > /boot/initrd-3.0.4.img

ps:其实将init文件的第二行setquiet去掉,就知道initrd文件到底在做什么了

对的,坚持;错的,放弃!

实战Linux内核升级到3.0.4

相关文章:

你感兴趣的文章:

标签云: