20130515
编译的步骤如下:
1.从www.kernel.org 网站上下载linux内核源代码
2.解压到/usr/src/kernel tar -Jxv -f linux.xxxx -C /usr/src/
3.进入解压后的文件夹
4. make mrproper 清除原有的配置文件和中间文件
5. make menuconfig 定制相关的内核功能和模块并save 为config文件,方便下次载入配置
6. make bzImage(编译内核,I为大写的i)
6. make bzImage(编译内核,I为大写的i)
make modules 编译模块
make modules_install 安装模块
make clean
6.cp /usr/src/kernel/arch/x86/boot/bzImage /boot/vmlinuz-2.6.34.14 将内核镜像拷到/boot目录下
cp usr/src/kernel/.config /boot/config-2.6.34.14 将配置文件拷到/boot目录下备份
7. mkinitrd -v /boot/initrd-2.6.34.14.img 2.6.34.14 创建initrd,开机启动的时候要用到
8.vim /boot/grub/menu.lst 修改开机菜单
title CentOS (2.6.34.14)
root (hd0,0)
kernel /vmlinuz-2.6.34.14
initrd /initrd-2.6.34.14.img
9.reboot 完毕
问题:内核和源代码编译完占用磁盘空间5031M,其中driver占用2461M,结果导致空间不足,编译失败,用U盘启动进入WINPE后重新分配分区大小后,重新编译。以后编译的时候要保证磁盘空间足够!
统计:make bzImage 耗时7分钟,make modules 耗时30分钟
知识链接:
内核的删除
有时我们基于各种原因可能删除一些老的内核,基本步骤如下:
1. 查看当前系统的内核版本,千万不要删除错了
#uname -r 或者 uname -a
2. 对于通过rpm方式安装的内核,删除就很简单了。直接用rpm -e 相应的内核版本就能删除掉了。
对于手工编译安装的内核,删除起来稍微就要麻烦些了。
(1)、修改 /etc/grub/grub.conf 或 /etc/grub/menu.lst ,删除那些不想要的内核选项。
(2)、删除 /lib/modules/相对应的内核版本的目录
(3)、删除 /boot/相对应的内核版本的文件
有时我们基于各种原因可能删除一些老的内核,基本步骤如下:
1. 查看当前系统的内核版本,千万不要删除错了
#uname -r 或者 uname -a
2. 对于通过rpm方式安装的内核,删除就很简单了。直接用rpm -e 相应的内核版本就能删除掉了。
对于手工编译安装的内核,删除起来稍微就要麻烦些了。
(1)、修改 /etc/grub/grub.conf 或 /etc/grub/menu.lst ,删除那些不想要的内核选项。
(2)、删除 /lib/modules/相对应的内核版本的目录
(3)、删除 /boot/相对应的内核版本的文件
欢迎补充和指点。