尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

RHEL7 upgrade to RHEL8

RHEL7 upgrade to RHEL8
📅 发布时间:2026/6/20 18:02:40

# 上传目标升级版本的 iso 镜像,以 8.10 为例

# 1. 取消订阅管理并安装升级软件(升级过程可以放在 tmux 会话中,sos 用来收集日志)

cat /etc/yum/pluginconf.d/subscription-manager.conf

sed -i 's/1/0/' /etc/yum/pluginconf.d/subscription-manager.conf

yum install -y tmux leapp  leapp-upgrade-el7toel8 sos

# 2. 预升级

# 预升级评估不会修改系统配置,但它消耗 /var/lib/leapp 目录中不可忽略的空间。在大多数情况下,预升级评估最多需要 4 GB 空间,但实际大小取决于您的系统配置。如果在托管的文件系统上没有足够的空间,预升级报告可能无法显示分析的完整结果。要防止问题,请确定您的系统在 /var/lib/leapp 目录中有足够的空间,或者将目录移到一个专用的分区,以便空间消耗不会影响系统的其他部分

# leapp 工具收集有关系统的数据,评估可升级性,并生成一个预升级报告,报告存放于 /var/log/leapp/ 目录下,名为 leapp-report.txt 文件

leapp preupgrade --no-rhsm --iso /root/rhel-8.10-x86_64-dvd.iso

# 预检级别如下, error 和 Inhibitors 级别是必需处理的

Errors
Inhibitors
HIGH severity reports
MEDIUM severity reports
LOW severity reports
INFO severity reports

# 3. 预检问题处理

# 3.1:Possible problems with remote login using root account

设置允许 root 远程登录 (将 PermitRootLogin 参数改为 yes 并重启 sshd 服务)

vim /etc/ssh/sshd_config 

systemctl restart sshd

# 3.2:Use of NFS detected. Upgrade can't proceed

注释 /etc/fstab 中的 nfs 挂载,并 umount 已挂载的 nfs

# 3.3:Missing required answers in the answer file

leapp answer --section remove_pam_pkcs11_module_check.confirm=True

# 3.4:grub 相关报错:

GRUB Legacy is used on the system

Failed to call grubby to list available boot entries.

File "/etc/default/grub" does not exist!

如果需要升级的 RHEL7 版本是由 RHEL6 升级而来并且没有将 grub 替换为 grub2,那么则需要进行 grub 替换

查询是否安装 grub2 grub2-tools grubby

rpm -qa | egrep "grub2|grub2-tools|grubby"

配置 grub
cat >/etc/default/grub <<EOF
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="\$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="$(grep '^\s*kernel /vmlinuz-3' /boot/grub/grub.conf | head -1 | sed -r -e 's,^\s*kernel /vmlinuz\S+ ,,' -e 's,\<root=\S+ ,,' -e 's,\<ro,,')"
GRUB_DISABLE_RECOVERY="true"
EOF

将 grub2 安装到物理磁盘。指定根目录所在磁盘 本示例为 sda

grub2-install /dev/sda

生成新的 grub 并重启生效

grub2-mkconfig -o /boot/grub2/grub.cfg && reboot

# 3.5:Leapp detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.

由于该模块在 rhel8 中不在支持,需要移除改模块,查询报告模块名称

cat /var/log/leapp/leapp-report.txt

示例:modprobe -r floppy pata_acpi && lsmod |grep -E 'floppy|pata_acpi'

# 4. 升级

执行 leapp preupgrade --no-rhsm --iso /root/rhel-8.10-x86_64-dvd.iso 后确保 Errors 和 Inhibitors 的值为0,然后执行:

leapp upgrade --no-rhsm --iso /home/rhel-8.10-x86_64-dvd.iso

# 5. 升级后的操作

从 /etc/dnf/dnf.conf 配置文件中的排除列表中删除任何剩余的 Leapp 软件包,包括 snactor 软件包。在原位升级过程中,使用 Leapp 工具安装的 Leapp 软件包会自动添加到 排除列表中,以防止删除或更新重要的文件。原位升级后,您必须在从系统中删除它们之前,从排除列表中删除这些 Leapp 软件包。

# 查看 exclude 

cat /etc/dnf/dnf.conf

# 删除对应软件包

 yum config-manager --save --setopt exclude=''

# 在原位升级过程中,Leapp 会将 SELinux 的模式设置为 permissive,且 firewalld 服务会被打开。确保升级完成后记得关闭 SELinux 和 firewalld 服务

# 删除旧版本内核,可能存在多个

cd /lib/modules && ls -d *.el7*

# 从旧内核中删除弱模块。如果您有多个旧内核,请对每个内核重复此步骤:

# 命令:[ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel <version>

# 示例如下:

[ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel 3.10.0-1160.el7.x86_64

# 从引导装载程序条目中删除旧内核。如果您有多个旧内核,请对每个内核重复此步骤

# 示例如下:

/bin/kernel-install remove 3.10.0-1160.el7.x86_64 /lib/modules/3.10.0-1160.el7.x86_64/vmlinuz

# 查看旧内核软件包

rpm -qa | grep -e '.el[67]' | grep -vE '^(gpg-pubkey|libmodulemd|katello-ca-consumer)' | xargs yum remove -y

yum remove kernel-workaround kernel-3.10.0-1160.el7.x86_64

#  将旧的救援内核和初始 RAM 磁盘替换为当前的内核和磁盘,将旧的移动到opt目录下

ls /boot/vmlinuz-*rescue* /boot/initramfs-*rescue*

mv /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* /opt/

/usr/lib/kernel/install.d/51-dracut-rescue.install add "$(uname -r)" /boot "/boot/vmlinuz-$(uname -r)"

# 验证

验证旧内核是否已从引导装载程序条目中删除:

grubby --info=ALL | grep "\.el7" || echo "Old kernels are not present in the boot loader."

# 验证已为当前内核创建了之前删除的救援内核和救援初始 RAM 磁盘文件:

ls /boot/vmlinuz-*rescue* /boot/initramfs-*rescue*  输出如下:

/boot/initramfs-0-rescue-dd6065cbbe3d7f328b9eabc300000006.img

/boot/vmlinuz-0-rescue-dd6065cbbe3d7f328b9eabc300000006

# 输出结果是否为 OK 

lsinitrd /boot/initramfs-*rescue*.img | grep -qm1 "$(uname -r)/kernel/" && echo "OK" || echo "FAIL"

# 验证救援引导条目是否指向现有救援文件。请查看 grubby 输出:

grubby --info $(ls /boot/vmlinuz-*rescue*)  输出结果示例如下:

index=1

kernel="/boot/vmlinuz-0-rescue-dd6065cbbe3d7f328b9eabc300000006"

args="ro rd.luks=0 rd.locale.LANG=en_US.UTF-8 rd.md=0 rd.lvm.lv=VolGroup/lv_swap vconsole.font=latarcyrheb-sun16 rd.lvm.lv=VolGroup/lv_root KEYBOARDTYPE=pc vconsole.keymap=us rd.dm=0 rhgb quiet crashkernel=auto LANG=en_US.UTF-8 $tuned_params"

root="/dev/mapper/VolGroup-lv_root"

initrd="/boot/initramfs-0-rescue-dd6065cbbe3d7f328b9eabc300000006.img $tuned_initrd"

title="Red Hat Enterprise Linux (0-rescue-dd6065cbbe3d7f328b9eabc300000006) 8.10 (Ootpa)"

id="dd6065cbbe3d7f328b9eabc300000006-0-rescue"

 

 

 

 
 

 

相关新闻

  • 2025年江苏徐州干式变压器生产厂家综合评估与选购指南
  • Cloudera CDH迁移到 华为MRS使用场景分析与思考,是国内大数据行业的踌躇不前的原因?
  • 小米6 MIUI11 root Magisk Xposed 框架完整刷机图文教程

最新新闻

  • 基于NXP i.MX RT的永磁同步电机FOC控制实战指南
  • Windows零门槛本地部署Claude Code+Minimax实战指南
  • ControlFoley:统一可控的视频到音频生成框架,解决跨模态冲突
  • Hanime1Plugin完整指南:如何在Android设备上实现纯净观影体验
  • 终极Windows驱动管理指南:DriverStore Explorer完整使用教程
  • PNX2015视频解码芯片寄存器配置实战:从时序到ITU656流生成

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号