/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와 관련된 것으로 보이지 않습니다.

관련 정보