linux内核升级
系统:RedHat9.0
查看Linux内核版本: # uname –a
目前的版本显示的是2.4.20-8
用到的工具:
binutils-2.17.tar.gz
module-init-tools-3.2.tar.bz2
device-mapper.1.02.28.tgz
LVM2.2.02.97.tgz
mkinitrd-4.2.0.3.tar.bz2
下载网址:
www.ChinaUnix.net 1、安装binutils
解压binutils-2.17.tar.gz
cd binutils-2.17
./configure
make
make install
2、安装module-init-tools
解压module-init-tools-3.2.tar.bz2
cd module-init-tools-3.2
# ./configure --prefix=/
./configure
make moveold
make all install
./generate-modprobe.conf /etc/modprobe.conf
3、安装device-mapper
解压:device-mapper.1.02.28.tgz
cd device-mapper.1.02.28
./configure --enable-compat
make
make install
4、安装LVM2
要安装LVM2必须先安装device-mapper
解压LVM2.2.02.97.tgz
cd LVM2.2.02.97
./configure
make
make install
5、安装mkinitrd-4.2.0.3
解压mkinitrd-4.2.0.3.tar.bz2
make
make install
6、编译内核:
解压linux-2.6.18.tar.bz2至usr/src/目录下
# cd /usr/src/linux-2.6.18 (进入到/linux-2.6.18目录下,然后在文档Documentation/Changes中给
出了欲成功地升级到kernel-2.6.x所需的最小系统软件要求)
# make mrproper (该命令可确保源代码目录下没有不正确的.o文件,非必须)
# make menuconfig (文本窗口配置内核各选项)
<内核配置> (这是至关重要的一步)
# make dep (建立编译时所需的从属文件。注意:如果内核从未编译过,此步可跳过)
# make clean (清除内核编译的目标文件)
# make bzImage (注意大小写I。这一步才真正编译内核)
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文
件bzImage。如果用make zImage编译,内核很大的话,系统会提示你使用make bzImage命令
来编译,所以直接用make bzImage来编译。
# make modules (编译可加载模块,选择的外部模块越多时间越长,建议刚开始的时候不要删除默认模块,
先熟悉一下内核后再说)
# make modules_install (安装可加载模块)
安装成功后,系统会在/lib/modules目录下生成一个2.6.18子目录,里面存放着新内核的所有可加载模块。
# make install (安装新内核)
设置默认内核启动:
# vi /boot/grub/grub.conf
......
default=1
timeout=10
......
将default=1修改为default=0,选择默认启动的内核为2.6.18。如果没有修改重启之后默认进入第二项2.4内核。
重启:
重新启动时选择升级的内核版本启动,新内核已经自动拷贝到/boot文件夹下,
新版本的内核安装已经不需要手动操作
启动时发现一些设备初始化失败