在 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