CenOS 7 内核升级 - 3.10 升级到5.4

用CentOS7 安装K8S,发现系统版本太低了,

报错

kernel release 3.10.0-1160.71.1.el7.x86_64 is unsupported. Recommended LTS version from the 4.x series is 4.19. Any 5.x or 6.x versions are also supported. For cgroups v2 support, the minimal version is 4.15 and the recommended version is 5.8+

解决办法

手工升级内核,下载内核:Coreix Mirrors

或者直接执行如下命令

wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.203-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.203-1.el7.elrepo.x86_64.rpm
wget http://mirrors.coreix.net/elrepo-archive-archive/kernel/el7/x86_64/RPMS/kernel-lt-5.4.203-1.el7.elrepo.x86_64.rpm
安装对应内核
rpm -ivh *.rpm --nodeps --force

查看已安装的内核

rpm -qa | grep kernel

查看/boot/目录下也会生成该内核版本的内核镜像

更新启动内核版本

把GRUB_DEFAULT值改成0

重启生效

重写生成引导文件:grub2-mkconfig -o /boot/grub2/grub.cfg

重启 init 6 或者reboot

检查版本

<think>我们正在处理一个关于升级CentOS 7内核的问题。用户当前的内核版本是3.10,希望升级4.18。 注意:CentOS 7默认的内核版本是3.10,而4.18是一个较新的版本。我们可以通过安装ELRepo仓库中的内核包来实现。 步骤: 1. 备份重要数据(虽然升级内核通常不会影响用户数据,但以防万一) 2. 更新当前系统 3. 导入ELRepo仓库的密钥 4. 安装ELRepo仓库 5. 安装新版本内核4.18版本) 6. 设置新内核为默认启动项(可选,因为安装后grub2默认会使用最新内核7. 重启系统并验证 但是,需要注意的是,ELRepo仓库提供了两种内核版本: - kernel-lt(长期支持版本) - kernel-ml(主线稳定版本) 4.18版本可能已经不在kernel-lt或kernel-ml的最新版本中,因为4.18是一个相对较旧的版本(当前时间2023年,ELRepo的kernel-ml已经更新到6.x版本)。因此,我们需要查看ELRepo是否还提供4.18版本。 实际上,我们可以通过以下方式安装特定版本的内核,但ELRepo仓库默认只提供最新版本。如果我们一定要4.18,可能需要手动下载安装,但这样可能会有依赖问题。因此,建议用户安装ELRepo提供的最新长期支持版或主线稳定版,而不是指定4.18。 但是,如果用户有特殊需求必须安装4.18,我们可以尝试从ELRepo的存档中安装,或者从源代码编译。不过,编译内核比较复杂,而且容易出问题,所以不推荐。 因此,我们首先尝试查看ELRepo是否还提供4.18版本。我们可以通过以下命令查看可用的内核版本: ``` yum --disablerepo="*" --enablerepo="elrepo-kernel" list available ``` 如果列表中有4.18版本,我们可以安装。如果没有,我们就需要采取其他方法。 考虑到用户可能只是需要一个比3.10新的内核,而不一定是4.18,我们可以建议安装最新的长期支持版(kernel-lt)或主线稳定版(kernel-ml)。 所以,我们先按照安装最新内核的方法来,然后如果用户坚持要4.18,我们再考虑其他方法。 步骤详解: 第一步:更新系统 ``` sudo yum update -y ``` 第二步:导入ELRepo仓库的GPG密钥 ``` sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org ``` 第三步:安装ELRepo仓库 ``` sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm ``` 第四步:安装新内核 - 如果想安装长期支持版本(kernel-lt): ``` sudo yum --enablerepo=elrepo-kernel install kernel-lt -y ``` - 或者安装主线稳定版本(kernel-ml): ``` sudo yum --enablerepo=elrepo-kernel install kernel-ml -y ``` 第五步:检查安装的内核 ``` awk -F\&#39; &#39;$1=="menuentry " {print $2}&#39; /etc/grub2.cfg ``` 第六步:设置默认启动内核(假设新内核在列表中的位置是0,即第一个) ``` sudo grub2-set-default 0 ``` 或者使用内核名称: ``` sudo grub2-set-default "CentOS Linux (4.18.0-xxx.el7.x86_64) 7 (Core)" ``` 第七步:重新生成grub配置文件 ``` sudo grub2-mkconfig -o /boot/grub2/grub.cfg ``` 第八步:重启 ``` sudo reboot ``` 重启后,检查内核版本: ``` uname -r ``` 但是,如果用户坚持要4.18版本,而ELRepo仓库中没有,我们可以尝试以下方法: 方法1:从源代码编译安装4.18内核 - 步骤复杂,需要安装编译依赖,下载内核源码,配置,编译,安装。这通常需要很长时间,并且容易出错。 方法2:寻找第三方RPM包(如果有的话) 鉴于以上情况,我们首先建议用户安装ELRepo提供的最新内核(ml或lt),如果用户确实需要4.18,我们可以提供编译内核的步骤,但需要用户自行承担风险。 因此,在回答中,我们先给出安装ELRepo最新内核的步骤,然后说明如果用户需要特定版本(如4.18)可能需要额外步骤,并询问用户是否确实需要4.18版本。 但是,根据问题描述,用户明确要求升级4.18。所以,我们需要先检查ELRepo是否提供4.18。 通过查询ELRepo的网站(https://elrepo.org/linux/kernel/el7/x86_64/RPMS/),我们可以发现,4.18版本的内核已经不再提供。目前提供的是5.x和6.x版本。 因此,我们需要采用编译安装的方法。 编译安装内核的步骤: 1. 安装依赖包 ``` sudo yum groupinstall "Development Tools" -y sudo yum install ncurses-devel bison flex elfutils-libelf-devel openssl-devel -y ``` 2. 下载内核源码(4.18版本) ``` cd /usr/src sudo wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.18.tar.xz sudo tar -xvf linux-4.18.tar.xz cd linux-4.18 ``` 3. 配置内核 可以使用当前内核的配置作为基础: ``` sudo cp /boot/config-`uname -r` .config ``` 然后运行配置界面(可选): ``` sudo make menuconfig ``` 在配置界面中,可以加载当前配置,然后保存退出。 4. 编译内核 ``` sudo make -j$(nproc) ``` 5. 安装模块 ``` sudo make modules_install ``` 6. 安装内核 ``` sudo make install ``` 7. 更新grub ``` sudo grub2-mkconfig -o /boot/grub2/grub.cfg ``` 8. 重启并选择新内核 但是,编译内核过程复杂,且容易出错,特别是对于新手。因此,我们建议用户考虑使用ELRepo提供的最新内核(如5.4或6.x),除非有特殊原因必须使用4.18。 因此,在回答中,我们将先提供使用ELRepo安装最新内核的步骤,然后提供编译安装4.18的步骤,并说明风险。 根据以上分析,我们给出如下回答:</think>### 升级 CentOS 7 内核4.18 的步骤 #### 📦 方法一:通过 ELRepo 仓库安装(推荐) ```bash # 1. 更新当前系统 sudo yum update -y # 2. 导入 ELRepo 仓库密钥 sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # 3. 安装 ELRepo 仓库 sudo rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm # 4. 安装 kernel-lt(长期支持版)或 kernel-ml(主线版) sudo yum --enablerepo=elrepo-kernel install kernel-lt -y # 若需 4.18 需确认仓库版本可用性 # 5. 设置新内核为默认启动项 sudo grub2-set-default 0 # 0 表示新内核在 grub 列表中的位置 sudo grub2-mkconfig -o /boot/grub2/grub.cfg # 6. 重启并验证 sudo reboot uname -r # 重启后检查内核版本 ``` > ⚠️ **注意**: > ELRepo 的 `kernel-lt` 仓库可能不再提供 4.18 等旧版本(当前最新为 6.x)。若必须使用 **精确的 4.18 版本**,需手动编译安装(见方法二)。 --- #### 🔧 方法二:手动编译安装内核 4.18 ```bash # 1. 安装编译依赖 sudo yum groupinstall "Development Tools" -y sudo yum install ncurses-devel bison flex elfutils-libelf-devel openssl-devel -y # 2. 下载内核源码 cd /usr/src sudo wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.18.tar.xz sudo tar -xvf linux-4.18.tar.xz cd linux-4.18 # 3. 配置内核(使用当前配置基础) sudo cp /boot/config-$(uname -r) .config sudo make olddefconfig # 应用旧配置到新内核 # 4. 编译与安装 sudo make -j$(nproc) # 启用多核编译 sudo make modules_install sudo make install # 5. 更新引导配置 sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo reboot ``` #### 🔍 验证与注意事项 1. **启动项选择**: ```bash awk -F\&#39; &#39;/menuentry / {print $2}&#39; /etc/grub2.cfg # 查看可用内核列表 ``` 2. **内核回退**: - 重启时在 GRUB 菜单中选择旧内核 - 删除新内核:`sudo yum remove kernel-4.18*` 3. **驱动兼容性**: 升级后需重新安装第三方内核模块(如 NVIDIA 驱动)[^1]。 --- ### 📚 相关问题 1. **升级内核后如何解决 NVIDIA 驱动不兼容的问题?** > 需重新编译 NVIDIA 内核模块: > ```bash > sudo dnf install akmod-nvidia # 或手动执行 NVIDIA 安装脚本 > ``` 2. **如何安全删除旧内核释放磁盘空间?** > ```bash > sudo package-cleanup --oldkernels --count=1 # 保留最新1个旧内核 > ``` 3. **为什么推荐通过 ELRepo 而非 CentOS 官方仓库升级内核?** > CentOS 官方仓库仅提供安全补丁更新,不提供大版本升级。ELRepo 专门维护新版测试内核[^1]。 [^1]: 若从旧安装升级,可能需要重建 NVIDIA 内核模块,参考 [ELRepo 文档](https://elrepo.org/tiki/tiki-index.php)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

☼←安于亥时→❦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值