教你三步在 CentOS 7中安装或升级最新的内核

本文介绍如何在CentOS7上检查、升级内核版本,并设置默认内核。包括使用ELRepo仓库安装最新内核版本及通过GRUB配置启动默认内核。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然有些人使用 Linux 来表示整个操作系统,但要注意的是,严格地来说,Linux 只是个内核。另一方面,发行版是一个完整功能的系统,它建立在内核之上,具有各种各样的应用程序工具和库。

在正常操作期间,内核负责执行两个重要任务:

作为硬件和系统上运行的软件之间的接口。

尽可能高效地管理系统资源。

想要了解更多关于windows,linux的知识可以去《linux就该这么学》看看。

工具/原料

  • CentOS 7

方法/步骤

  1. 步骤 1:检查已安装的内核版本

    让我们安装了一个发行版,它包含了一个特定版本的内核。为了展示当前系统中已安装的版本,我们可以:

    # uname -sr

    下面的图片展示了在一台 CentOS 7 服务器上的输出信息:

    在 CentOS 7 上检查内核版本

    如果我们现在进入 https://www.kernel.org/,在撰写本文时,我们看到最新的内核版本是4.10.1(其他版本可以从同一网站获得)。

    还要考虑的一个重要的事情是内核版本的生命周期 - 如果你当前使用的版本接近它的生命周期结束,那么在该日期后将不会提供更多的 bug 修复。关于更多信息,请参阅内核发布页。

    教你三步在 CentOS 7中安装或升级最新的内核



步骤 2:在 CentOS 7 中升级内核
  1. 大多数现代发行版提供了一种使用 yum 等包管理系统和官方支持的仓库升级内核的方法。

    但是,这只会升级内核到仓库中可用的最新版本 - 而不是在 https://www.kernel.org/ 中可用的最新版本。不幸的是,Red Hat 只允许使用前者升级内核。

    与 Red Hat 不同,CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本。

    要在 CentOS 7 上启用 ELRepo 仓库,请运行:

    # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

    # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

    在 CentOS 7 启用 ELRepo

    仓库启用后,你可以使用下面的命令列出可用的内核相关包:

    # yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

    yum - 找出可用的内核版本

    接下来,安装最新的主线稳定内核:

    # yum --enablerepo=elrepo-kernel install kernel-ml

    在 CentOS 7 中安装最新的内核版本

    最后,重启机器并应用最新内核,接着运行下面的命令检查最新内核版本:

    uname -sr

    教你三步在 CentOS 7中安装或升级最新的内核
    教你三步在 CentOS 7中安装或升级最新的内核
    教你三步在 CentOS 7中安装或升级最新的内核
    教你三步在 CentOS 7中安装或升级最新的内核












  2. 3

    步骤 3:设置 GRUB 默认的内核版本

    为了让新安装的内核成为默认启动选项,你需要如下修改 GRUB 配置:

    打开并编辑 /etc/default/grub 并设置 GRUB_DEFAULT=0。意思是 GRUB 初始化页面的第一个内核将作为默认内核。

    GRUB_TIMEOUT=5

    GRUB_DEFAULT=0

    GRUB_DISABLE_SUBMENU=true

    GRUB_TERMINAL_OUTPUT="console"

    GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/root rd.lvm.lv=centos/swap crashkernel=auto rhgb quiet" 

    GRUB_DISABLE_RECOVERY="true"

    接下来运行下面的命令来重新创建内核配置。

    # grub2-mkconfig -o /boot/grub2/grub.cfg

    在 GRUB 中设置内核

    重启并验证最新的内核已作为默认内核。

    在 CentOS 7 中启动默认内核版本

    恭喜你!你已经在 CentOS 7 中升级内核了!

    教你三步在 CentOS 7中安装或升级最新的内核
    教你三步在 CentOS 7中安装或升级最新的内核












如果碰到/boot 空间不足的情况,按照下面处理,

CentOS系统安装内核时提示/boot分区空间不足问题的解决方法

今天登录服务器,准备使用 yum 安装一个软件,习惯性的先 yum update 一下,结果最后出现如下错误:

...
Transaction check error:
installing package kernel-3.10.0-327.4.5.el7.x86_64 needs 20MB on the /boot filesystem
Error Summary
-------------
Disk Requirements:
At least 20MB more space needed on the /boot filesystem.

看提示是要安装新的 Linux 内核包,但 /boot 文件系统空间不足 20MB。所以更新失败了。

好吧,那就看看 /boot 下面到底还有多少空间。

> df -H /boot
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 247M 237M 10M 96% /boot

嗯,只有 10M 了,电脑是不会撒谎的。怎么办呢,/boot 文件系统是很重要的,弄不好系统就挂了,我可不想出现这样的结局,明天可是周六。

网上搜索了一番,原来可以尝试删除旧的内核包来达到清理空间的目的。 (文章地址)

先看看有没有旧的内核包:

> rpm -qa|grep kernel
kernel-3.10.0-229.14.1.el7.x86_64
kernel-3.10.0-229.11.1.el7.x86_64
kernel-devel-3.10.0-229.11.1.el7.x86_64
kernel-3.10.0-327.4.4.el7.x86_64
kernel-devel-3.10.0-327.4.4.el7.x86_64
kernel-devel-3.10.0-229.14.1.el7.x86_64
kernel-headers-3.10.0-327.4.4.el7.x86_64
kernel-3.10.0-229.el7.x86_64
kernel-tools-libs-3.10.0-327.4.4.el7.x86_64
kernel-tools-3.10.0-327.4.4.el7.x86_64

嗯,有的,那就好。不过开始之前,我还要确认一下当前系统用的是哪个,删错了可不好。

> uname -a
Linux ... 3.10.0-229.14.1.el7.x86_64 #1 ... GNU/Linux

看样子我只要不动 3.10.0-229.14.1 就个版本可以了。我决定删 3.10.0-229.11.1 这个版本。

> sudo rpm -e kernel-3.10.0-229.11.1.el7.x86_64 kernel-devel-3.10.0-229.11.1.el7.x86_64

然后再看看 /boot 文件系统的可用大小。

> df -H /boot
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 247M 190M 57M 78% /boot

有 57M 了,足够了。再次执行 sudo yum update,更新新的内核包成功。








/boot 空间不足

<think>我们参考引用内容,特别是引用[3]和引用[4],它们分别介绍了通过ELRepo仓库安装长期支持版本(LT)和手动编译安装4.18.3内核的方法。 用户要求将内核从3.10升级到4.18,我们可以提供两种方法:一种是使用ELRepo仓库安装(相对简单),另一种是手动编译安装(更灵活但复杂)。 由于用户指定了4.18版本,而ELRepo仓库可能提供的是长期支持版本(5.4.x等),不一定有4.18。因此,我们需要检查ELRepo仓库是否有4.18版本的内核包。 但根据引用[4]中的方法,我们可以手动编译安装4.18.3内核。 考虑到用户可能希望简单操作,我们首先尝试使用ELRepo仓库安装,但ELRepo仓库的长期支持版本(LT)目前是5.4.x(引用[3]中示例),主线版本(ML)可能已经更新到更高版本(如6.x),不一定有4.18。 因此,我们可能需要手动编译安装。 这里提供两种方案: 方案一:使用ELRepo仓库安装(如果仓库中有4.18版本) - 添加ELRepo仓库 - 查看可用的内核版本,检查是否有4.18.x - 如果有,则直接安装 方案二:手动编译安装(如果仓库中没有,者用户指定4.18.3版本) 由于用户明确要求4.18,我们以手动编译安装为例,因为ELRepo仓库可能不提供4.18(需要确认,但为了保险,我们提供手动方法)。 步骤概述: 1. 准备工作:安装依赖,下载内核源码 2. 配置内核 3. 编译和安装 4. 更新引导并重启 注意:升级内核有风险,请确保在测试环境做好备份后进行。 详细步骤: 1. 准备工作 - 更新系统并安装必要的开发工具和依赖 - 下载内核源码(4.18版本) 2. 配置内核 - 使用当前内核的配置作为基础 3. 编译和安装 - 编译内核和模块 - 安装模块 - 安装内核 4. 生成initramfs并更新GRUB 5. 重启并验证 下面我们按照手动编译安装4.18.3内核的步骤进行说明。 注意:编译内核需要较长时间和足够的磁盘空间。 具体步骤:</think>### CentOS 7 内核升级至 4.18 的完整程 #### 一、准备工作 1. **备份数据** - 执行 `sudo tar -zcvf /backup/centos_backup.tar.gz /etc /boot` 备份关键目录[^3]。 - 建议创建系统快照(如使用虚拟机快照 `dd` 命令)。 2. **安装依赖包** ```bash sudo yum groupinstall "Development Tools" -y sudo yum install ncurses-devel openssl-devel elfutils-libelf-devel bc bison flex -y ``` 这些工具是编译内核的必要组件[^4]。 3. **下载内核源码** ```bash cd /usr/src sudo wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.18.3.tar.gz sudo tar -xvf linux-4.18.3.tar.gz cd linux-4.18.3 ``` --- #### 二、内核配置与编译 1. **配置内核选项** ```bash sudo cp /boot/config-$(uname -r) .config # 复用当前配置 sudo make oldconfig # 交互式更新配置(按Enter接受默认值) ``` ![内核配置流程](https://example.com/kernel-config.png) *图:内核配置界面示意图* 2. **编译与安装** ```bash sudo make -j$(nproc) # 并行编译(nproc为CPU核心数) sudo make modules_install # 安装内核模块 sudo make install # 安装内核 ``` ⏰ 编译时间参考:4核CPU约需30-60分钟。 --- #### 三、更新引导配置 1. **生成 initramfs** ```bash sudo dracut --force /boot/initramfs-4.18.3.img 4.18.3 ``` 2. **更新 GRUB 引导** ```bash sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo grub2-set-default "CentOS Linux (4.18.3) 7 (Core)" # 设置默认启动项 ``` 3. **验证引导项** ```bash sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg ``` --- #### 四、重启与验证 1. **重启系统** ```bash sudo reboot ``` 2. **检查新内核** ```bash uname -r # 应输出 4.18.3 lsmod # 检查驱动加载状态 ``` --- #### 五、故障处理 - **无法启动新内核**: 重启时在GRUB菜单选择旧内核(如3.10.x),然后检查: ```bash dmesg | grep "error\|fail" # 查看启动错误 journalctl -xb -p3 # 检查系统日志 ``` - **驱动兼容性问题**: 重编译缺失驱动:`sudo make M=drivers/net/ethernet/intel/` > ⚠️ **重要提示** > 1. 首次升级建议在测试环境操作 > 2. 保留旧内核:`sudo yum install yum-utils && sudo package-cleanup --oldkernels --count=2` > 3. 网络驱动需特别注意兼容性[^4] --- ### 相关问题 1. 升级内核后如何回滚到旧版本? 2. CentOS 7 升级内核后遇到硬件不兼容怎么办? 3. 除了手动编译,还有哪些升级内核的方法? 4. 如何验证新内核的性能提升效果? [^1]: 更新与升级CentOS 7支持通过yum等包管理器来更新内核 [^2]: centos7.5更新升级内核到4.18稳定版 [^3]: [Centos]Centos7升级内核版本 [^4]: centos7升级内核到4.18.3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值