第 8 章 执行升级后的任务

在原位升级到 RHEL 8 后,建议执行以下主要任务。

先决条件

流程

执行升级后,完成以下任务:

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

    • 要从排除列表中手动删除软件包,请编辑 /etc/dnf/dnf.conf 配置文件,并从 exclude 列表中删除所需的 Leapp 软件包。
    • exclude 列表中删除所有软件包:

      # yum config-manager --save --setopt exclude=''
  2. 删除剩余的 RHEL 7 软件包,包括剩余的 Leapp 软件包。

    1. 确定旧的内核版本:

      # cd /lib/modules && ls -d *.el7*
    2. 从旧内核中删除弱模块。如果您有多个旧内核,请对每个内核重复此步骤:

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

      &lt;version> 替换为上一步中决定的内核版本,例如:

      #  [ -x /usr/sbin/weak-modules ] && /usr/sbin/weak-modules --remove-kernel 3.10.0-1160.25.1.el7.x86_64
      注意

      忽略以下错误信息,如果内核包已被删除,就会产生这个错误信息:

      /usr/sbin/weak-modules: line 1081: cd: /lib/modules/<version>/weak-updates: No such file or directory
    3. 从引导装载程序条目中删除旧内核。如果您有多个旧内核,请对每个内核重复此步骤:

      # /bin/kernel-install remove <version> /lib/modules/<version>/vmlinuz

      使用上一步中决定的内核版本替换 version,例如:

      # /bin/kernel-install remove 3.10.0-1160.25.1.el7.x86_64 /lib/modules/3.10.0-1160.25.1.el7.x86_64/vmlinuz
    4. 找到剩余的 RHEL 7 软件包:

      # rpm -qa | grep -e '\.el[67]' | grep -vE '^(gpg-pubkey|libmodulemd|katello-ca-consumer)' | sort
    5. 从 RHEL 8 系统中删除剩余的 RHEL 7 软件包,包括旧的内核软件包和 kernel-workaround 软件包。
    6. 删除剩余的 Leapp 依赖软件包:

      # yum remove leapp-deps-el8 leapp-repository-deps-el8
    7. 删除任何剩余的空目录:

      # rm -r /lib/modules/*el7*
  3. 可选:从系统中删除所有剩余的与升级相关的数据:

    # rm -rf /var/log/leapp /root/tmp_leapp_py3 /var/lib/leapp
    重要

    删除这些数据可能会限制红帽支持调查并故障排除升级后问题的能力。

  4. 禁用在 RHEL 8 上无法安装或使用其软件包的 YUM 存储库。由 RHSM 管理的软件仓库会自动处理。禁用这些软件仓库:

    # yum config-manager --set-disabled <repository_id>

    <repository_id& gt; 替换为存储库 ID。

  5. 将当前内核命令行参数设置为新默认值,以确保将来的内核使用正确的参数更新引导:

    • 对于 IBM Z 架构:

      # BOOT_OPTIONS="$(tr -s "$IFS" '\n' </proc/cmdline | grep -ve '^BOOT_IMAGE=' -e '^initrd=' | tr '\n' ' ')"
      # echo $BOOT_OPTIONS > /etc/kernel/cmdline
    • 对于其他构架:

      # BOOT_OPTIONS="$(tr -s "$IFS" '\n' </proc/cmdline | grep -ve '^BOOT_IMAGE=' -e '^initrd=' | tr '\n' ' ')"
      # grub2-editenv - set "kernelopts=$BOOT_OPTIONS"
  6. 将旧的救援内核和初始 RAM 磁盘替换为当前的内核和磁盘:

    1. 删除现有救援内核和初始 RAM 磁盘:

      # rm /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* 
    2. 重新安装救援内核和相关的初始 RAM 磁盘:

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

      如果您的系统的内核软件包有不同的名称,比如在实时系统上,请使用正确的软件包名称替换 kernel-core

    3. 如果您的系统位于 IBM Z 构架中,更新 zipl 引导装载程序:

      # zipl
  7. 重新检查并重新应用您的安全策略。特别是,需要将 SELinux 模式改为 enforcing。详情请参阅应用安全策略

验证步骤

  1. 验证旧内核是否已从 bootloader 条目中删除:

    # grubby --info=ALL | grep "\.el7" || echo "Old kernels are not present in the bootloader."
  2. 验证已为当前内核创建了之前删除的救援内核和救援初始 RAM 磁盘文件:

    # ls /boot/vmlinuz-*rescue* /boot/initramfs-*rescue* 
    # lsinitrd /boot/initramfs-*rescue*.img | grep -qm1 "$(uname -r)/kernel/" && echo "OK" || echo "FAIL"
  3. 验证救援引导条目是否指向现有救援文件。请查看 grubby 输出:

    # grubby --info $(ls /boot/vmlinuz-*rescue*)