如何添加带有空格的内核参数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 中记录的错误。有报道称:
- 乌班图-https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/445952
- Debian -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550319
- 上游 -http://savannah.gnu.org/bugs/?27641
严重的相关问题似乎是,即使您在 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 无关。