为ESXi添加Realtek网卡驱动
瑞昱的网卡大多使用在消费级的产品上,并且瑞昱官方没有给出适用于ESXi的网卡驱动,因此在安装ESXi时会报错找不到网卡(No Network Adapters),最好的办法当然是更换一块受ESXi支持的Intel网卡,但是考虑到大多数个人使用ESXi并不是真正的商业用途,因此使用第三方的驱动也可以解决上述问题
本文所使用的方法及驱动来自William Lam
该方法无需使用PowerCLI,安装方式较简单。
当然,文章末尾也准备了添加了驱动的镜像,可直接使用
准备所需文件
受驱动支持的ESXi镜像(这里使用可免费使用的ESXi8.0U3e版本)
系统下载地址(需登录账号)
驱动下载地址
之后需要准备一个Linux环境用于提取vib文件中的驱动以及AnyBurn用于更改镜像文件
AnyBurn下载地址
Tip:我尝试在Windows上使用winrar以及7zip提取驱动,无法获得所需驱动,因此需要Linux或者macOS环境中的"ar"工具
获取驱动文件
如果你没有Linux环境或者懒得提取,我在文章末尾的下载地址中准备了提取好的驱动以及镜像包,直接下载即可使用
这里我使用的是Archlinux。首先打开下载的压缩文件,在 vib20\if-re中有所需的vmw_bootbank_if-re_1.101.01-5vmw.800.1.0.20613240.vib的驱动文件,将他提取到Linux主机的任意文件夹中并在此打开终端,输入
ar -x vmw_bootbank_if-re_1.101.01-5vmw.800.1.0.20613240.vib
注意核对文件名,防止驱动未来更新导致的错误
之后会得到三个文件,如图,我们需要的是这个叫ifre的文件
Linux可能需要更改它的权限才能将它移动到其它地方
将它重命名为ifre.v00
更改镜像
首先装载镜像,在镜像的EFI/BOOT目录下有BOOT.cfg,将其复制到任意文件夹中 ,之后推出镜像

首先使用任意文本编辑器打开BOOT.cfg,在modules=这一行的末尾以相同方式加上ifre.v00

示例:
1
2
3
4
5
6
7
8
9
|
bootstate=0
title=Loading ESXi installer
timeout=5
prefix=
kernel=/b.b00
kernelopt=runweasel cdromBoot
modules=/jumpstrt.gz --- /useropts.gz --- /features.gz --- /k.b00 --- /uc_intel.b00 --- /uc_amd.b00 --- /uc_hygon.b00 --- /procfs.b00 --- /vmx.v00 --- /vim.v00 --- /tpm.v00 --- /sb.v00 --- /s.v00 --- /atlantic.v00 --- /bcm_mpi3.v00 --- /bnxtnet.v00 --- /bnxtroce.v00 --- /brcmfcoe.v00 --- /cndi_igc.v00 --- /dwi2c.v00 --- /elxiscsi.v00 --- /elxnet.v00 --- /i40en.v00 --- /iavmd.v00 --- /icen.v00 --- /igbn.v00 --- /intelgpi.v00 --- /ionic_cl.v00 --- /ionic_en.v00 --- /irdman.v00 --- /iser.v00 --- /ixgben.v00 --- /lpfc.v00 --- /lpnic.v00 --- /lsi_mr3.v00 --- /lsi_msgp.v00 --- /lsi_msgp.v01 --- /lsi_msgp.v02 --- /mtip32xx.v00 --- /ne1000.v00 --- /nenic.v00 --- /nfnic.v00 --- /nhpsa.v00 --- /nipmi.v00 --- /nmlx5_cc.v00 --- /nmlx5_co.v00 --- /nmlx5_rd.v00 --- /ntg3.v00 --- /nvme_pci.v00 --- /nvmerdma.v00 --- /nvmetcp.v00 --- /nvmxnet3.v00 --- /nvmxnet3.v01 --- /pvscsi.v00 --- /qcnic.v00 --- /qedentv.v00 --- /qedrntv.v00 --- /qfle3.v00 --- /qfle3f.v00 --- /qfle3i.v00 --- /qflge.v00 --- /rdmahl.v00 --- /rshim_ne.v00 --- /rshim.v00 --- /rste.v00 --- /sfvmk.v00 --- /smartpqi.v00 --- /vmkata.v00 --- /vmksdhci.v00 --- /vmkusb.v00 --- /vmw_ahci.v00 --- /bmcal.v00 --- /clusters.v00 --- /crx.v00 --- /drivervm.v00 --- /elx_esx_.v00 --- /btldr.v00 --- /dvfilter.v00 --- /esx_ui.v00 --- /esxupdt.v00 --- /tpmesxup.v00 --- /weaselin.v00 --- /esxio_co.v00 --- /infravis.v00 --- /loadesx.v00 --- /lsuv2_hp.v00 --- /lsuv2_in.v00 --- /lsuv2_ls.v00 --- /lsuv2_nv.v00 --- /lsuv2_oe.v00 --- /lsuv2_oe.v01 --- /lsuv2_sm.v00 --- /native_m.v00 --- /qlnative.v00 --- /trx.v00 --- /vcls_pod.v00 --- /vdfs.v00 --- /vds_vsip.v00 --- /vmware_e.v00 --- /hbrsrv.v00 --- /vsan.v00 --- /vsanheal.v00 --- /vsanmgmt.v00 --- /tools.t00 --- /xorg.v00 --- /gc.v00 --- /imgdb.tgz --- /basemisc.tgz --- /resvibs.tgz --- /esxiodpt.tgz --- /imgpayld.tgz --- /ifre.v00
build=8.0.3-0.70.24677879
updated=0
|
接下来使用AnyBurn编辑镜像

将名为ifre.v00的驱动文件添加到镜像的根目录

之后打开EFI/BOOT,删除BOOT.cfg再将修改好的BOOT.cfg添加进去


选择下一页,更改镜像保存名称以及位置

点击开始生成,即可得到修改后的镜像
安装ESXi
更改后的镜像可直接烧录进U盘或者使用Vnetoy启动
如果设备支持UEFI引导,确保系统使用的是UEFI引导并关闭CSM,防止出现requested malloc size failed之类的错误
在ESXi6.7以后,全新安装的系统会划分一块较大的区域(约110GB)给VMFSL使用,该分区主要在多台主机组成集群时使用,我们在这用不到,因此我们在安装引导前需要调整它的大小,避免浪费磁盘空间 下文的方法来自William Lam
在进入如图所示的界面后,左下角有倒计时,结束前按下Shift+O,编辑启动命令
此处有两种更改方式,如果你的系统版本为ESXi8.0,那么推荐使用第一种方式,这种是受官方支持的标准方式,如果低于该版本或者存储空间不足,也可以使用第二种方式最大程度的压缩空间
第一种
直接在后面加上systemMediaSize=min

Tip:各选项对应分区大小
1
2
3
4
|
min = 25GB
small = 55GB
default = 138GB (默认)
max = 使用所有可用空间
|
第二种
在后面加上autoPartitionOSDataSize=8192

单位为MB,大小建议大于4096MB(4GB)
我这里使用第二种方法,设置的大小为8192
之后正常安装即可,但是到最后一步不要重启
将驱动安装到目标系统中
在提示重启的界面下按下Alt+1进入tty1,用户root,密码为空,直接回车即可,之后输入如下命令将文件复制到指定目录下(截至ESXi8.0U3e可直接套用下列命令,文件目录在不同设备上均一致)
1
2
|
cp /tardisks/ifre.v00 /vmfs/volumes/BOOTBANK1/ifre.v00
cp /tardisks/ifre.v00 /vmfs/volumes/BOOTBANK2/ifre.v00
|

之后修改boot.cfg,方法与上文相同,这里使用系统自带的vi进行修改
输入vi /vmfs/volumes/BOOTBANK1/boot.cfg在modules=这一行的末尾以相同方式加上ifre.v00

需要修改两次,第二次输入vi /vmfs/volumes/BOOTBANK1/boot.cfg,方法相同
保存后按Alt+2回到安装界面,回车重启即可完成安装

附件
提取的驱动文件
修改后的BOOT.CFG
修补后可直接使用的镜像