如何将CentOS / RHEL7中的grub2从UUID更改为旧式设备?

与CentOS / RHEL 7相比,有一些变化(与CO / RHEL 6相比)。 其中之一是使用grub2而不是grub

默认情况下,操作系统似乎使用UUID来“查找”引导设备。

是否有一个易于使用receipe来取回设备名称(如/ dev / sda1)?

问题的背景:我打算从模板克隆更多的虚拟机。 Base是具有不同UUID的新(虚拟)磁盘设备。

如果我不能恢复到sda1,我需要将grub.cfg中克隆的UUID更改为新的UUID – 即计划“B”。

2017年10月26日更新

root =的内核参数将被更改为磁盘 – 请参阅下面的Thomas答案。

这部分仍然有问题,由grub2-mkconfig生成:

if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1' 716433ab-9e30-42a7-a272-6c66243499d2 else search --no-floppy --fs-uuid --set=root 716433ab-9e30-42a7-a272-6c66243499d2 fi 

这仍然包含对UUID的search。 如果找不到,启动过程将会出现错误“找不到”或类似的东西。 按下ENTER键后,系统会自动启动。

其余的Q是如何去激活该部分(我没有find禁用feature_platform_search_hint的地方)?

这可以通过将参数添加到/etc/default/grub

 $ echo "GRUB_DISABLE_LINUX_UUID=true" >> /etc/default/grub $ grub2-mkconfig -o /boot/grub2/grub.cfg 

如果你想再次检查结果之前。

 $ grub2-mkconfig | less 

更新

要完全禁用GRUB中的UUID,您需要将该行添加到/ etc / sysconfig / grub中

 $ echo "GRUB_DISABLE_UUID=true" >> /etc/default/grub $ grub2-mkconfig -o /boot/grub2/grub.cfg