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.efi
或shimx64.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