AWS RHEL虚拟机内核降级至4.8版本失败求助
AWS RHEL虚拟机内核降级至4.8版本失败求助
兄弟,你这问题根源在于用Ubuntu的deb包转格式成rpm安装——完全搞错方向了!不同发行版的内核包结构、依赖体系天差地别,这么操作必然会出现依赖冲突(比如你遇到的libcrypto.so.1.0.0缺失,因为RHEL9默认用的是OpenSSL 3.0,根本没有1.0版本的库)。
给你一套靠谱的解决方案,直接从源码编译4.8内核,适配你的RHEL9系统:
第一步:清理错误安装的Ubuntu内核包
先把之前装的不兼容包删掉,避免后续冲突:
sudo yum remove linux-headers-4.8.0-040800-generic linux-image-4.8.0-040800-generic
第二步:安装编译内核的依赖工具
编译内核需要一系列开发组件,先装全:
sudo yum groupinstall "Development Tools" sudo yum install ncurses-devel bison flex elfutils-libelf-devel openssl-devel
第三步:下载并解压4.8内核源码
从官方内核仓库下载源码包:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.tar.xz tar -xf linux-4.8.tar.xz cd linux-4.8
第四步:配置内核参数
用当前系统的内核配置作为基础,减少兼容性问题:
cp /boot/config-$(uname -r) .config make oldconfig
执行make oldconfig时会弹出一堆配置选项,直接按回车选默认即可,除非你有特定的研究需求要修改。
第五步:编译并安装内核
开始编译(-j$(nproc)是用所有CPU核心加速,编译时间会比较久,耐心等):
make -j$(nproc) sudo make modules_install sudo make install
第六步:设置默认启动4.8内核
编译安装完成后,要让系统默认启动新内核:
- 先查看所有内核条目及其索引:
sudo grubby --info=ALL | grep -E "kernel|index" - 找到4.8版本内核对应的
index编号,比如假设是1,执行:sudo grubby --set-default-index=1 # 替换成你实际查到的编号
第七步:重启验证
sudo reboot
重启后执行uname -r,如果显示4.8开头的版本号,就说明成功了!
注意事项
- 4.8是非常老的内核版本,和RHEL9的用户空间工具(比如systemd、udev)可能存在兼容性问题,这是正常的——毕竟你是做研究,提前做好心理准备。
- AWS EC2虚拟机有特殊的驱动(比如网络、存储),编译时要确保这些驱动被选中,不然重启后可能无法联网或识别磁盘。在
make oldconfig过程中,留意和AWS/EC2相关的驱动选项,保持默认选中即可。 - 以后别再跨发行版转包安装了,不同发行版的包不是通用的!
备注:内容来源于stack exchange,提问作者Neetesshhr
相关产品推荐
相关产品推荐

