Red Hat Training

A Red Hat training course is available for RHEL 8

15.2. 使用 Boom 升级到另一个版本

除了 Boom 外,升级过程中还使用以下 Red Hat Enterprise Linux 组件:

  • 逻辑卷管理器 (LVM)
  • GRUB 2 引导装载程序
  • Leapp 升级工具

这个步骤描述了如何使用 boom 命令从 Red Hat Enterprise Linux 7 升级到 Red Hat Enterprise Linux 8。

先决条件

  • 安装 boom 软件包:

    # yum install lvm2-python-boom

    确保 lvm2-python-boom 软件包的版本至少为 boom-0.9 (最好是 boom-1.2)。

    注意

    如果要在 Red Hat Enterprise Linux 8 中安装 boom 软件包,请执行以下命令:

    # yum install boom-boot
  • 快照必须有足够的空间。使用以下命令在卷组和逻辑卷中查找可用空间:

    # vgs
    VG  #PV  #LV  #SN  Attr  VSize    VFree
    rhel 4 2 0 wz--n- 103.89g 29.99g
    
    # lvs
    LV     VG    Attr     LSize  Pool Origin Data% Meta% Move Log Cpy%Sync Convert
    root rhel -wi-ao--- 68.88g
    swap rhel -wi-ao--- 5.98g

    在这里,rhel 是系统的卷组,rootswap 是系统逻辑卷。

  • 查找所有挂载的逻辑卷:

    # mount | grep rhel
    
    /dev/mapper/rhel-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    注意

    如果存在多个条目,且附加条目的挂载点包括 '/usr' 或 '/var',则无法遵循以上步骤而不执行超出这个用户权限的附加步骤。

  • 已安装 Leapp 软件包并启用软件存储库。如需更多信息,请参阅为升级准备 RHEL 7 系统部分,以下载升级所需的软件包。

流程

  1. 创建您的 root 逻辑卷快照:

    • 如果您的 root 文件系统使用精简配置,请创建一个精简快照:

      在创建精简快照时,不要定义快照大小。从精简池中分配快照。

      # lvcreate -s rhel/root -n root_snapshot_before_changes

      在这里:

      • -s 用于创建快照
      • rhel/root 是逻辑卷中复制的文件系统
      • -n root_snapshot_before_changes 是快照的名称
    • 如果您的 root 文件系统使用 thick 置备,请创建一个 thick 快照:

      在创建粘性快照时,定义可在升级过程中保存所有更改的快照大小。

      # lvcreate -s  rhel/root -n root_snapshot_before_changes -L 25g

      在这里:

      • -s 用于创建快照
      • rhel/root 是要复制的文件系统
      • -n root_snapshot_before_changes 是快照的名称
      • -L 25g 是快照大小。这个快照必须可以保存升级过程中的所有更改

        重要

        创建快照后,不会包含任何附加系统更改。

  2. 创建配置集:

    # boom profile create --from-host --uname-pattern el7
    注意

    如果要在 Red Hat Enterprise Linux 8 中创建 boom 配置集,使用 el8 作为 uname-pattern。

  3. 使用原始引导镜像的备份副本创建原始系统的快照引导条目:

    1. 对于 boom-1.2 或更高版本:

      # boom create --backup --title "Root LV snapshot before changes" --rootlv rhel/root_snapshot_before_changes

      在这里:

      • --title Root LV snapshot before changes 是引导条目的名称,它会在系统启动期间显示在列表中
      • --rootlv 是与新引导条目对应的根逻辑卷
    2. 对于 boom-1.1 或更早版本:

      # cp /boot/vmlinuz-$(uname r) /boot/vmlinuz$(uname -r).bak
      
      # cp /boot/initramfs-$(uname r).img /boot/initramfs$(uname -r).img.bak
      
      # boom create -title "Root LV snapshot before changes" --rootlv rhel/root_snapshot_before_changes --linux /boot/vmlinuz$(uname r).bak --initrd /boot/initramfs$(uname -r).img.bak

      如果您第一次执行 boom create 命令,则会显示以下消息:

      WARNING - Boom configuration not found in grub.cfg
      
      WARNING - Run 'grub2-mkconfig > /boot/grub2/grub.cfg' to enable

      在 GRUB 2 中启用 Boom:

      # grub2-mkconfig > /boot/grub2/grub.cfg
  4. 使用 Leapp 升级到 Red Hat Enterprise Linux 8:

    # leapp preupgrade

    检查和解决 leapp preupgrade 命令报告中指示的任何块器。

  5. 解决预升级报告中标识的阻塞者后,使用 --reboot 选项重新运行 upgrade 命令:

    # leapp upgrade --reboot

    这个命令重启到 leapp 工具创建的升级引导条目,并执行到 Red Hat Enterprise Linux 8 的原位升级。reboot 参数会在升级过程后启动自动系统重启。

    在重启过程中,GRUB 2 屏幕会显示:

    GRUB2 显示
    注意

    如果您在 Red Hat Enterprise Linux 8 系统中,则 GRUB2 引导屏幕中的 Snapshots 子菜单不可用。

验证步骤

  • 选择 RHEL Upgrade Initramfs 条目并按 ENTER。继续升级并安装新的 Red Hat Enterprise Linux 8 RPM 软件包。升级完成后,系统会自动重启,GRUB 2 屏幕会显示升级以及可用系统的旧版本。升级的系统版本是默认选择。

    在新版本和旧版本间切换

    另外,如果存在创建的 Root LV snapshot before changes 引导项,它会在升级前提供对系统状态的即时访问。