You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu LTS 16.04更新失败求助:grub-efi-amd64-signed报错EFI目录未找到

解决Ubuntu 16.04更新时grub-efi-amd64-signed的EFI目录找不到问题

嘿,我太懂这种Windows更新搞砸Ubuntu配置的糟心感了!别担心,不用重装系统,咱们几步就能把更新功能救回来。

第一步:定位你的EFI分区

首先得找到你的EFI系统分区,Windows更新很可能打乱了它的挂载配置。运行下面的命令:

sudo fdisk -l

在输出里找TYPE为EFI System的分区,通常是/dev/sda1或者类似的设备名,记下来这个路径(比如/dev/sda1)。

第二步:检查EFI分区是否挂载到/boot/efi

Ubuntu更新grub包时需要访问/boot/efi目录,要是这个分区没挂载就会报错。运行命令确认:

mount | grep /boot/efi

如果没有任何输出,说明分区没挂载,这就是问题根源!

第三步:手动挂载EFI分区

先确保/boot/efi目录存在(一般默认都有),然后用刚才找到的分区路径挂载:

sudo mount /dev/sda1 /boot/efi

替换/dev/sda1为你实际的EFI分区路径。挂载后再运行一次mount | grep /boot/efi,看到输出就说明挂载成功了。

第四步:修复grub相关包并重新更新

现在挂载好了EFI分区,咱们重新安装出问题的包,再更新grub:

sudo apt-get install --reinstall grub-efi-amd64-signed
sudo update-grub

完成后再试试运行更新命令:

sudo apt-get dist-upgrade

这时候应该不会再报EFI目录找不到的错误了。

第五步:永久修复挂载配置(避免下次重启再出问题)

为了防止重启后又出现同样的问题,咱们把EFI分区的挂载信息写到/etc/fstab里:

  1. 先获取EFI分区的UUID:
sudo blkid /dev/sda1

找到输出里的UUID=XXXX-XXXX(比如UUID=ABC1-DEF2),复制这个UUID。
2. 编辑fstab文件:

sudo nano /etc/fstab

在文件末尾添加一行:

UUID=ABC1-DEF2 /boot/efi vfat defaults 0 1

替换ABC1-DEF2为你刚才复制的UUID。按Ctrl+O保存,回车确认,再按Ctrl+X退出编辑器。
3. 测试配置是否生效:

sudo mount -a

如果没有报错,说明配置没问题,下次重启后EFI分区会自动挂载。

为什么会出现这个问题?

Windows更新有时候会重置EFI分区的权限或者修改分区表的标记,导致Ubuntu自动挂载EFI分区的配置失效。虽然GRUB还能正常引导系统(因为引导文件已经在EFI分区里了),但更新grub签名包时需要读写/boot/efi目录,找不到就会触发报错。

内容的提问来源于stack exchange,提问作者Arto Makkonen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:31:54