运行自定义编译的Linux内核总是很有用,特别是当您希望启用或禁用特定的内核功能时,这些功能在默认的分发提供的内核中不可用。
在本文中,我将解释如何从CentOS 7发行版中的源代码编译和使用最新的Linux内核(此处提供的说明也适用于RHEL和Fedora )。
如果您不想完成这些复杂的设置,请按照我们的简单文章说明如何使用第三方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
验证内核版本
而已。 我希望这篇文章对大家都有帮助。 如果您在编译或安装内核时遇到任何问题或困难,请使用下面的评论表随时询问或发布您的问题。