/etc/default/grub 语法错误

/etc/default/grub 语法错误

如何添加带有空格的内核参数GRUB_CMDLINE_LINUX_DEFAULT?例如当我这样做时:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_os_name=\"Microsoft Windows XP\""

其次是

grub-mkconfig -o /boot/grub/grub.cfg

linux我在 grub.cfg 中得到以下行:

linux /vmlinuz-linux root=UUID=<long id> rw quiet acpi_os_name="Microsoft Windows XP"

如果我使用此 grub.cfg 启动,我会在启动过程中得到以下输出:

/init: eval: line 1: syntax error: unterminated quoted string

如果我删除acpi_os_name=\"Microsoft Windows XP\"一切都像以前一样。然而,我这样做的原因是我的笔记本电脑的 ACPI 风扇问题。所以我遵循这篇文章是为了让风扇正常工作:

https://wiki.archlinux.org/index.php/DSDT

编辑0:

的输出uname -s -r -v为:

Linux 3.13.8-1-ARCH #1 SMP PREEMPT Tue Apr 1 12:19:51 CEST 2014

答案1

这是/曾经是 GRUB2 中记录的错误。有报道称:

严重的相关问题似乎是,即使您在 GRUB 声称的内核命令行上显示了引号,它们也没有得到尊重。然而,这个问题现在似乎已在上游得到修复,现在剩下的就是在生成grub.cfg文件的 shell 代码中过度使用引用剥离此处文档。

如果你这样做,它应该会起作用:

GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_os_name=\\\"Microsoft Windows XP\\\""

或者

GRUB_CMDLINE_LINUX_DEFAULT='quiet acpi_os_name=\"Microsoft Windows XP\"'

更新

至少从 GRUB 2.00 及更高版本开始不需要额外的引用,上面的问题似乎与 GRUB 无关。

相关内容