编译内核往往是Linux系统初学者望尘莫及的事情,但是小编通过自身实际操作的经历给大家简单说下,以提高大家学习Linux的动力。当然也是只是带大家简单的了解下,其实内核是很高深莫测的。
编译内核步骤
编译准备,我们要准备一台稍微好点的Linux系统机器(虚拟机也可以), 用yum命令安装编译过程中需要的工具和库文件等等。
操作命令:yum install *curses* gcc bc make -y
通过https://www.kernel.org/下载内核源代码包,可根据自己的情况下载,不需要下载最新的内核包,稍微新的包就可以了,我是以3.19的内核包的。在拷贝或者解压源代码到/usr/src/kernels
操作命令: tar zxvf linux-3.19.tar.gz -C /usr/src/kernels/
编译选择相应的选项make menuconfig,这个选项里面 我们不需要进行太多的配置修改,因为现在的Linux系统默认不支持NTFS系统,我们可以通过编译内核,让系统识别到NTFS系统。
编译make (漫长的等待过程,小编是最喜欢看这种界面刷新的)
模块安装
操作命令:make modules_install
拷贝编译生成的bzImage和System.map文件到 /boot目录下
操作命令:
cp /usr/src/kernels/linux-3.19/arch/x86_64/boot/bzImage /boot/vmlinuz-3.19.0 cp /usr/src/kernels/linux-3.19/System.map /boot/System.map-3.19.0
mkinitrd /boot/initrd.img-3.19.0.img 3.19.0 //可能需要多等一会
修改grub配置文件 在修改/etc/grub.conf的时候,请不要忘记备份/etc/grub.conf了。
示例如下图
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_kernel-lv_root rd_NO_LUKS rd_LVM_LV=vg_kernel/lv_swap rd_LVM_LV=vg_kernel/lv_root rd_NO_MD quiet rhgb crashkernel=auto.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /initramfs-2.6.32-220.el6.x86_64.img
title CentOS (3.19.0)
root (hd0,0)
kernel /vmlinuz-3.19.0 ro root=/dev/mapper/vg_kernel-lv_root rd_NO_LUKS rd_LVM_LV=vg_kernel/lv_swap rd_LVM_LV=vg_kernel/lv_root rd_NO_MD quiet rhgb crashkernel=auto.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
initrd /initrd-3.19.0.img
重启机器 启用新内核。
如有错误之处,敬请谅解。欢迎大家指教。谢谢。
本文暂时没有评论,来添加一个吧(●'◡'●)