虚拟机下Centos7编译Linux内核

一、 环境版本:

准备好VMware Workstation Pro 14和CentOS-7,首先在虚拟机中安装Centos7,配置好静态网络,通过ping测试,保证网络,后面要更新操作。我安装的是桌面版,一开始是选择的最小安装,后面使用的时候有问题,建议安装桌面版本,在输入命令行的时候可以粘贴复制比较方便。记得在安装的时候,选择手动分区,将/boot分区大小保证在2G以上,不然后面编译内核的时候可能有问题。这是在虚拟机上做的实验,可以把cpu设置成4核的,内存设置成2G,这样可以快速的编译。

具体安装可参考这篇博客

二、实验过程:

  1. 配置好虚拟机,查看网络设置
    虚拟网络设置
    网络配置
  2. 搭建编译环境
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  3. 解压内核
    先到官网 www.kernel.org上获取内核源代码包,本次用于编译的linux内核版本为5.5.9 。接下来进行文件挂载,把内核文件放在上面提到的宿主机自己的windows和虚拟机之间的共享文件夹,我的宿主机共享文件夹是 share,挂载到了 CentOS 的 /mnt/hgfs/ 目录下。CentOS7的内核源码都了/usr/src/kernels/下,所以我也将下载的源码解压到该路径下。
    查看宿主共享的文件
    具体挂载命令
    切换到 root 权限,将内核文件解压到指定目录 /usr/src/kernels 目录下,是 CentOS 内核所在的目录,解压到/usr/src/kernels目录下后,有名为Linux-5.5.9的文件夹。
    sudo mv linux-5.5.9.tar.xz /usr/src/kernels入移动到指定目录
    再解压sudo tar -xvf linux-5.5.9.tar.xz
    在这里插入图片描述
  4. 配置编译参数
    内核的编译参数非常多,配置的方式也有很多种,为了保持对当前系统的兼容,先把已有内核的编译配置copy过来,在已有内核编译参数的基础上进行配置。
    查看当前系统内核配置
    进入源码根目录:
    在这里插入图片描述
    已有内核的编译配置copy过来,已有内核基础上进行配置,.config中有的就不再配置了,只列出这里面没有的让用户选择。配置完成,在源码根目录下会生成一个.config文件,这就是这次编译的参数配置,之前copy过来的.config文件变成了.config.old。
    在这里插入图片描述
    在这里插入图片描述
    或者使用make menuconfig配置编译环境,执行 make menuconfig,开始选择配置项
    在这里插入图片描述
    在这里插入图片描述
    执行上一步 make menuconfig 之后,直接保存退出就可以了,它会使用 CentOS 内部的配置文件作为这次编译的配置文件。
    5.编译
    配置项选完,config 配置文件生成之后,就可以开始编译了,编译需要 elfutils-libelf-devel 的支持,先执行下面的命令安装一下:
    在这里插入图片描述
    执行编译:
    在这里插入图片描述
    其中,“make all”是编译所有选择的模块,“-jn”是可选参数,表示允许n个任务同时进行,这样比较快,这个过程通常比较慢长,跟选择编译的项目、硬件性能有关,最终耗时1小时40分钟。(15.12-16.54)
    在这里插入图片描述
  5. 安装内核
    编译只是把源码变成可执行文件,但目前为止,这些可执行文件并没有被放置到相应的目录下,新内核也没有注册给引导程序。上面配置项有的编译进核心,有的编译成模块,所以安装也分为两个部分,模块安装和核心安装。
    执行make modules_install 开始安装模块:
    在这里插入图片描述
    执行执行 make install 开始安装核心:
    在这里插入图片描述
    这个命令是将该内核注册给引导程序,当开机启动的时候,引导程序会调用注册给它的内核来启动系统,如果有多个内核,用户可以选择从哪个内核启动。 执行完成之后,就可以在 /boot/ 目录下看到新编译的内核了。

在这里插入图片描述
7. 更新引导
使用 grub2-mkconfig 来更新引导文件,下面的命令会根据 /boot/ 目录下的内核文件自动更新 grub 文件
在这里插入图片描述
执行完后,下次启动系统就可选择我们编译的内核了。如果想修改默认的启动内核,可以通过修改 /etc/default/grub 文件来实现。重启系统,如果看到两个内核,说明已经成功了,你可以自由的选择哪个内核。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值