我买了一台 Surface Pro 3,并在其上安装了 Ubuntu xenial Nightly。我已禁用安全启动,安装后重新启动系统时,它会直接进入 BIOS 屏幕,而无需任何引导加载程序 (grub)。
如果我重新启动 USB 磁盘并从安装菜单中使用 grub,我就可以按照以下 grub 命令序列启动系统。
> c
> ls (hd2,gpt2)
> set root=(hd2,gpt2)
> linux /boot/vmlinuz-4.4.0-2-generic root=/dev/sda2
> initrd /boot/initrd.img-4.4.0-2-generic
> boot
我尝试运行 efibootmgr,它将 Ubuntu 列为第一个启动项。我还尝试通过 PPA 安装 refind,似乎应该工作。
我尝试使用启动修复并得到以下输出的 pastebin。
http://paste.ubuntu.com/14853201/
如果我将“备用系统启动顺序”设置为仅 SSD 或“网络->USB->SSD”,也会出现同样的问题。
如果您能帮助我弄清楚为什么我无法让它加载引导加载程序,我将不胜感激。
答案1
看起来您的 EFI 有问题,忘记了它的设置。我建议您查看固件选项,看看是否有将其选项重置为出厂默认设置的选项。(通常存在这样的选项。)如果有,请使用它,然后尝试再次运行 Boot Repair 或重新安装 rEFInd(以任何方式启动到 Ubuntu 并运行sudo refind-install
)。这里的想法是,当 NVRAM 设置中积累了垃圾时,EFI 有时会“出故障”,而将它们重置为默认值有时会恢复它们。
如果失败,请更详细地查看EFI/Boot
ESP(即 Ubuntu)上的目录。您的 Boot Repair 输出显示此目录存在并包含一个文件。此程序/boot/efi/EFI/Boot
bootx64.efi
应该当所有其他方法都失败时,可以作为后备方法启动,但显然您无法使用 GRUB。目录中的其他文件可能会提示该bootx64.efi
文件是什么——可能是一个配置文件或众所周知的文件名。它可能是EFI/Boot/bootx64.efi
残留的 Microsoft 程序,可以帮助解释一些事情;在这种情况下,删除它可能是合适的。您还可以尝试将 GRUB 或 rEFInd 放在那里——将EFI/ubuntu
或EFI/refind
目录复制到EFI/Boot
,然后将引导加载程序(grubx64.efi
或refind_x64.efi
)重命名为bootx64.efi
。结果应该是一个可以启动的系统。