背景
在折腾虚拟机过程中,遇到一个新名词,EFI。
所以,专门去花时间,去看看其是啥东东,是啥含义。
EFI,UEFI的详细解释
EFI
EFI == Extensible Firmware Interface == 扩展固件接口
从字面意思去看,也就很清楚了:
Extensible:扩展的;当然是针对的旧的BIOS来说,支持更多更好的功能,所以才称为扩展;
Firmware Interface:固件接口;之前旧的BIOS,其实也是固件接口,用来引导启动操作系统的。EFI,也是用来引导启动操作系统的。
UEFI
根据Intel在:
Extensible Firmware Interface (EFI) and Unified EFI (UEFI)
中的解释:
EFI,是之前的叫法,现在改名叫做UEFI了。
UEFI= Unified EFI = Unified Extensible Firmware Interface = 统一的EFI = 统一的扩展固件接口
之所以把EFI改名为UEFI,估计采用更加统一的EFI,不要再各自为政了,使得大家都遵守这个规范,以便更好的推广此规范,鼓励大家都用这个东西。
VirtualBox中EFI
VirtualBox手册中的解释是:
Enable EFI This enables Extensible Firmware Interface (EFI), which replaces the legacy BIOS and may be useful for certain advanced use cases. Please refer to Section 3.12, “Alternative firmware (EFI)” for details.
大意为:
启用EFI,就是把之前旧的BIOS,换成了EFI。
换句话说,以前,启动系统是用的BIOS,如果你勾选了“启用EFI”,那么就不用BIOS,而是用EFI去启动系统了。
而关于EFI是啥东西,则再去看VirtualBox中的更加详细的解释:
3.12. Alternative firmware (EFI)
Starting with release 3.1, VirtualBox includes experimental support for the Extensible Firmware Interface (EFI), which is a new industry standard intended to eventually replace the legacy BIOS as the primary interface for bootstrapping computers and certain system services later.
By default, VirtualBox uses the BIOS firmware for virtual machines. To use EFI for a given virtual machine, you can enable EFI in the machine’s "Settings" dialog (see Section 3.4.1, “"Motherboard" tab”).
…
…
One notable user of EFI is Apple’s Mac OS X, but recent Linuxes (such as Fedora 11) and Windows (starting with Vista) offer special versions that can be booted using EFI as well.
Another possible use of EFI in VirtualBox is development and testing of EFI applications, without booting any OS.
Note that the VirtualBox EFI support is experimental and will be enhanced as EFI matures and becomes more widespread. While Mac OS X and Linux guests are known to work fine, Windows guests are currently unable to boot with the VirtualBox EFI implementation.
大意为:
VirtualBox中,从3.1版本往后,支持了一个EFI的设置。
EFI是个新标准,相对的,旧的标准,就是之前大家都知道的BIOS。
默认情况下,VirtualBox是用BIOS去启动(虚拟机)系统的,如果你需要(当前,你自己要知道你在干啥;不懂而去瞎设置,而导致无法启动虚拟机,那就是你自己的事情了)的话,可以去:
虚拟机的的设置->系统->主板->扩展特性->启用EFI(只针对某些操作系统)
其中一个常见的例子是:
Apple的Mac OS X,即苹果的Mac系统,是可以使用EFI的。
注意:
当我们去通过VirtualBox中安装Mac虚拟机时,此处一定不能选择EFI,否则后期无法正常启动光盘,无法安装系统。
详细配置和解释,需要的,自己去看:
以及,Windows Vista之后的系统,也是支持EFI启动的。
另外,有时候,也被VirtualBox本身去用EFI启动,去测试一些EFI的程序(但不运行虚拟机系统)。
需要注意的是,目前来说,VirtualBox中的EFI,还只是出于试验阶段,即不是很成熟。
只不过,目前已知的是:
对于VirtualBox中的虚拟机:
Mac OS X和Linux类系统,对于EFI支持的,都还不错;
Windows系统,目前无法使用EFI启动。
和EFI,UEFI相关的常见问题
启用了EFI而导致无法启动虚拟机系统
具体截图为:
其具体原因则是:
自己在设置虚拟机的时候,不小心,勾选了那个“启用EFI(只针对某些操作系统)”
解决办法是:
取消选择“启用EFI(只针对某些操作系统)”,即可。
正确的设置如图(此处的截图是截取我自己的一个XP虚拟机中的配置):
总结
在(VirtualBox中的)虚拟机设置的时候,没事的时候,尤其是你不懂的情况下,别乱选"启用EFI"。
否则,就会遇到,无法启动虚拟机的情况了。
当然,你自己很清楚EFI是干啥的,和真正匹配你要安装的虚拟机系统的时候,当前可以自行设置启用EFI。
转载请注明:在路上 » 【整理】(VirtualBox中的虚拟机的配置中的)EFI(Extensible Firmware Interface),UEFI(Unified EFI)