13.04不留任何efibootmgr条目

我从一个闪存驱动器上做了一个13.04的干净安装,但重启后我唯一的uefi启动选项是基本的efi shell条目和闪存驱动器 – 没有13.04的条目。

所以我做的第一件事是使用闪存驱动器启动实时环境,chroot进入13.04安装并使用grub-efi和efibootmgr进行处理。

我注意到的第一件事,复制resolv.conf似乎没有给我在chroot环境中的wifi访问。

第二件事,尝试创建一个新的efibootmgr条目没有做任何事情 – 我尝试了一些虚假条目,但validation始终只显示默认的efi shell条目。

所以我的主要问题是:他们是否改变了有关efibootmgr的任何内容? 有没有其他人设法用uefi启动13.04?

PS: 这几乎显示了我使用的命令,如果这有用的话。 这似乎表明测试版中存在问题。

我听说过某些版本的efibootmgr可能会导致此问题。 您可以尝试在较早版本的Ubuntu中使用efibootmgr ,或者在System Rescue CD等救援系统中使用efibootmgr来绕过此错误,如果这是原因。

如果这不起作用,您可以尝试将ESP上的EFI/ubuntu/grubx64.efi文件复制到EFI/BOOT/bootx64.efi 。 如果没有安装其他操作系统,那应该让它工作。 引导修复工具将自动完成此操作; 即使安装了Windows,它也应该可以工作。

如果您安装了Windows,另一个选择是在Windows中使用bcdedit :启动管理员命令提示符,然后键入bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi 。 (如果您已启用安全启动,则需要激活shim.efishimx64.efi [我不确定它是在Ubuntu中调用哪个,而不是grubx64.efi 。)

3.8系列内核中的错误会阻止EFI变量的创建(至少在许多华硕和技嘉主板上),因此efibootmgr无法创建任何启动选项(实用程序本身只是安静地退出而不显示任何消息,但您可以在dmesg中找到此错误或通过strace efibootmgr)。

不幸的是,Canonical在发布之前没有解决这个问题,即使它已经知道了,它仍然似乎没有运行的内核或efibootmgr会打印正确的错误消息。 我希望这能得到及时修复。 否则我的建议是使用旧版本,例如3.5系列内核在13.04上工作,或者你可以使用12.10 LiveUSB。

打破它的上游内核补丁: http : //lkml.indiana.edu/hypermail/linux/kernel/1303.0/00887.html

我不确定上游是否也已经解决了这个问题,但肯定有讨论。

Ubuntu仍然破碎,相关的错误报告: https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1167622