CentOS 内核裁剪
1.下载系统对应内核版本
https://www.kernel.org/pub/linux/kernel/
?
2.将本机内核配置文件拷贝至新下载的内核包中
# tar -zxvf linux-2.6.32.tar.gz
# cd linux-2.6.32
# cp /boot/config-2.6.32-279.el6.x86_64 .config
?
3.使用make menuconfig进行内核裁剪(此处实例为去掉USB模组)
# make menuconfig?
选择Device Drivers “回车”
?
选择USB support 按"空格"取消支持
?
按两下"Esc"退出一层配置(退出两次)
选择“Yes”保存配置
?
4.编译安装裁剪后的内核文件
# make
# make bzImage
# make modules
# make modules_install
# make install
若最后一步make install后出错ERROR: modinfo: could not find module ***?
查看/boot下关键文件的日期
# ls -l /boot/均为编译安装前后不久的时间即可忽略
?
5.更改启动内核
# vi /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:? You have a /boot partition.? This means that
#????????? all kernel and initrd paths are relative to /boot/, eg.
#????????? root (hd0,0)
#????????? kernel /vmlinuz-version ro root=/dev/mapper/vg_kernerl-lv_root
#????????? initrd /initrd-[generic-]version.img
#boot=/dev/xvda
default=0 #此处更改为0即为默认使用title01(2.6.32)内核启动程序,更改为1即为默认使用title02(2.6.32-279.el6.x86_64)内核启动程序.
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32)
??????? root (hd0,0)
??????? kernel /vmlinuz-2.6.32 ro root=/dev/mapper/vg_kernerl-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_kernerl/lv_swap? KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_kernerl/lv_root rd_NO_DM rhgb quiet
??????? initrd /initramfs-2.6.32.img
title CentOS (2.6.32-279.el6.x86_64)
??????? root (hd0,0)
??????? kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_kernerl-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M rd_LVM_LV=vg_kernerl/lv_swap? KEYBOARDTYPE=pc KEYTABLE=us rd_LVM_LV=vg_kernerl/lv_root rd_NO_DM rhgb quiet
??????? initrd /initramfs-2.6.32-279.el6.x86_64.img
?
6.验证
重启前查看内核版本
# uname -a?
重启后查看内核版本
# uname -a
?