一、下载内核文件并解压至相应目录
#wgethttp://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.4.tar.bz2# tar jxvf linux-2.6.39.4.tar.bz2# mv linux-2.6.39.4 /usr/src
二、简要的配置内核
#cd/usr/src/linux-2.6.39.4#makemrproper//第一次编译无需运行此命令,如果之前有编译过,则需要#cp/boot/config-`uname-r`.config//copy一份当前系统的内核配置文件作参考#makemenuconfig
下面两个需要选中(两个都选中),确保.config文件中有该项
CONFIG_SYSFS_DEPRECATED_V2=y
否则编译完成重启系统时会有如下错误输出:
mount:couldnotfindfilesystem'/dev/root'Settingupotherfilesystems.Settingupnewrootfssetuproot:moving/devfailed:Nosuchfileordirectorynofstab.sys,mountinginternaldefaultssetuproot:errormounting/proc:Nosuchfileordirectorysetuproot:errormounting/sys:NosuchfileordirectorySwitchingtonewrootandrunninginit.unmountingold/devunmountingold/procunmountingold/sysswitchroot:mountfailed:NosuchfileordirectoryKernelpanic-notsyncing:Attemptedtokillinit!
加上ext4的支持
然后保存即可
三、安装编译内核
#makeall#makemodules_install#makeinstall
完了,修改grub启动文件,以新内核启动系统便可。
PS:如果这样就以新内核启动,系统重启时会报一个错误
insmod:errorinserting /lib/dm-region-hash.ko : 1Fileexits
这ms是2.6内核的Bug,需要修改内核,并重新生成新内核文件
解压修改内核步骤
#cp/boot/initrd-2.6.39.4.img/tmp/#cd/tmp/#mkdirnewinitrd#cdnewinitrd/#zcat../initrd-2.6.39.4.img|cpio-i#rm-f/tmp/initrd-2.6.39.4.img#vi init找到这4行一样的,去掉相同的2行echo Loadingdm-region-hash.komodule insmod/lib/dm-region-hash.koecho Loadingdm-region-hash.komodule insmod/lib/dm-region-hash.ko
重新打包内核
#find.|cpio-c-o ../initrd#cd..;gzip-9 initrd initrd-2.6.39.4.img#cpinitrd-2.6.39.4.img/boot/
如果心胸不似海,又怎能有海一样的事业。