从 Centos 7.9 升级到 AlmaLinux 8.5 后出现 GRUB 错误

从 Centos 7.9 升级到 AlmaLinux 8.5 后出现 GRUB 错误

在测试升级我们正在运送软件的其中一台虚拟机时,我遇到了一个问题,在将操作系统从 CentOS 7.9 升级到 AlmaLinux 8.5 的过程中,在最后一次重启之前(从 ELevate Intramfs 重启后),机器无法启动。这是来自 GRUB 的错误消息:

error: symbol 'grub_calloc' not found

现在我做了一些谷歌搜索,似乎这可能是由于 GRUB 寻找其源中不存在的功能而导致的,这是由于错误的更新造成的。

在升级之前我确实需要处理两个抑制剂。

  • 必须停止 NFS,并卸载 /proc/fs/nfsd
  • 必须将两个弃用的驱动程序(mptctl、mptbase)列入黑名单 - 我在 /etc/default/grub 中通过添加module_blacklist=mptctl,mptbase以下内容将其列入黑名单GRUB_CMDLINE_LINUX

考虑到这一点,我从 Alma ISO 启动来拯救系统,并在 上重新安装了 grub sda,解决了问题,机器启动并完成升级到 AlmaLinux 8.5

我有恢复的方法,现在我想知道怎样才能彻底阻止这种情况的发生

leapp-report 中有一个永久条目,指出 GRUB 核心不会在旧版 (BIOS) 系统上更新,我相信这是我遇到的问题。我在 Red Hat 论坛上找到了一个公认的解决方案,建议如果您安装了 GRUB2(我在该 VM 上安装了),这应该不是问题。

Risk Factor: high
Title: GRUB core will be updated during upgrade
Summary: On legacy (BIOS) systems, GRUB core (located in the gap between the MBR and the first partition) does not get automatically updated when GRUB is upgraded.

我不知道它是否会改变一些事情,但是虚拟机上配置了 RAID 阵列:

sda                    8:0    0   120G  0 disk
├─sda1                 8:1    0   500M  0 part
│ └─md0                9:0    0   499M  0 raid1 /boot
└─sda2                 8:2    0 119.5G  0 part
  └─md1                9:1    0 119.5G  0 raid1
    ├─rootvg-lv_root 253:0    0    40G  0 lvm   /
    ├─rootvg-lv_swap 253:1    0   7.9G  0 lvm   [SWAP]
    └─rootvg-lv_home 253:2    0  71.6G  0 lvm   /home
sdb                    8:16   0   120G  0 disk
├─sdb1                 8:17   0   500M  0 part
│ └─md0                9:0    0   499M  0 raid1 /boot
└─sdb2                 8:18   0 119.5G  0 part
  └─md1                9:1    0 119.5G  0 raid1
    ├─rootvg-lv_root 253:0    0    40G  0 lvm   /
    ├─rootvg-lv_swap 253:1    0   7.9G  0 lvm   [SWAP]
    └─rootvg-lv_home 253:2    0  71.6G  0 lvm   /home
sr0                   11:0    1  1024M  0 rom

我真的很想知道是否可以防止这种情况发生,因为我希望在许多具有类似配置的机器上执行升级。

相关内容