如何在CentOS 7上安装Linux Kernel 5.x
如何在CentOS 7上安装Linux Kernel 5.x?如何在CentOS 7上升级到Kernel 5.x?默认情况下,CentOS附带一个定制内核,以确保其完整性和与支持的硬件的兼容性。 Linux内核包括基本内核本身和许多内核模块。基本内核始终在引导过程中加载,但可以根据需要加载模块。
以下是可用于CentOS 7的内核软件包的列表:内核:该软件包包含用于单核,多核和多处理器系统的内核kernel-devel:它包含用于针对已安装的内核构建内核模块的内核头文件和makefile。 version.kernel-headers:该软件包包括C头文件,该文件用于增强Linux内核与用户空间库和程序之间的接口.kernel-tools:包含用于操纵Linux内核的工具和支持文档。perf:该软件包包含perftool ,它可以监视Linux kernel.linux-firmware的性能:它包含各种设备运行所需的固件文件。
在CentOS 7上安装Linux Kernel 5.x
可以通过构建最新版本的Kernel或者使用带有预构建软件包的RPM存储库将其安装在CentOS 7上。在本指南中,我们将使用ELRepo在CentOS 7上安装Linux Kernel5.x。
ELRepo是用于Enterprise Linux软件包的RPM存储库。它支持Red Hat Enterprise Linux(RHEL)及其衍生产品,例如Scientific Linux,CentOS等。通过运行以下命令将ELRepo存储库添加到CentOS 7.
sudo yum -y install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
添加存储库后,导入用于签名软件包的GPG密钥。
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
这将添加elrepo-kernel
通道,该通道为RHEL和CentOS提供长期(kernel-lt)支持内核和最新的稳定主线内核(kernel-ml)。默认情况下未启用此通道,我们需要在CentOS 7上安装Kernel 5.x之前显式启用它。
$sudo yum --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-ml kernel-ml.x86_64 5.4.12-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 5.4.12-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 5.4.12-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 5.4.12-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 5.4.12-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 5.4.12-1.el7.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 5.4.12-1.el7.elrepo elrepo-kernel
既然我们已经确认Linux Kernel 5.x的可用性,我们可以继续安装它。
$sudo yum --enablerepo=elrepo-kernel install kernel-ml Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile base: mirror.aptus.co.tz elrepo: elrepo.reloumirrors.net elrepo-kernel: elrepo.reloumirrors.net extras: mirror.aptus.co.tz updates: mirror.aptus.co.tz base | 3.6 kB 00:00:00 elrepo | 2.9 kB 00:00:00 extras | 3.4 kB 00:00:00 updates | 3.4 kB 00:00:00 (1/5): base/7/x86_64/group_gz | 166 kB 00:00:00 (2/5): extras/7/x86_64/primary_db | 180 kB 00:00:00 (3/5): elrepo/primary_db | 270 kB 00:00:02 (4/5): updates/7/x86_64/primary_db | 2.4 MB 00:00:03 (5/5): base/7/x86_64/primary_db | 6.0 MB 00:00:06 Resolving Dependencies --> Running transaction check ---> Package kernel-ml.x86_64 0:5.0.0-1.el7.elrepo will be installed --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================= Package Arch Version Repository Size Installing: kernel-ml x86_64 5.0.0-1.el7.elrepo elrepo-kernel 47 M Transaction Summary Install 1 Package Total download size: 47 M Installed size: 215 M Is this ok [y/d/N]: y
还要安装kernel-ml-devel,kernel-ml-headers,kernel-ml-tools,perf:
sudo yum -y --enablerepo=elrepo-kernel install kernel-ml-{devel,headers,perf}
重新启动系统:
sudo reboot
在Grub菜单中选择Kernel 5.x,以启动到CentOS 7上新安装的Kernel5.x。
使用" uname"命令确认引导的内核。
$uname -r 5.4.12-1.el7.elrepo.x86_64
在CentOS 7上将Kernel 5.x设置为默认值
编辑文件/etc/default/grub并设置GRUB_DEFAULT = 0。
GRUB_TIMEOUT=1 GRUB_DEFAULT=0 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="no_timer_check console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 elevator=noop crashkernel=auto" GRUB_DISABLE_RECOVERY="true"
重新生成grub配置文件。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
在CentOS 7上卸载Kernel 5.x
我们现在已在CentOS 7上安装了Linux Kernel5.x。要卸载,请启动至较早的Kernel。
确认我们启动的内核版本。
$uname -r 3.10.0-957.1.3.el7.x86_64
然后在CentOS 7上卸载Linux Kernel5.x。
$sudo yum remove kernel-ml kernel-ml-{devel,headers,perf} Loaded plugins: fastestmirror No Match for argument: kernel-ml-perf Resolving Dependencies --> Running transaction check ---> Package kernel-ml.x86_64 0:5.0.0-1.el7.elrepo will be erased ---> Package kernel-ml-devel.x86_64 0:5.0.0-1.el7.elrepo will be erased ---> Package kernel-ml-headers.x86_64 0:5.0.0-1.el7.elrepo will be erased --> Finished Dependency Resolution Dependencies Resolved ======================================================================================================================================================= Package Arch Version Repository Size Removing: kernel-ml x86_64 5.0.0-1.el7.elrepo @elrepo-kernel 215 M kernel-ml-devel x86_64 5.0.0-1.el7.elrepo @elrepo-kernel 47 M kernel-ml-headers x86_64 5.0.0-1.el7.elrepo @elrepo-kernel 4.6 M Transaction Summary Remove 3 Packages Installed size: 266 M Is this ok [y/N]: y