Answers:
EFI Shell是一种命令行工具,其概念与Linux / Unix / OS X中的bash或Windows中的命令提示符窗口类似。它使您可以查看,删除,编辑和重命名文件,以更新EFI引导管理器条目,等等。您可以通过键入从shell退出exit
;但是,对于VirtualBox,这可能会带您进入一个EFI菜单,该菜单可能同样令人困惑。
如果您在VirtualBox会话中安装了操作系统,则很有可能在EFI系统分区(ESP)上安装了引导加载程序。大多数操作系统都将这些引导加载程序注册到固件中,固件会记住它们并自动引导它们。VirtualBox的一个怪癖是它通常会忘记这些引导管理器条目。结果是,默认情况下,VM会启动到EFI Shell中。有几种方法可以解决此问题,包括:
fs0:
访问第一个文件系统,通常是ESP。cd EFI\{osname}
,其中{osname}
OS是其引导加载程序安装目录的名称。(您尚未说出已安装的操作系统,所以我不确定那是什么。键入ls EFI
将向您显示其中的内容。)grubx64.efi
。对于Windows,它是bootmgfw.efi
。startup.nsh
在ESP的根目录中)使上述过程自动化。EFI\BOOT\bootx64.efi
,即后备文件名:
fs0:
访问第一个文件系统,通常是ESP。mv EFI\{osname} EFI\BOOT
以重命名引导加载程序所在的目录。如上所述,您必须确定自己{osname}
是什么。mv EFI\BOOT\{loadername.efi} EFI\BOOT\bootx64.efi
,其中{loadername.efi}
是引导加载程序的名称,例如grubx64.efi
大多数Linux安装。就个人而言,我最常使用的解决方案是将引导加载程序从操作系统的默认名称重命名为EFI\BOOT\bootx64.efi
。这是最容易实现的方法,并且效果很好。这种方法的一个缺点是,如果您的操作系统曾经更新过引导加载程序,则更新可能会转到原始位置,因此,如果要使用更新后的引导加载程序,则必须重复该过程。