如何在CentOS 7上编译Linux内核

运行自定义编译的Linux内核总是很有用,特别是当您希望启用或禁用特定的内核功能时,这些功能在默认的分发提供的内核中不可用。

在本文中,我将解释如何从CentOS 7发行版中的源代码编译和使用最新的Linux内核(此处提供的说明也适用于RHELFedora )。

如果您不想完成这些复杂的设置,请按照我们的简单文章说明如何使用第三方RPM存储库在CentOS 7上安装或升级到内核

安装内核编译所需的包

首先,确保更新软件包存储库,安装编译内核所需的开发工具,并使用以下yum命令安装ncurses库。

# yum update
# yum install -y ncurses-devel make gcc bc bison flex elfutils-libelf-devel openssl-devel grub2

在CentOS 7中编译和安装内核

使用/ usr / src /目录下的wget命令下载最新的Kernel 4.17源代码,或者也可以通过kernel.org下载最新的内核。

# cd /usr/src/
# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.17.11.tar.xz

使用以下命令提取已归档文件并更改目录。

# tar -xvf linux-4.17.11.tar.xz
# cd linux-4.17.11/

在CentOS 7中配置内核

必须在CentOS 7环境中使用以下必需的配置选项正确配置内核。

CONFIG_KVM_GUEST=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_BLK_DEV_SD
CONFIG_SCSI_VIRTIO=y
CONFIG_VIRTIO_NET=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y

我强烈建议您将正在运行的内核配置( .config )从/ boot目录复制到新的内核linux-4.17.11目录。

# cp -v /boot/config-3.10.0-693.5.2.el7.x86_64 /usr/src/linux-4.17.11/.config

现在运行make menuconfig命令来配置Linux内核。 执行以下命令后,会出现一个包含所有菜单的弹出窗口。 您可以在此处启用或禁用某些内核功能。 如果您不熟悉这些菜单,只需按ESC键退出即可。

# cd /usr/src/linux-4.17.11/
# make menuconfig

设置内核配置选项后,单击“ 保存”以保存配置界面并退出菜单。

制作Menuconfig

保存内核配置

在CentOS 7中编译内核

在开始内核编译之前,请确保您的系统在文件系统上具有超过25GB的可用空间。 要确认,您可以使用df命令检查文件系统可用空间,如图所示。

# df -h

现在使用以下命令编译和安装内核和模块( 可能需要几个小时 )。 编译过程将文件放在/ boot目录下,并在grub.conf文件中创建一个新的内核条目。

# make bzImage
# make modules
# make
# make install
# make modules_install

编译完成后,重新启动系统并验证新安装的内核。

# uname -sr

验证内核版本

而已。 我希望这篇文章对大家都有帮助。 如果您在编译或安装内核时遇到任何问题或困难,请使用下面的评论表随时询问或发布您的问题。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏