Linux CentOS 内核编译全流程:从安装vmware开始

简介: Linux CentOS 内核编译全流程:从安装vmware开始

写在前面的话

 CentOS8竟然比CentOS7更早被淘汰。在利用CentOS8编译内核的流程中,我们也踩过不少坑。

1.系统iso文件的下载

 首先,在CentOS官网上点击“Download”,在该页面点击“x86_64”,并进入找到CentOS在国内的镜像下载站,选择进入南京大学的镜像下载站。http://mirrors.nju.edu.cn/centos/8.5.2111/isos/x86_64/

 并下载文件大小约为10GB的iso文件,而不是文件大小约为800m的boot文件。

2.VMware虚拟机的安装

https://www.vmware.com

 安装VMware Workstation 16 pro。若之前已经装过VMware14,在更新过程中可能系统会提示安装失败的情况。经查阅相关资料,需要按以下流程进行操作:

 1.以管理员身份打开cmd,执行”sc stop vmx86& sc delete vmx86”和”sc stop vstor2-mntapi20-shared &sc delete vstor2-mntapi20-shared”。

 2.在”C:\Windows\System32\drivers\”目录下删除”vmx86.sys”、”vstor2-mntapi20-shared.sys”、”vstor2-x64.sys”。

 3.在”C:\windows\system32\drvstore”目录下删除所有前缀为”vmx86”的文件。

 4.也要以管理员身份打开组策略编辑器(gpedit),在HEKY_LOCAL_MACHINE\SOFTWARE中删除与VMware有关的项目。

 5.最后重启主机。运行VMware 16 Pro安装程序。至此,VMware虚拟机得以正确地安装。

3.创建新的虚拟机

 打开VMware,点击“创建新的虚拟机”,运行安装向导。采用典型配置,进行简易安装,如图所示。

 为了方便后续操作,可以将用户账户和根账户(root)的密码设置成1。

 虚拟机网络采用网络地址转换NAT。在虚拟机操作系统安装完成后,即可直接连接外部网络。

 在配置虚拟机硬件时,虚拟机内存可以分3GB。处理器可以分4个,每个处理器有两个内核,以在编译内核时可以使用8个内核运行编译。磁盘空间需要开足够大,使用80GB而不是默认推荐的20GB,以防止内核编译过程中出现磁盘空间不足的情况。同时,需要注意删去虚拟机硬件设置中的打印机与USB接口。否则,在物理机中可能会出现蓝屏的情况。

注:在物理机开机时按f12进入bios,在bios中设置允许虚拟机。若已经设置允许虚拟机,则需要关掉windows defender或腾讯电脑管家或360。

4.启动虚拟机后

 在虚拟机创建完成后,即可以启动虚拟机,配置系统。需要说明的是,CentOS 8的系统配置过程较为简单,只需等待其进度条读完后,即可以直接进入图形化界面。

 为了方便地调出terminal控制台,可以在桌面右键设置Display Settings,在键盘上添加快捷键,如图,设置可以用快捷键打开控制台。

 调出terminal控制台后,输入cat /proc/version,即可以查看当前使用的Linux内核版本号与gcc编译器版本号。

5.导入内核

 由于windows11系统可能与vmware的vmware tools不兼容,不能从主机直接拖文件向虚拟机,所以需要使用xftp共享文件夹的方式从主机向虚拟机传文件。Centos8的网络IP地址配置文件在/etc/sysconfig/network-scripts 文件夹下,名为ifcfg-ens160。在cmd输入ifconfig,得到本机dhcp时的IP地址inet。利用xftp进行连接,会话的主机就是本次ifconfig得到的ip地址。利用sftp协议。

xftp的下载:

https://sourceforge.net/projects/xftp/

 在此下载内核:https://www.kernel.org/

 下载需要进行编译的新的内核的版本。在本文中,选用linux-4.18.20版本。如图,已经成功将linux源码文件包传入。但是,如需直接传入/usr/src/kernels文件夹中,可能会因为权限问题而传输失败。所以,需要先将文件传入~/Desktop.在CentOS 8 中,可以直接双击解压,无需输入命令行。但在把Desktop的文件复制到/usr/src/kernels时,因为用户没有权限,所以只能通过命令行的形式将文件复制进入。执行如下语句:

sudo cp -r /home/zombotany/Desktop/linux-4.18.20 /usr/src/kernels

6.编译环境

 接下来的步骤为配置编译环境。需要说明的是,CentOS 8的编译环境安装过程与其他Linux发行版的安装流程区别较大。在此,将CentOS8的编译环境安装过程进行详细介绍。

 首先,安装gcc。

sudo yum install gcc

 安装g++。在centos中,安装g++的命令需要写成sudo yum install gcc-c++

sudo yum install gcc-c++

 在安装过程中可能会提示未找到匹配的包。经查阅相关资料,知道了是yum源的原因。于是安装 EPEL 源,使用最新版本8。执行语句:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

 在CentOS8中,安装devtoolset时,不能用yum,而是使用dnf.需要注意的是,scl在CentOS8的yum源中是不提供的。需要执行语句:

sudo dnf -y group install "Development Tools"。

 接下来,同样地,执行语句

sudo dnf install devtoolset-9-gcc

 还需要安装的是bison、flex、gdb、make、bc等工具。这些语句在CentOS各个版本是相同的,不作赘述。

sudo yum install gdb -y
sudo yum install make -y
sudo yum install bison -y
sudo yum install flex -y  
sudo yum install bc -y

 在想要编译的文件夹中输入make,会被提示缺文件。被系统建议安装libelf-dev 或libelf-devel或efutils-libelf-devel

 但是,只能安装第三个,前两个都不是centos能装的,只能执行

sudo yum -y install efutils-libelf-devel。

 在生成编译配置.config之前,还需要执行如下两条语句:

sudo yum install ncurses-devel -y
sudo yum install openssl-devel -y

 在安装完如上文所述的所有依赖后,进入需要编译的内核所在的文件目录,执行命令

cd /usr/src/kernels/linux-4.18.20

7.编译配置

 在编译之前,首先需要执行清理命令。执行:

make mrproper

 在执行完之前残留的编译结果后,需要生成编译配置文件。执行:

make menuconfig

 在等待数秒后,控制台会显示如图的图形界面。利用键盘方向键进行选择,直接全部使用默认参数。

 选定save项,并采用默认的配置文件名.config,如图所示。

 则用vi编辑器打开.config文件,

vi .config

 注释掉CONFIG_SYSTEM_TRUSTED_KEYS或写死CONFIG_SYSTEM_TRUSTED_KEYS=””

 该配置项大约在文件末尾。

 在修改完成后,输入键盘的esc,并输入:wq并回车,回到控制台。

 一定要执行这一步骤,否则会报错:”no rule to make target ‘certs/rhel.pem’”

8.编译内核

 输入make -j8启动8个核开始编译。这一步骤大约需要一小时左右。如果发现系统很快执行完,则说明该步骤没有被正确地执行完毕,仍然存在较多文件没有被正确地编译,则可能之前的操作有误。

 编译完成后生成了bzImage,该文件在目录arch/x86_64/boot下,如图所示。

 编译完成后输入make modules编译模块。输入make modules_install安装模块,输入make install安装新内核。安装完成新内核后,输入reboot,进入新内核。


目录
相关文章
|
13天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
29 5
|
12天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
12天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
20天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
58 3
|
21天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
36 2
|
23天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
68 2
|
25天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
56 2
|
26天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
32 3
|
9天前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
|
9天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
61 0