grub2-mkconfig 不会在 RHEL 9 上传播重命名的根逻辑卷

grub2-mkconfig 不会在 RHEL 9 上传播重命名的根逻辑卷

在 RHEL 9.3 上,我已将逻辑卷 (LV) 重命名/dev/lvm01/root/dev/lvm01/root.vol.我尽一切努力使新名称正确识别:

  • 更改/etc/fstab条目
  • 重新加载系统配置
  • 重新安装/

我还修改了/etc/default/grub条目:

GRUB_CMDLINE_LINUX="root=/dev/mapper/lvm01-root.vol ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/lvm01-swap.vol rd.lvm.lv=lvm01/root.vol rd.lvm.lv=lvm01/swap.vol"

然后我希望它能grub2-mkconfig -o /boot/grub2/grub.cfg完成剩下的工作并重新启动。但系统最终出现了 dracut 消息,表明未找到根分区(或类似的信息)。

经过短暂的调查,我意识到内核参数没有按预期进行修改。手动更改有助于启动操作系统。有趣的是/boot/grub2/grub.cfg更新了。但没有更新的是/boot/loader/entries/*文件。这就是问题所在。

答案1

好吧,临时解决方案似乎是

# grub2-mkconfig --update-bls-cmdline -o /boot/grub2/grub.cfg

但它只是固定了实际状态。内核的更新仍然使用之前的LV名称。

对内核更新也有帮助的唯一解决方案似乎是grubby

# grubby --update-kernel=ALL --args="root=/dev/mapper/lvm01-root.vol ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/lvm01-swap.vol rd.lvm.lv=lvm01/root.vol rd.lvm.lv=lvm01/swap.vol"

即使在内核更新之后,新的conf文件的内容看起来也/boot/loader/entries/<machine-id>-<kernel version>.conf不错并且系统启动也很好。

事实上,问题可能与这张RH票有关,这张票已经开了相当长一段时间了(但我不确定): https://issues.redhat.com/browse/RHEL-4313

相关内容