update-grub 不更新 /boot/efi/EFI/ubuntu/grub.cfg

bla*_*ish 7 boot grub2 uefi 18.04

(编辑 3:用户错误。在调试启动问题时复制到 /boot/efi/EFI/ubuntu/grub.cfg)

在 UEFI 安全启动模式下安装最近发布的 Ubuntu 18.04 服务器后,安装程序已将 grub.cfg 放在此位置:

  • /boot/efi/EFI/ubuntu/grub.cfg

这与选择 Filesystem: manual partition 时创建的表相匹配,该分区将引导分区挂载在/boot/efi (/dev/sda1)。

但是,sudo update-grubsudo update-grub2不会覆盖 grub 配置,而是更新/boot/grub/grub.cfg,即不在引导分区上的文件。

问题 1:update-grub、update-grub2 等是否已被某些新程序取代?问题 2:如果不是,这是要提交的错误吗?

编辑:困惑++。

  • 计算机 1,实际硬件,安装时手动分配和小更新,例如sudo apt install tboot,问题可以重现。

  • 电脑 2,vmware 镜像:vanilla 安装,问题无法重现。

两台计算机都是 UEFI 安全启动并且具有相同/相似的分区。不同的 grub.cfg 经历相同的更新行为,但在 vmware 映像上,grub 尊重文件/boot/grub/grub.cfg,硬件安装 grub 尊重/boot/efi/EFI/ubuntu/grub.cfg

编辑2:

  • 计算机 1 现在已经通过手动文件系统分区重新安装,然后再次使用原始分区(250GB 磁盘,120GB 已用,其余空闲)。无论是重新安装可能会重现原来的问题,所以基本上现在的问题已经一去不复返了。计算机上的所有三个安装都来自同一个 ISO/USB 记忆棒。

Gre*_*reg 10

只是为了关闭此查询的循环 - 我需要更新,/boot/efi/EFI/ubuntu/grub.cfg因为我更改了目录的位置/boot(UUID 更改)。 update-grub不更新该文件,但是

sudo dpkg-reconfigure grub-efi-amd64
Run Code Online (Sandbox Code Playgroud)

在您回答了一些问题后,将触发重写。

  • 这很可能取决于您的安装方式 - 在较新的计算机/安装上,该软件包的其他变体可能更合适 - 例如“grub-efi-amd64-signed”。检查 `dpkg -l "*grub-efi*"` (2认同)

dpb*_*dpb 5

我也遇到了这个。要更新您的 EFI grub.cfg,您需要执行以下操作:

grub-install --efi-directory=/boot/efi
Run Code Online (Sandbox Code Playgroud)

如果您的 EFI 安装在/boot/efi.


bla*_*ish 1

根本原因:用户错误。

我在尝试调试某些 grub 设置时不小心将 /boot/grub/grub.cfg 复制到 /boot/efi/EFI/ubuntu/grub.cfg ,但没有生效。从那时起,我的系统上的行为就不再标准了。

感谢 oldfred 帮助我认识到原来的 /boot/efi/EFI/ubuntu/grub.cfg 只是一个引用 /boot/grub.cfg 的三行文件。