我在带有UEFI的VirtualBox中安装了Ubuntu 14.10。但是现在我重新启动了该操作系统,现在可以启动到UEFI Interactive Shell v2.0中了。如何再次正常启动进入Grub?
efibootmgr
在关闭后也会丢失(尽管它们保持在重新启动状态)。
我在带有UEFI的VirtualBox中安装了Ubuntu 14.10。但是现在我重新启动了该操作系统,现在可以启动到UEFI Interactive Shell v2.0中了。如何再次正常启动进入Grub?
efibootmgr
在关闭后也会丢失(尽管它们保持在重新启动状态)。
Answers:
我遇到了同样的问题,发现如果我在交互式外壳程序中发出以下命令,虚拟机将启动到Ubuntu中:
fs0:\efi\ubuntu\grubx64.efi
(使用反斜杠,正斜杠不起作用。UEFI交互式外壳程序中的命令不区分大小写。)
我的VirtualBox版本是4.3.20 r96997,Ubuntu版本是14.10 AMD64。我不知道为什么会这样以及如何解决。只是发现这并不优雅,但仍然有些麻烦的解决方法。
更新1:
我读了这篇文章,找到了一个错误报告,发现了一个更好的解决方法。
更新2:
更新1中的解决方法失败。我关闭了虚拟机,然后启动了它。然后它再次启动到UEFI Interactive Shell中。根据此,该问题可能是一个错误的VirtualBox引起。我仍在寻找进一步的解决方案。
更新3:
终于找到了解决方案。根据这个,你需要手动创建一个startup.nsh脚本。除了上述文章中的方法,您还可以执行以下操作:
$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
\EFI\boot\bootx64.efi
到对我来说似乎是比浪费5个soconds for startup.nsh更好的解决方案。 。注意:可以在引导过程中按F12或exit
在EFI Shell上输入以访问固件设置并修改所有内容,包括终端分辨率,但这些修改不会永久存储。
refind
修复EFI
edit startup.nsh
。+1它正在寻找\EFI\boot\bootx64.efi
跳过5秒。
我遇到了同样的问题(启用了EFI,因为我无法让它运行)。奇怪; 尽管Ubuntu 14.04.2的安装没有错误,但是Kubuntu 15.04的安装未能完成。当要求删除DVD时,它最终冻结了。重置后,它可以正常启动,但是在掉电后,它会启动外壳。
因此,避免使用shell类型:
fs0:
编辑startup.nsh
并在打开的窗口中添加以下两行:
FS0:
\ EFI \ ubuntu \ grubx64.efi
按Ctrl+ s和Enter保存并按Ctrl+ q退出。然后重启虚拟机。
另外,您始终可以使用这两行退出Shell并引导OS。但是第二次重新启动时,您将再次进入shell并避免对其进行编辑startup.nsh
。
ls
在UEFI Shell中使用,找出机器的正确路径。例如ls FS0:\EFI
,然后在CentOS上ls FS0:\EFI\redhat
了解路径FS0:\EFI\redhat\grub.efi
。
FS0:\EFI\Slackware\elilo.efi
。
复制grubx64.efi
到/EFI/boot/bootx64.EFI
VirtualBox可以使用它bootx64.efi
来启动。
参考:Archlinux Virtualbox Wiki
另一个解决方法:
在uefi shell中,使用以下命令临时引导至ubuntu:
fs0:
cd EFI
cd ubuntu
grubx64
然后,在ubuntu中,如下所示编辑startup.nsh文件:
打开终端Ctrl+ Alt+ T。
类型:
sudo nano /boot/efi/startup.nsh
输入密码。
现在,使用del或Backspace键删除其中的所有内容。
然后输入以下内容:(FS0
-是数字0
,而不是字母O
)
FS0:
\EFI\ubuntu\grubx64.efi
现在按Ctrl+ O(即字母O)。
然后,Alt+ D(将文本更改为msdos格式)。
然后按Enter
。
然后Ctrl+ X。
现在重启。
sudo reboot
现在一切都很好。
使用启用了EFI的Ubuntu 16.04.4,并在启动虚拟机时发现它不会启动,而是停留在EFI交互式外壳中。
这是我固定启动的方式:
首先,我发现grubx64.efi位于BLK2中,因此一次启动时,我只在交互式shell中键入了以下内容:
BLK2:/EFI/ubuntu/grubx64.efi
中提琴,Ubuntu已启动并正在运行。
我打算永久解决此问题,一旦系统启动,我在/boot/efi/startup.nsh中回显以下行。
sudo echo 'BLK2:/EFI/ubuntu/grubx64.efi' > /boot/efi/startup.nsh
就是这样,系统将正确启动。
在使用UEFI在VirtualBox5中安装Kubuntu15.10之后,VM重启失败。
添加线
FS0:\ EFI \ ubuntu \ grubx64.efi在UEFI-Shell中没有帮助。
以及在chroot环境中在Kubuntu15.10中创建新的startup.nsh文件的解决方案,
sudo echo'\ EFI \ ubuntu \ grubx64.efi'> startup.nsh也没有任何改善。
我找到了解决方案:
问题是,目录/ boot / efi / EFI / ubuntu和文件grubx64.efi不存在。
引导Live CD并更改为chroot环境后,我安装了丢失的数据包并使用以下命令创建所需的NVRAM条目:
须藤apt-get install grub-efi-amd64-signed shim-signed 须藤更新
efibootmgr
或通过重新安装grub 来自动添加),以便它可以立即重新启动Ubuntu。