공백이 포함된 커널 매개변수를 추가하는 방법은 무엇입니까 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
- 데비안 -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550319
- 업스트림 -http://savannah.gnu.org/bugs/?27641
관련된 심각한 문제는 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와 관련된 것으로 보이지 않습니다.