当我update-grub2
在 Debian Buster 服务器上运行时,grub.cfg
它不是创建 ,而是创建grub.cfg.new
,即使grub.cfg
不存在。
因此,我的机器启动时会出现损坏的 grub,因为它找不到grub.cfg
.
有没有办法告诉update-grub2
creategrub.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