VirtualBox仅在UEFI Interactive shell中引导
我使用UEFI在VirtualBox中安装了Ubuntu 14.10。 但现在我重新启动了这个操作系统,现在它启动到UEFI Interactive Shell v2.0。 我怎样才能再次正常启动进入Grub?
我遇到了同样的问题,发现如果我在交互式shell中发出以下命令,虚拟机将启动进入Ubuntu:
fs0:\efi\ubuntu\grubx64.efi
(使用反斜杠,正斜杠不起作用.UEFI交互式shell中的命令不区分大小写。)
我的VirtualBox版本是4.3.20 r96997,Ubuntu版本是14.10 AMD64。 我不知道为什么会这样,以及如何解决它。 刚发现这不优雅,仍然有点麻烦的解决方法。
更新1:
我读了这篇文章 ,追踪到了一个错误报告 ,发现了一个更好的解决方法 。
更新2:
Update 1中的解决方法失败。 我关闭了虚拟机,启动了它。 它再次启动到UEFI Interactive shell。 据此,问题可能是由VirtualBox错误造成的。 我仍在寻找进一步的解决方案。
更新3:
终于找到了解决方案。 根据这个 ,你需要手动创建一个startup.nsh脚本。 除了上述post中的方法,你也可以这样做:
$ sudo mount /dev/sda1 /mnt $ cd /mnt $ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"
我有同样的问题( 启用EFI因为我无法让它运行否则)。 奇怪; 虽然安装Ubuntu 14.04.2没有错误,但安装Kubuntu 15.04无法完成。 当被要求删除DVD时,它在最后冻结。 重置后,它启动正常,但在断电后它带来了shell。
所以,要避免shell类型:
FS0:
编辑startup.nsh
并在打开的窗口中添加以下两行:
FS0:
\ EFI \ Ubuntu的\ grubx64.efi
按Ctrl + s , 按Enter键保存, 按Ctrl + q退出。 然后重启VM。
或者,您始终可以使用这两行来退出shell并启动操作系统。 但是第二次重新启动时,你将再次进入shell并避免它编辑startup.nsh
。
另一个选项是取消选中VM的“主板”下的“启用EFI”扩展function选项。
如果这个问题出现在Gnome Ubuntu 12.04.2 amd64bit安装中。
在必须更改硬件加速设置后发现了这一点。 我只剩下VT-x / AMD-V,启用了嵌套分页。 我的VM有2个CPU,8GB RAM供参考。
取消检查后,问题完全被绕过,Gnome Ubuntu启动没有问题。 在Windows 7 64位主机上运行Virtual Box 4.3.18 r96516。
将grubx64.efi
复制到/EFI/boot/bootx64.EFI
VirtualBox使用bootx64.efi
来启动。
参考: Archlinux Virtualbox wiki
我可以通过将virtualbox中的cdrom设备从IDE更改为SATA来解决此问题。 我删除了设备配置中虚拟cdrom驱动器的标准映射。
只需将cdrom设备添加到用于安装介质的现有SATA控制器即可。
瞧,EFI没有其他问题。
为此你需要像下面这样写:
fs0: cd EFI cd ubuntu grubx64
如果你以任何其他方式写它不会工作,这就是我如何工作。
另一项工作:
在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交互式shell中。
这就是我修复启动的方法:
首先,我发现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
就是这样,系统将正确启动。
我最近遇到了这个问题。 请检查您的虚拟操作系统设置。 右键单击虚拟操作系统 – >系统 – >扩展function – >启用EFI(取消选中此项)。
在VirtualBox5中使用UEFI安装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条目:
sudo apt-get install grub-efi-amd64-signed shim-signed sudo update-grub