default在linux测试中,在/ etc / default / grub中设置GRUB_DISABLE_LINUX_UUID = true不能按预期工作...

我正在使用Debian stretch(9.0),目前稳定.我的主题是AMD64.我的根分区和引导分区是MD RAID 1设备之上的LVM卷组.

根据我对文档的理解,取消注释

GRUB_DISABLE_LINUX_UUID=true

在/ etc / default / grub中应该阻止GRUB2使用/boot/grub/grub.cfg中的UUID.但是,即使在我进行了更改之后,它仍继续使用UUID.

我不确定这是否是我的用户错误,但说明似乎很简单.

另外几条评论.

>还有一个文件/usr/share / grub / default / grub,它有

与/ etc / default / grub相同的内容(相同的md5sum).我不是

确定该文件的重点是什么.

>我希望/usr/sbin / grub-mkconfig包含一个检查

GRUB_DISABLE_LINUX_UUID,但我看不到一个,尽管那个脚本

确实包括GRUB_DISABLE_LINUX_UUID.有人可以向我解释

这个脚本在哪里检查GRUB_DISABLE_LINUX_UUID?

当然,我可以发布更多详细信息.

解决方法:

(这个答案试图解释发生了什么,并提供(可能的)补丁.)

在当前的Debian 9中,似乎有问题的代码在grub-mkconfig_lib第169-182行中.

该错误的一点是,尽管没有被sysadmin /配置告知,安装和启动仍然坚持为启动过程的一部分设置和使用UUID.

可能无法加载grub.cfg.例如它始终在grub-mkconfig_lib中执行grub-probe –target = fs_uuid /;在我们的例子中应该是grub-probe –target = device /或者是特定于代码的,它应该使用$fs_hint,而不是使用fs_uuid再次重做grub_probe

我已经做了一个补丁来禁用在Debian 9中将GRUB_DISABLE_LINUX_UUID配置为true时禁用UUID的生成.它可以在这里工作.请测试一下.

我再次确认有问题的文件是:/usr/share / grub / grub-mkconfig_lib

我写了一个补丁,如果GRUB_DISABLE_LINUX_UUID设置为true,它不包括试图选择基于UUID的root的搜索指令.然后,系统管理员应该了解插入新磁盘时选择此选项的后果.

/usr/share / grub / grub-mkconfig_lib的补丁完成了:

diff -u grub-mkconfig_lib.old grub-mkconfig_lib > grub-mkconfig_lib.patch

或者你可以在这里得到它:

并申请:

cd /usr/share/grub

patch -p0 < grub-mkconfig_lib.patch

基本上,从第169行开始,我添加了新的if和正确的缩进,以禁用UUID的根分区搜索,如果找到具有有效UUID的分区,则UUID将取代设备的选择:

if [ "x${GRUB_DISABLE_LINUX_UUID}" != "xtrue" ] ; then

06003

fi

我测试了它,重新生成了grub配置,更改了UUID,并且它顺利启动,与之前的情况相反,我们将其放入grub中.

PS:这似乎不仅限于Debian.在我将其指向grub-mkconfig_lib之后,我发现了一个关于fedora的相关主题

标签:linux,grub2

来源: https://codeday.me/bug/20190813/1648532.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值