Centos7编译4.7.2内核
由于想要编译kvm-kmod,编译的时候提示内核版本太低,所以就不得不升级下linux内核,目前最新版内核是4.7.2,编译内核并不是一件很难的事,但是这么久没编译过,还是有必要记录下这一过程。
首先下载linux内核最新版4.7.2 https://www.kernel.org/,这个可以放到任意目录,并没有特殊的要求
然后需要安装几个工具,这个先安装也可以,在编译中安装也可以。
具体步骤如下:
1、解压内核源码包,进入目录
2、make menuconfigure
3、make 此过程会比较漫长
4、make modules
(现在make 步骤基本涵盖了make modules这一步)
5、make modules_install
这个时候在源代码目录中会生成几个比较重要的文件:
1、~/arch/x86_64/boot/bzImage
2、~/System.map
我们需要把这两个文件复制到指定的目录中:
cp arch/x86_64/boot/bzImage /boot/vmlinuz-4.7.2
cp System.map /boot/System.map-4.7.2
然后进入/boot目录
给System.map文件建立一个软连接: ln -s System.map-4.7.2 System.map
最后还需要生成img文件:
mkinitrd /boot/initrd-4.7.2.img 4.7.2
(现在make install可直接完成上述动作)
至此需要的文件我们已经设置完毕,剩下的就是修复引导了,这里不建议手动去修改grub文件,我们可以利用工具
grub2-mkconfig -o /boot/grub2/grub.cfg
这样根据boot目录下的文件自动更新grub文件。假如要想修改默认的启动内核可以修改/etc/default/grub文件,这点和ubuntu是一样的:
也可以采用更加便捷的方式,直接利用命令:
grub2-set-default "",引号内放置grub.cfg文件中,开始引号内的部分,例如:
menuentry 'CentOS Linux (3.10.1) 7 (Core)' --class centos --class ....................那么设置默认启动的格式为:
grub2-set-default "CentOS Linux (3.10.1) 7 (Core)";这样之后就默认从设置的启动项进入系统了。
其实可以直接修改grub.cfg文件,但是那样并不是从根本上修改,每次更新都会根据/etc/default/grub文件去设置,所以这里直接从源头修改,在GRUB_DEFAULT后的数字就代表选定的是哪个启动项,从0开始,顺序就是grub.cfg文件里menuentry的顺序!!
执行完毕后在此运行grub2-mkconfig命令更新即可!!