背景
几周前用QEMU的时候,发现QEMU user manual上面有这么一行,有uefi
这一选项:
1 | -smbios type=0[,vendor=str][,version=str][,date=str][,release=%d.%d][,uefi=on|off] |
昨晚,打算给别人展示使用UEFI磁盘的分区情况,发现VMware Player中的VM并非UEFI方式启动的,于是打算找找有没有相关的资料展示怎么在VMware Player中使用UEFI。
可行性
VMware Player相比于VMware Workstation,功能实在是少得可怜,但毕竟Management tools与Hypervisor相互分离,猜测作为Non-commercial的Player与Workstation不大可能在Hypervisor上有所区别,只是一些Management tools的区别。
举个例子:libvirt作为QEMU的管理工具,为了方便地给QEMU创建的VM分配IP,会在创建的网桥中开启一个小型的DHCP。而VMware Player的网络配置中有NAT模式,它的VM的IP等也是自动配置的,猜测也会有DHCP服务存在。果然在C:\ProgramDataVMware\
下发现了vmnetdhcp.conf
,添加了下面的配置,便成功为MAC地址为00:50:56:C0:00:08
的网络接口分配固定的IP。
1 | host VMnet8 { |
搜到的资料提示修改*.vmx
,打开后发现是配置信息,类似于libvirt的*.xml
。但仅仅添加firmware = "efi"
还是不够的,因为默认的BIOS版本太老了,还得修改BIOS版本。
方法
在安装目录下找到x64
文件夹(比如我的是:C:\Program Files (x86)\VMware\VMware Player\x64
),ROM名称有BIOS.440.ROM, EFI32.ROM, EFI64.ROM
。在*.vmx
文件中添加如下信息:
1 | bios440.filename = "BIOS.440.ROM" |
如果是32-bit UEFI,需要把EFI64.ROM
变成EFI32.ROM
。