update-grub2 创建 grub.cfg.new 而不是 grub.cfg

update-grub2 创建 grub.cfg.new 而不是 grub.cfg

当我update-grub2在 Debian Buster 服务器上运行时,grub.cfg它不是创建 ,而是创建grub.cfg.new,即使grub.cfg不存在。

因此,我的机器启动时会出现损坏的 grub,因为它找不到grub.cfg.

有没有办法告诉update-grub2creategrub.cfg而不是grub.cfg.new.

答案1

你可以用grub-mkconfig -o /boot/grub2/grub.cfg它代替。

答案2

grub-mkconfig -o /boot/grub/grub.cfg使用 Ansible 运行,它创建了相同的 .new 扩展名。

但是当我使用时grub-mkconfig > /boot/grub/grub.cfg,它运行成功并创建了grub.cfg

-o可能不一样>

查看@oldfred评论后的源代码,发现扩展是在或文件.new中出现错误时创建的。看/etc/default/grub/etc/grub.d/*这里

if test "x${grub_cfg}" != "x" ; then
  if ! ${grub_script_check} ${grub_cfg}.new; then
    # TRANSLATORS: %s is replaced by filename
    gettext_printf "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
%s file attached." "${grub_cfg}.new" >&2
    echo >&2
    exit 1
  else
    # none of the children aborted with error, install the new grub.cfg
    mv -f ${grub_cfg}.new ${grub_cfg}
  fi
fi

相关内容