Grub 在其设置中错误地转义了 $ 字符

Grub 在其设置中错误地转义了 $ 字符

不确定我在哪里犯了错误,但我无法$正确退出/etc/default/grub。我在 Ubuntu MATE 18.04 上。这是我所做的:

在控制台中我通过调用编辑confid

sudo mcedit /etc/default/grub

我添加memmap参数以便字符串看起来像这样

GRUB_CMDLINE_LINUX_DEFAULT="quiet memmap=3M\$11992M"

然后调用sudo update-grub。当我重新启动系统时,它会在启动时挂起。进入 grub 设置编辑器从启动菜单显示如下 Linux 参数字符串

quiet memmap=3M$11992M

注意缺少反斜杠。如果我按 F10 启动,它会再次挂起。因此我再次重新启动并在启动编辑器中将此字符串编辑为

quiet memmap=3M\$11992M

然后按下 F10 键即可启动。因此感觉设置文件几乎被取消转义了两次。

我错过了什么?

答案1

@freddy 正确指出我可以使用单引号。但在我阅读此回复之前,我设法通过输入以下内容解决了该问题

quiet memmap=3M\\\$11992M

看起来 grub 对字符串进行了两次转义。

答案2

对于像我这样的新人来说这只是一个提示。

我正在使用 Fedora 36,默认情况下 GRUB2 使用 BootLoaderSpec(BLS)。BLS 使用blscfg命令读取.conf中的文件/boot/loader/entries/。似乎无论在 前面添加$多少个, blscfg 总是会吃掉。\

因此,要使@expert的解决方案起作用,请通过设置禁用BLS GRUB_ENABLE_BLSCFG=false,然后通过/etc/default/grub生成一个新的grub.cfggrub2-mkconfig -o /boot/grub2/grub.cfg

相关内容