Debian

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

  • December 11, 2019

當我update-grub2在我的 Debian Buster 伺服器上執行時,它不是創建 agrub.cfg它而是創建一個grub.cfg.new,即使grub.cfg它不存在。

正因為如此,我的機器啟動到一個損壞的 grub 中,因為它找不到grub.cfg.

有沒有辦法告訴update-grub2創建grub.cfg而不是grub.cfg.new.

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

你可以grub-mkconfig -o /boot/grub2/grub.cfg改用。

引用自:https://unix.stackexchange.com/questions/554935