一、下載內核
https://www.kernel.org/pub/linux/kernel/
二、開始編譯內核
首先是先進入到解壓後的內核目錄。
2.1
一般來講,我們拿到新內核之後,應該執行清理殘餘配置的步驟。
make mrproper make clean
2.2
編輯Makefile文件,簡單的做些自定義。
ERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 32 EXTRAVERSION = -shanks.1.x86_64 #這樣修改之後,你的內核名稱(uname -r)就會是2.6.32-shanks.1.x86_64
2.3
make menuconfig
2.4
make -jn all #對於一臺測試機而言,n可以等於cpu個數的2倍
2.5
make modules_install
2.6
cd /boot cp /usr/src/linux-2.6.32/arch/x86/boot/bzImage vmlinuz-2.6.32-shanks.1.x86_64 cp /usr/src/linux-2.6.32/.config config-2.6.32-shanks.1.x86_64 #centos6之後,你可以用dracut來代替mkinitrd dracut -f -v -H -k '/lib/modules/2.6.32-shanks.1.x86_64/' initramfs-2.6.32-shanks.1.x86_64.img 2.6.32-shanks.1.x86_64
2.7
vi /boot/grub/grub.conf
#在原有配置的基礎上,複製出4行配置,之後做修改: #只要修改title、kernel、initrd三行。 #示例: title CentOS (2.6.32-shanks.1.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-shanks.1.x86_64 ro root=/dev/mapper/vg_livedvd-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_livedvd/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_livedvd/lv_swap KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet initrd /initramfs-2.6.32-shanks.1.x86_64.img #最後,記得看下default這行配置,如果你新內核的4行配置是所有title中的第一個,那麼default後面的值應該是0
2.6、2.7這兩步可以用make install替代,但需要手動修改kernel的啓動順序
三、重啓