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

CentOS Linux內核升級全過程

首先說明,下面帶#號的行都是要輸入的命令行,且本文提到的所有命令行都在終端裡輸入。接下來,讓我們一起開始精彩的Linux內核升級之旅吧!

一、准備工作

啟動Linux系統,並用根用戶登錄,進入終端模式下。

1、查看Linux內核版本

# uname -a

如果屏幕顯示的是2.6.x,說明你的已經是2.6的內核,也用不著看下文了,該干什麼干什麼去吧!~~~如果顯示的是2.4.x,那恭喜你,闖關通過,趕快進行下一步。

2、下載2.6內核源碼

下載地址:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2

3、下載內核升級工具

(1)下載module-init-tools-3.2.tar.bz2

http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2

(2)下載mkinitrd-4.1.18-2.i386.rpm

http://ayo.freshrpms.net/Fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm

(3)下載lvm2-2.00.25-1.01.i386.rpm

http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm

(4)下載device-mapper-1.00.19-2.i386.rpm

http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm

(2.6.18內核和這4個升級工具我都有備份,如果以上下載地址失效,請到http://www.fly2.cn/guestbook 留下你的郵箱,我給你發過去)

二、配置工作

好啦,2.6內核和4個升級工具都下載完了(少一個也不行,如果沒有下載齊全,請不要嘗試下面的步驟,升級是不會成功的),下面回到Linux系統中開始配置工作吧。

4、將下載好的內核和4個升級工具都拷貝到/usr/src文件夾下。怎麼拷貝就不用我教了吧~~~~不會拷貝的去撞牆吧!~~呵呵!

5、拷貝完畢,開始解壓新內核,具體操作請依次執行以下命令:

# cd /usr/src (進入到/usr/src目錄下,如果已經在/usr/src目錄下,可不執行該命令)

# rm –rf linux (刪除linux文件夾。值得一提的是,如果內核先前從未編譯過,則沒有這個文件夾,此命令行可略過)

# tar jvxf linux-2.6.18.tar.bz2 (解壓新內核)

# ln -s linux-2.6.18 linux (重新生成linux文件夾)

6、安裝module-init-tools工具包

在/usr/src目錄下,依次執行下列命令:

# tar jvxf module-init-tools-3.2.tar.bz2 (解壓module-init-tools)

# cd module-init-tools-3.2 (由/usr/src目錄進入module-init-tools目錄下)

#./configure --prefix=/

# make moveold

# make all install

#./generate-modprobe.conf /etc/modprobe.conf

7、安裝另外三個升級工具

回到/usr/src目錄下,依次執行下列3個命令來安裝另外三個升級工具:

# rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意,這裡一定要加入--nodeps參數,下同)

# rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm

# rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm

如果不更新以上幾個升級包,在後面編譯內核時會提示以下錯誤:

mkinitrd failed

make[1]: *** [install] Error 1

make: *** [install] Error 2

8、配置內核選項。有點繁瑣,~~希望一次成功哦~~。

# cd linux-2.6.18 (進入到/usr/src/linux-2.6.18目錄下)

# make mrproper (該命令可確保源代碼目錄下沒有不正確的.o文件)

# make menuconfig (配置內核各選項)

此時會出現一個圖形界面,列出了所有的內核配置選項,有的選項下還有子選項,你可以用方向鍵來選擇,用Y鍵來確定。經過我多次試驗,大多數選項默認就行,以下幾個選項必須選擇(請認真核對下面每一個選項,否則編譯很有可能前功盡棄):

(1)Loadable Module support選項中,一定要選上“Module unloading”和“Automatic kernel module loading”這兩項;

  (2)Device Drivers--->Block Devices中一定要選上Loopback device support;

Device Drivers--->Multi-device support(RAID and LVM)”處要選上“device mapper support”;

Device Drivers--->Graphics support”, 一定要選上” Support for frame buffer devices”;

Device Drivers --->;USB support --->選上”USB Mass Storage support”(如果是在實環境中,想要更多USB支持,就全選吧。我的是在虛擬機中,用不著了)

Device Drivers --->; Network device support --->;Ethernet (10 or 100Mbit) --->; <*>; AMD PCnet32 PCI support

(3) File system--->(以下9個選項是關於ext2和ext3文件系統配置,全部選上)

Second extended fs support

Ext2 extended attributes

Ext2 POSIX Access Control Lists

Ext2 Security Labels

Ext3 journalling file system support

Ext3 extended attributes

Ext3 POSIX Access Control Lists

Ext3 Security Labels

JBB (ext3) debugging support

File system--->DOS/FAT/NT Filesystems --->選上“ NTFS file system support”;

File Systems --> Miscellaneous filesystems ---><*> Compressed ROM file system support (cramfs)

注意:

ext2和ext3文件系統配置很重要,也是必需的,如果對Ext3、Ext2文件的支持直接編譯進內核,在你reboot時機器就會當掉,出現如下錯誤信息:

kernel panic : no init found ,try passing init = option to kernel.....

或者是:

VFS:Cannot open root device "hdxy" or unknow-block(0,0)

Please append a correct "root=" boot option

kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)

或者是:

mount: error 19 mounting ext3

pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2

umount /initrd/proc fail: 2

Freeing unused kernel memory: 244k freed

Kernel panic – not syncing: No init found. Try passing init = option to kernel

(我的機器就是在重啟之後出現第三種錯誤,進不去系統,郁悶死,只好重裝了~~~)

(4)如果你在vmware下重新編譯內核,硬盤用的是scsi的,以下選項必選:

Device Drivers --->SCSI device support ---><*>SCSI disk support

Device Drivers--->SCSI device support--->SCSI low-level drivers--->;<*>; BusLogic SCSI support

Copyright © Linux教程網 All Rights Reserved