ESXi镜像自定义(集成网卡驱动)及硬盘分区

安装ESXi至物理机时,需要提前查看硬件兼容列表,此次安装时发现ESXi原生没有RTL-r8168网卡驱动,需要将网卡驱动打包至ESXi镜像中。

目前(2021-11-20)尝试过后,ESXi7.0暂无法使用该网卡(r8168)

ESXi镜像自定义

ESXi镜像自定义有两种方式,一是使用Powershell脚本安装,另一种是自己使用命令打包镜像。

环境准备

PowerCLI安装

当前版本VMware Power CLI安装较为容易,官网链接:https://developer.vmware.com/powercli

step1: 使用管理员身份打开powershell

step2:粘贴Install-Module -Name VMware.PowerCLI然后回车

ESXi官方镜像文件准备(脚本安装时可选)

自定义ESXi镜像时,不能直接使用iso文件,需要使用Offline Bundle文件,点击官方下载链接,或者访问我的下载链接

网卡驱动准备(以r8168为例)

下载网卡驱动,vib格式在使用脚本打包的时候会用到,Offline Bundle格式在使用命令行打包时会用到

在当前路径新建文件夹drivers,将vib格式的网卡驱动移动进文件夹

至此,环境准备工作完成

自定义镜像打包

使用脚本方式打包

  1. 纯离线方式(推荐)

    Step1:https://github.com/VFrontDe/ESXi-Customizer-PS下载最新的release版本的脚本(ps1文件就是powershell脚本),并将脚本放入ESXi镜像文件所在的目录

    Step2:运行脚本

    1
    .\ESXi-Customizer-PS.ps1 -izip ESXi670-201912001.zip -pkgDir .\drivers\
  2. 在线方式

    Step1:https://github.com/VFrontDe/ESXi-Customizer-PS下载最新的release版本的脚本(ps1文件就是powershell脚本)

    Step2:直接运行.\ESXi-Customizer-PS.ps1 -v67 -vft -load net55-r8168

    这种方式理论上应该是可以的,但是实际执行时总会出现错误,使用第一种离线方式打包成功了

命令行自行打包

Step1:将之前下载的zip文件添加到工作空间中,执行add-esxsoftwaredepot .\ESXi670-201912001.zip

Step2:检查当前的Acceptance Level,执行get-esximageprofile,接下来需要修改Acceptance Level

Step3:

1
new-esximageprofile -cloneprofile "ESXi-6.7.0-20191204001-standard" -name "ESXi-6.7.0-custom" -vendor "VMware-cus"

Step4:

1
set-esximageprofile -ImageProfile "ESXi-6.7.0-custom" -acceptancelevel "CommunitySupported"

image-20211121193658977

Step4:

1
add-esxsoftwaredepot net55-r8168-8.045a-napi-offline_bundle.zip

Step5:

1
add-esxsoftwarepackage -ImageProfile "ESXi-6.7.0-custom" -SoftwarePackage "net55-r8168"

Step6:检查是否加入成功

1
(get-esximageprofile ESXi-6.7.0-custom).viblist

Step7:导出文件

  • ZIP (Bundle):
1
export-esximageprofile -imageprofile ESXi-6.7.0-custom -exporttobundle  -filepath .\ESXi-6.7.0-custom.zip  -nosignaturecheck  -Force
  • ISO (Installable):
1
export-esximageprofile -imageprofile ESXi-6.7.0-custom -exporttoiso  -filepath .\ESXi-6.7.0-custom.iso  -nosignaturecheck  -Force

得到ISO文件之后

拿到iso文件后就可以像正常装系统一样写入到u盘中去安装了

安装教程有很多,随便搜搜就行了

硬盘分区及数据存储

一般通过web页面即可创建,但有时也需要手动创建来解决问题,手动分区及创建存储方式如下

硬盘分区

在ESXi中进行分区需要使用partedUtil工具

  • 查看硬盘列表,上面框起来的就是实际的硬盘以及分区,后面有数字的表示分区,没有数字的表示硬盘本身

    1
    ls /vmfs/devices/disks/

  • 查看分区表

    查看硬盘t10.ATA_____Lenovo_X800_SATA_256G_SSD_______________8S16010501X03403263_实例如下

    1
    partedUtil getptbl "/vmfs/devices/disks/t10.ATA_____Lenovo_X800_SATA_256G_SSD_______________8S16010501X03403263_"

    image-20211121195405778

    第一行是分区格式gpt

    第二行是硬盘的总体信息

    第三行之后是分区信息

  • 创建分区

    在创建分区时要注意的是,必须完整的输入分区表,如下所示

    1
    partedUtil setptbl "/vmfs/devices/disks/t10.ATA_____Lenovo_X800_SATA_256G_SSD_______________8S16010501X03403263_" gpt "1 64 8191 C12A7328F81F11D2BA4B00A0C93EC93B 128" "5 8224 520191 EBD0A0A2B9E5443387C068B6B72699C7  0" "6 520224 1032191 EBD0A0A2B9E5443387C068B6B72699C7  0" "7 1032224 1257471 9D27538040AD11DBBF97000C2911D1B8  0" "8 1257504 1843199 EBD0A0A2B9E5443387C068B6B72699C7  0" "9 1843200 7086079 9D27538040AD11DBBF97000C2911D1B8  0" "2 7086080 15472639 EBD0A0A2B9E5443387C068B6B72699C7  0" "3 15472640 500118158 AA31E02A400F11DB9590000C2911D1B8  0"

    ESXi/ESX 常用的分区类型包括:

    分区 GUID 类型(十六进制) 类型(十进制)
    VMFS 数据存储 AA31E02A400F11DB9590000C2911D1B8 0xFB 251
    VMKCore 诊断 9D27538040AD11DBBF97000C2911D1B8 0xFC 252
    VMware 预留 9198EFFC31C011DB8F78000C2911D1B8
    基本数据 EBD0A0A2B9E5443387C068B6B72699C7 0x83 131
    Linux Swap 0657FD6DA4AB43C484E50933C84B4F4F 0x82 130
    Linux LVM E6D6D379F50744C2A23C238F2A3DF928 0x8E 142
    Linux RAID A19D880F05FC4D3BA006743F0F84911E 0xFD 253
    EFi 系统 C12A7328F81F11D2BA4B00A0C93EC93B 0xEF 239
    Microsoft 预留 E3C9E3160B5C4DB8817DF92DF00215AE
    未使用条目 00000000000000000000000000000000

创建数据存储

创建数据存储需要使用 vmkfstools命令

使用示例:

1
vmkfstools -C vmfs6 -S NewDatastore /vmfs/devices/disks/t10.ATA_____Lenovo_X800_SATA_256G_SSD_______________8S16010501X03403263_:3

接下来就可以在web页面看到相关的存储信息了

参考资料

1 VMware Front Experience:https://www.v-front.de/

2 Download VMware vSphere:https://customerconnect.vmware.com/downloads/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/6_7

3 使用脚本添加网卡驱动:http://woshub.com/add-drivers-vmware-esxi-iso-image/

4 使用命令行打包镜像:https://communities.vmware.com/t5/ESXi-Discussions/Pink-Screen-ESXi-6-5-Failed-Install-Unable-to-Verify-Acceptance/m-p/504351#M42504

5 ESXi硬盘分区:https://kb.vmware.com/s/article/1036609?lang=zh_CN

6 ESXi创建数据存储:https://kb.vmware.com/s/article/1009829?lang=zh_CN