更新期间发生 GRUB 错误。在生成的 GRUB 配置文件中检测到语法错误

更新期间发生 GRUB 错误。在生成的 GRUB 配置文件中检测到语法错误

此错误最初发生在 apt 升级期间,但我设法使用以下方法重现了它update grub

sudo update-grub
[sudo] password for me: 
Sourcing file `/etc/default/grub'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-72-generic
Found initrd image: /boot/initrd.img-4.15.0-72-generic
Found linux image: /boot/vmlinuz-4.15.0-60-generic
Found initrd image: /boot/initrd.img-4.15.0-60-generic
Found linux image: /boot/vmlinuz-4.15.0-20-generic
Found initrd image: /boot/initrd.img-4.15.0-20-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
error: syntax error.
error: Incorrect command.
error: syntax error.
Syntax error at line 145
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.

我仔细检查了/etc/default/grub/etc/grub.d/* 文件,没有发现任何明显的错误。

在搜索信息的过程中我发现https://unix.stackexchange.com/questions/209152/syntax-error-in-grub-cfg-on-update-grub-grub-2-memtest86但那里出色的故障排除步骤并没有为我带来解决方案。遗憾的是,我在解决问题之前没有备份 /boot/grub/grub.cfg.new,因此无法提供副本,我只记得错误报告在第 145 行,而我在该行区域的 if - fi 代码块中没有看到任何问题。

答案1

尽管出现了错误,我还是能够访问系统,因此我无需 chroot 进入系统,如果您无法启动系统,则 chroot 是必需的。我所做的就是清除并重新安装 grub,这样就成功了。

我使用的步骤如下:

  1. 我确认我已连接到互联网sudo apt-get update # ***
  2. 我清除了 grub-pc 和 grub-commonsudo apt-get purge grub-pc grub-common
  3. 我阅读了有关删除引导加载程序的警告,点击TAB突出显示“OK”并按下ENTER
  4. 我发出了命令apt-get install grub-common grub-pc,当出现提示时,我点击TAB突出显示“”,然后按下ENTER
  5. 当出现设备选项时,我使用 UP/DN 键来选择正确的驱动器(sdX)而不是分区。

    我确保安装驱动器[] /dev/sdX 旁边有一个星号(在我的情况下:[] /dev/sda )。如果没有,请突出显示它并按空格键选择它。然后我点击突出TAB显示“确定”,然后按ENTER

    我通过发出命令测试了安装是否完成并且正常工作sudo update-grub,并且一切都按预期进行,没有错误。

资料来源:https://ubuntuforums.org/showthread.php?t=1581099

相关内容