給centos 5.6安裝最新版本的內核(kernel-2.6.38.2)

Linux系統需要事先安裝GCC編譯工具、ID連接器和make編譯器,這裏不討論這個了,網上有很多這樣的文章

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.2.tar.bz2
# tar xjvf linux-2.6.38.2.tar.bz2 -C /usr/src/
# cd /usr/src/linux-2.6.38.2

# make menuconfig (這裏如果是在虛擬終端下執行的話,虛擬終端的大小要適當的調整,否則運行以後出現錯誤)

這裏主要注意的地方是CONFIG_SYSFS_DEPRECATED_V2這個選項,一定要啓用的,具體在General setup中,解釋說是enable deprecated sysfs features to support old userspace tools

其他的比如支持windows的NTFS的選項可以自己去選擇,最後選擇完了以後,在退出的時候選擇保存。

#make (這個時間比較長,好幾個小時)

#make modules (編譯模塊)

#make modules_install (安裝模塊)

#cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.38.2

#cp System.map /boot/System.map-2.6.38.2
#mkinitrd /boot/initrd-2.6.38.2.img 2.6.38.2

好像mkinitrd有個BUG,make出來的initrd有重複的行,要去掉

#cp initrd-2.6.38.2.img /tmp/

#cd /tmp

#mkdir newinitrd

#cd newinitrd

#zcat ../initrd-2.6.38.2.img |cpio -id

#vim 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

# find . | cpio -c -o | gzip -9 >../initrd-2.6.38.2.img.new (重新打包)

#cp ../initrd-2.6.38.2.img.new /boot/initrd-2.6.38.2.img

#編輯grub的配置文件

title Linux New Kernel (2.6.38.2)
        root (hd0,0)
        kernel /vmlinuz-2.6.38.2 ro root=/dev/vg_1/lv_root
        initrd /initrd-2.6.38.2.img
這個是我的,你的可能不一樣的

#sync;sync

#reboot

選擇新的內核…… OK,Good Luck.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章