Grub에서 구문 오류를 수정하는 방법은 무엇입니까?

Grub에서 구문 오류를 수정하는 방법은 무엇입니까?

Grub 설정을 업데이트하고 싶습니다.

다음 메시지를 받았습니다.

# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img
Found Windows 10 on /dev/sda1
error: syntax error.
error: Incorrect command.
error: syntax error.
Syntax error at line 178
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.

이곳은 과거의 휴지통이다/boot/grub/grub.cfg.new

그 안에 있는 파일을 보려고 했지만 /etc/grub.d/*디버깅에 실패했습니다.

답변1

향후 디버깅에 도움을 드리기 위해 제가 저지른 오류에 대한 귀하의 검색을 기록했습니다.

문제는 178번째 줄에 있습니다.

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
 
 
 
if [ "${grub_platform}" == "pc" ]; then
fi                                            #<------that is line 178
### END /etc/grub.d/40_custom ###

그러니 분명히 문제가 있는 것입니다 40_custom.

이 문서들에 관해서는 다음과 같이 말합니다.

GRUB 전문가가 아니고 변경 사항의 효과를 이해하지 않는 한 이러한 파일을 수정해서는 안 됩니다. 그렇더라도 항상 원본 작업 grub.cfg 파일의 백업 복사본을 보관해야 합니다. 특정 파일 40_custom 및 41_custom은 GRUB 구성에 대한 사용자 수정을 생성하는 데 사용됩니다. 이러한 파일에 대한 변경 사항의 결과를 이해하고 원본 grub.cfg 파일의 백업을 유지해야 합니다.

따라서 이는 아마도 이 파일에 추가한 내용일 것입니다.

숙련된 쉘 스크립터라면 이 사실을 알아차렸을 것입니다.

if [ "${grub_platform}" == "pc" ]; then 
    :
fi

구문 오류를 수정합니다. 나는 당신의 의도가 무엇인지 모르기 때문에 "구문" 오류를 명시적으로 지적했습니다.

/etc/grub.d/40_custom가 아닌 (편집 중인 파일)에서 이 설정을 변경하게 되지만 grub.cfg해당 파일의 주석을 보면 명확하게 알 수 있습니다.

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

관련 정보