首先说明下我的环境:
三台装有RedHat8(2.4.18-14)的主机。初步的任务就是升级内核到2.4.31然后再安装补丁Squashfs。
下载升级需要的源代码linux-2.4.31.tar.gz拷贝到/usr/src下
CODE: |
#cd /usr/src/ #tar -zxvf linux-2.4.31.tar.gz |
CODE: |
#ln -s linux-2.4.31 linux #cd linux |
CODE: |
cp /boot/config-2.4.18-14 ./.config make menuconfig |
首先,处理器选项,选择P4(Y不是M)
建立依赖关系
CODE: |
#make dep #make clean #make bzImage[大概花费了5分钟时间] |
CODE: |
Root device is (22, 2) Boot sector 512 bytes. Setup is 4784 bytes. System is 1010 kB warning: kernel is too big for standalone boot from floppy make[1]: Leaving directory `/usr/src/linux-2.4.31/arch/i386/boot' |
接着编译模块
CODE: |
#make modules |
CODE: |
#make modules_install |
CODE: |
depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/autoload.o depmod: crypto_alg_lookup depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/proc.o depmod: crypto_alg_sem depmod: crypto_alg_list |
下来,更新sytem.map文件和vmlinuz文件
CODE: |
[root@l数据库专家 认证lhost linux]# cp System.map /boot/System.map-2.4.31 [root@l数据库专家 认证lhost linux]# cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.31 |
CODE: |
[root@l数据库专家 认证lhost linux]# cd /boot/ [root@l数据库专家 认证lhost boot]# rm -fr System.map [root@l数据库专家 认证lhost boot]# rm -fr vmlinuz [root@l数据库专家 认证lhost boot]# ln -s System.map-2.4.31 System.map [root@l数据库专家 认证lhost boot]# ln -s vmlinuz-2.4.31 vmlinuz |
CODE: |
[root@l数据库专家 认证lhost boot]# ll |
CODE: |
System.map -> System.map-2.4.31 vmlinuz -> vmlinuz-2.4.31 |
CODE: |
[root@l数据库专家 认证lhost boot]# cd /usr/src/linux [root@l数据库专家 认证lhost linux]# new-kernel-pkg --install --depmod --mkinitrd 2.4.31 |
CODE: |
depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/autoload.o depmod: crypto_alg_lookup depmod: *** Unresolved symbols in /lib/modules/2.4.31/kernel/crypto/proc.o depmod: crypto_alg_sem depmod: crypto_alg_list |
最后去/boot下检查下,并修改一下启动时的分区设置。
CODE: |
[root@l数据库专家 认证lhost linux]# cd /boot/ [root@l数据库专家 认证lhost boot]# vi grub/grub.conf |
root = LABEL=/
为
root = /dev/hdc2
也就是根目录/所在的分区
df –h 查看
CODE: |
df -h Filesystem Size Used Avail Use% Mounted on /dev/hdc2 19G 2.4G 15G 13% / /dev/hdc1 99M 13M 81M 14% /boot /dev/hdc5 49G 33M 46G 1% /data none 247M 0 247M 0% /dev/shm |
对了,如果要默认启动新的内核或者你是远程操作的话,需要将新的内核设置为默认启动项,将
/boot/grub/grub.conf
中的
CODE: |
default=1 |
CODE: |
default=0 |
机器启动正常後,进行查看,看是否符合我们的要求:
CODE: |
#uname -a Linux l数据库专家 认证lhost.l数据库专家 认证ldomain 2.4.31 #1 SMP Tue Jul 10 09:26:01 CST 2007 i686 i686 i386 GNU/Linux |
查看LOOPBACK是否已经被编译进内核,我们知道loopback是一个块设备,所以去/proc下找找看。
CODE: |
[root@l数据库专家 认证lhost root]# cat /proc/devices Character devices: 1 mem 2 pty ................... Block devices: 1 ramdisk 7 loop 9 md 22 ide1 |