为掌握在x86的平台下,实现从配置文件到安装内核的完整过程,需经如下步骤:
(1) 解压内核。现以linux2.6.29为例,将linux2.6.29压缩文件拷贝到虚拟机linux的目录下,解压在当前的目录,解压命令用: #tar jxvf linux.2.6.29.tar.bz2,由于所解压文件是以bz2结尾的,故使用jxvf。有些时候在linux下需用zxvf,具体文件,具体分析.
(2) 清除中间文件,配置文件。由于所解压的内核是完整的。内核附带一些中间文件,配置等文件,我们得清除这些才可以重新配置符合我们要求的内核
# make distclean
(3) 选择参考配置文件。将需要的参考配置文件拷贝到所解压的目录下,所需命令:#cp/boot/config-2.6.18(要求的配置文件)
.config 主要是配置目系统所需要的文件,该文件包含一系列信息,例如,cpu的型号,网络协议,网卡型号等等
(4) 配置内核。在当前目录下输入#make menuconfig,将出现一个配置界面,通过说明,然后选择要选择的模块
(5) 编译内核。内核的配置文件和内核配置已选择好,现需要将新的状态编译,以使编译后的文件是满足要求的内核,命令:#make bzImage,编译之后,如果成功,则会在arch/x86/boot/下生成一个bzImage的内核文件,反之,有错误提示
(6) 编译内核模块。#make modules
(7) 安装内核模块。#make modules_install注:在编译安装成功后,编译好的内核模块会从内核代码目录下拷贝到/lib/modules下。如果之前有设置,则拷贝在/lib/modules的相关目录下
(8) 制作init ramdisk
Initramdik的作用:使得内核可以对ramdisk进行格式化,也可以将系统的内容加载到ramdisk下,将ramdisk作为根文件系统
命令:mkinitrd initrd-2.6.29 2.6.29,完成后将在当前目录下会生成initrd-2.6.29
(9) 安装内核,将新制成的内核和initrd-2.6.29根文件系统拷贝到/boot/下
命令: cp arch/x86/boot/bzImage/boot/vmlinuz-2.6.29 // vmlinux-2.6.29为内核
然后将根文件系统也一起拷贝过去
命令:cp initrd-2.6.29 /boot/ // initrd-2.6.29为ramdisk
为了让grup在启动的时候可以选择新配置的内核,在linux下需要修改内核启动配置文件
#vi /etc/grub.config 注意:有些系统是grub.conf
在文件的结尾加上如下几句
title my linux(2.6.29)
root (hd0, 0)
kernel /vmlinuz-2.6.29ro root=LABEL=/ rhgb quit
initrd /initrd-2.6.29
(10) 测试新安装的内核能否启动,重新启动虚拟机, |