/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

linuxgrub.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ここで文書を削除するようにするシェルコードの参照を過度に使用することだけです。

これはうまくいきます。

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に関連しているようには見えません。

関連情報