歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux內核

實戰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 http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-3.2.22-33.el5.centos.noarch.rpm

wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-fastestmirror-1.1.16-14.el5.centos.1.noarch.rpm

wget http://centos.ustc.edu.cn/centos/5/os/i386/CentOS/yum-metadata-parser-1.1.2-3.el5.centos.i386.rpm

rpm  -ivh  yum-*                                                  同時安裝新的yum

cd  /etc/yum.repos.d/

wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo              下載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文件到底在做什麼了

Copyright © Linux教程網 All Rights Reserved