资讯动态

ESXi 8.0封装RTL8168驱动:从原理到镜像定制实操

发布时间:2026/9/7 16:49:23 来源:尧图企业网站定制
ESXi 8.0封装RTL8168网卡驱动从原理到镜像一次搞定如果你手里正好有一台用了Realtek RTL8111/8168网卡的主机比如不少消费级主板、迷你主机、工控机想装ESXi 8.0大概率在安装界面就会卡在“没有可用网卡”这一步。ESXi 8.0官方镜像默认不带RTL8168的驱动而Realtek这个系列的网卡在桌面和低功耗平台上的占有率又高得离谱这就形成了一个很尴尬的局面机器本身完全能跑虚拟化但安装程序连网卡都不认。这篇文章就把RTL8168驱动的封装流程完整拆开讲一遍从为什么要封装、驱动文件去哪找到Windows和Linux两条封装路线都怎么做再到写盘安装后的验证最后附上我踩过的坑和排查思路。适合正在折腾ESXi 8.0安装、或者是批量给工控机部署虚拟化环境的朋友参考。1. 先搞清楚为什么要封装驱动而不是绕过去1.1 ESXi 8.0对网卡支持的逻辑变化ESXi和普通Linux发行版不一样它不是一个“装完系统再装驱动”的体系。ESXi内核里能加载什么驱动基本由安装镜像里带的VIBvSphere Installation Bundle决定。VIB可以理解成ESXi的驱动和扩展包类似Windows下的.inf驱动文件但管理方式严格得多。ESXi 8.0相比7.0有一个重要变化移除了vmklinux兼容层。这意味着大量老旧的、依赖vmklinux的第三方网卡驱动在8.0上直接失效。RTL8168的驱动恰好属于受影响比较大的那一批所以8.0时代封装驱动比7.0时代更依赖社区维护的native driver版本。另外一个现实问题是ESXi安装程序在安装阶段会扫描网卡如果没有可用网卡图形安装界面会直接提示“No network adapters detected”连分区和设置root密码的步骤都走不完。所以这个驱动不是“装完系统再去补”而是必须在安装镜像阶段就塞进去让安装程序在启动时就能识别到网卡。1.2 换网卡 vs 封装驱动的方案对比遇到ESXi不认网卡很多人的第一反应是换一张Intel网卡这确实是最“省事”的路线。Intel的e1000e、igb、ixgbe系列驱动在ESXi里属于官方自带插上就能用兼容性几乎不用操心。但换网卡这条路在某些场景下走不通迷你主机、NUC、笔记本改装的虚拟化机器网卡是板载的根本没有扩展槽。工控机、软路由设备网口数量是固定的换卡意味着要改硬件方案。批量部署时机器已经采购到位不可能因为驱动问题一台台拆机换网卡。封装驱动的本质是“不改硬件只改安装介质”把ESXi官方ISO里没有的驱动打进去生成一个新的可引导镜像。这个操作一次做完之后安装每一台机器都用这个定制镜像成本和换网卡相比几乎可以忽略。所以我的观点是如果是自己家里一台机器折腾换网卡确实省心如果是批量部署、硬件不可变、或者你想完全掌握平台定制的流程封装驱动是绕不开的技能。1.3 什么情况下你需要学封装而不是找现成ISO网上其实有人已经做好的“ESXi 8.0集成RTL8168驱动”ISO直接下载就能用。但我的建议是如果你打算认真搞虚拟化这个封装流程还是应该自己走一遍。原因有三第一第三方整合ISO的来源和完整性无法保证。你并不知道制作者在镜像里塞了什么额外的东西在安全敏感的环境里用来源不明的镜像本身就是风险。第二驱动版本需要和ESXi版本严格对应。ESXi的补丁版本一直在更新从8.0到8.0 Update 1、Update 2内核版本号和驱动API都在变老的整合ISO可能装不上新的ESXi版本这时候你自己会封装就能随时重新做一个。第三理解封装机制对后续运维有巨大帮助。ESXi的镜像定制不只是网卡驱动一条路之后可能还要集成RAID驱动、NVMe驱动、第三方管理组件掌握了VIB封装和镜像配置文件的机制这些都是同一套思路。2. 驱动选型和镜像定制的核心逻辑2.1 RTL8168驱动在ESXi 8.0下的正确选择RTL8168和RTL8111是Realtek同一系列的不同型号它们的驱动通常是共用的。在ESXi世界里这个系列的社区驱动维护者是社区开发者对应的VIB包通常命名为net55-r8168或类似格式。选驱动的时候最关键的判断标准是这个VIB必须是为ESXi 8.0编译的native driver版本而不是依赖vmklinux的老版本。怎么判断看VIB包的构建信息或者直接看发布页面是否明确写了支持ESXi 8.0。装错版本的结果是驱动能装进镜像但在8.0上加载时报错白白浪费时间。驱动版本号和ESXi版本的对应关系大致是这样的ESXi 8.0初期用的驱动版本可能只有某个版本号8.0 Update 1之后内核API有调整驱动也跟着出了新版本。实操中我的做法是每次做镜像前先去驱动发布页面看一眼最新版本不要用几个月前的旧包。2.2 VIB、镜像配置文件和ISO三者之间的关系很多第一次做封装的同学会被这几个概念搞混我这里用大白话拆开讲。VIB是驱动本身是一个以.vib为后缀的文件里面包含了驱动二进制、元数据、依赖关系描述。它相当于一颗“药丸”。镜像配置文件Image Profile是ESXi镜像的“配方”它描述了一个ESXi系统由哪些VIB组成。官方ISO本身对应一个默认的profile比如ESXi-8.0.0-standard。封装驱动的过程本质上就是“克隆一个官方profile往里面加一个额外的VIB再导出成新ISO”。ISO是最终的可引导镜像文件。ESXi的ISO和普通Linux的ISO结构不同它包含了引导加载器、安装程序、以及一个经过压缩的系统镜像这个系统镜像里打包了profile对应的所有VIB。所以整个链路是VIB文件加入ProfileProfile导出为ISO。理解了这个关系后面操作就不会糊涂。2.3 两种封装路线PowerCLI vs ESXi Shell封装驱动在实操层面有两条主流路线我分别说一下适用场景。第一条是Windows下用VMware PowerCLI通过Add-EsxSoftwareDepot和New-EsxImageProfile这些cmdlet操作。这条路的好处是不需要一台已经装好ESXi的机器作为中转只要有PowerCLI环境就行适合从零开始定制镜像的场景。第二条是Linux下用esxcli命令但有个前提条件你得有一台已经能跑起来的ESXi主机哪怕是临时的因为esxcli是从运行中的ESXi系统上去操作Image Profile。这条路适合已经有ESXi环境、想顺手做个定制ISO的情况。我自己的习惯是优先用PowerCLI因为纯Windows环境就能完成不依赖任何现有ESXi主机脚本化也方便。下面重点讲这条路线Linux的命令行方法也会顺带说明。3. 实际操作用PowerCLI封装RTL8168驱动到ESXi 8.0镜像3.1 准备阶段工具、文件和环境检查开始操作前先把需要的东西列清楚一台Windows电脑Windows 10/11均可VMware PowerCLI安装方法见下文ESXi 8.0官方ISO镜像从VMware官网下载RTL8168的vib驱动文件具体获取方式见下文一个U盘或用于写盘的软件第一步是安装PowerCLI。打开PowerShell管理员模式执行Install-Module -Name VMware.PowerCLI -Scope CurrentUser安装完成后执行Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP $false这个命令是为了忽略证书校验和关闭CEIP数据收集避免后续连接vCenter或ESXi时因为证书问题报错。注意这个忽略证书的设置本身只对后续连接操作生效当前的任务是本地操作但不设这一步后面有些cmdlet会额外弹提示。第二步是准备vib文件。RTL8168驱动的vib文件在社区维护者的发布页面可以找到文件名通常类似net55-r8168-8.xxx.x86_64.vib。下载后先确认文件大小和校验值避免下载损坏。第三步是准备ESXi官方ISO。注意封装驱动的ISO和安装用的ISO是同一个文件我们操作时会把官方ISO作为depot导入。3.2 从官方ISO创建软件仓库并添加VIB核心操作是Add-EsxSoftwareDepot官方ISO本身就是一个offline depot。我们在PowerShell里执行Add-EsxSoftwareDepot -DepotUrl C:\isos\VMware-ESXi-8.0-xxxxxxx.iso这个命令会把ISO里面的所有VIB信息读入PowerCLI会话。执行后可以用Get-EsxSoftwareDepot确认是否成功。然后继续添加VIB文件Add-EsxSoftwareDepot -DepotUrl C:\drivers\net55-r8168-8.xxx.x86_64.vib注意这里Add-EsxSoftwareDepot既可以接ISO路径也可以接vib文件路径。添加完成后vib包对应的软件包会进入同一个depot列表里。这一步经常遇到两个问题一是ISO路径中有中文或空格导致读取失败建议工作目录全部用英文路径且不要有空格二是vib文件本身的数字签名验证失败如果是来自社区的非官方签名包后面在创建profile时可能还需要指定强制接受。3.3 创建自定义镜像配置文件并添加驱动包现在用Get-EsxImageProfile看一下当前可用的profileGet-EsxImageProfile输出里会有一个类似ESXi-8.0.0-standard的profile这个就是官方的默认配置。我们以它为蓝本克隆一个自定义profileNew-EsxImageProfile -CloneProfile ESXi-8.0.0-standard -Name ESXi-8.0-rtl8168 -Vendor homelab接着把这个profile赋给一个变量方便后续操作$profile Get-EsxImageProfile -Name ESXi-8.0-rtl8168然后添加RTL8168驱动包。软件包名称用Get-EsxSoftwarePackage查一下Get-EsxSoftwarePackage -DepotUrl C:\drivers\net55-r8168-8.xxx.x86_64.vib记下name字段然后执行Add-EsxSoftwarePackage -ImageProfile $profile -SoftwarePackage net55-r8168如果vib包签名有问题会提示无法添加可以使用-Force参数忽略签名错误。这里提醒一下-Force的本质是绕过签名校验如果vib文件来源不可信千万别用否则等同于在系统里放一个未经验证的内核模块。3.4 验证驱动是否真正进入profile添加完成后最好先验证一下确认驱动没有和现有VIB冲突以及profile处于可导出状态Get-EsxImageProfile -Name ESXi-8.0-rtl8168 | Export-EsxImageProfile -ExportToIso -FilePath C:\isos\ESXi-8.0-rtl8168.iso -Force等待导出完成ISO文件名不要和官方ISO重名放到一个单独的文件夹里。导出过程一般2-4分钟取决于磁盘速度。导出完成后建议再把这个ISO作为新depot导入一次看看里面是否真的有rtl8168驱动Add-EsxSoftwareDepot -DepotUrl C:\isos\ESXi-8.0-rtl8168.iso Get-EsxSoftwarePackage | Where-Object {$_.Name -like *r8168*}如果能看到对应的软件包说明驱动已经成功打进ISO。3.5 Linux环境下的备用封装方案如果你手头没有Windows或者PowerCLI装不上可以走Linux esxcli的路线。前提是你已经有一台ESXi主机在运行并且ssh已开启。第一步把官方ISO和vib文件上传到ESXi主机的datastore或/tmp目录。然后ssh登录ESXiesxcli software vib install -d /tmp/net55-r8168-8.xxx.x86_64.vib --no-sig-check这里--no-sig-check同样是对签名校验的绕过只在驱动本身可信的情况下使用。安装完成后确认esxcli software vib list | grep r8168模块加载后是running状态。接着用export方式导出定制ISOesxcli software profile export --profileESXi-8.0-rtl8168 --export-to-iso/tmp/ESXi-8.0-rtl8168.iso注意这个方案的前提是先把驱动在线装到现有ESXi上然后导出profile。它不如PowerCLI灵活但胜在不需要额外装PowerCLI环境。4. 写盘安装和第一次启动验证4.1 制作ESXi安装U盘的正确姿势ISO封装好之后写盘工具的选择直接决定你能不能顺利引导。Windows下我推荐Rufus或balenaEtcher。两者都支持把ISO以DD模式写入U盘。有一个很多人踩过的坑用Rufus默认的ISO模式写入ESXi的ISO会把镜像展开成文件拷贝到U盘导致U盘无法引导。ESXi的ISO必须用DD镜像模式写入Rufus里选择“DD Image mode”即可。Linux下用dd命令直接写盘最稳妥sudo dd ifESXi-8.0-rtl8168.iso of/dev/sdX bs4M statusprogress这里的/dev/sdX换成你的U盘设备号写之前用lsblk确认千万别写错盘。另外说一句如果你打算用Ventoy做多引导U盘ESXi的ISO在Ventoy下启动时极大概率会报错实测需要按F5切换到grub2模式依然不稳定。我的建议是直接用Rufus DD模式写一个专用U盘别在引导这步浪费时间。4.2 安装过程中的网卡识别验证用定制U盘启动后ESXi安装程序会在硬件检测阶段扫一遍网络控制器。如果你能看到网卡被识别出来安装界面会正常进入后续步骤而不是卡在“No network adapters detected”的报错页。RTL8168在ESXi安装界面里的设备名称一般显示为Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller。如果你看到这个名称说明驱动已经成功加载可以放心继续安装。安装过程中选择的网络配置也值得注意如果机器有多个网口安装程序会让你选择管理网络使用的vmnic建议先记下每个网口的物理位置方便后续配置。4.3 安装完成后确认驱动和网卡状态系统装好后ssh登录到ESXi主机用以下命令确认驱动状态esxcli network nic list这个命令会列出所有被ESXi识别的物理网卡包括驱动名称、固件版本、链路状态。如果没有问题你应该能看到vmnic0对应的驱动是r8168。再查一遍VIB状态esxcli software vib list | grep r8168状态应该是active。同时可以用esxcli network nic stats get -n vmnic0看网卡收发包是否正常。如果网卡up了但是ping不通外部检查VLAN配置和Management Network的端口组设置这属于ESXi网络配置的范畴和驱动封装本身无关。5. 封装过程中的常见问题和排查记录5.1 常见问题速查表我把实操中遇到的高频问题整理成了表格方便你对照排查问题现象可能原因解决方案安装界面提示No network adapters detected驱动没有真正打进ISO重新检查Add-EsxSoftwarePackage是否执行成功导出后再导入ISO验证vib添加时报错signature verification failed非官方签名驱动签名校验失败确认vib来源可信后使用-Force参数驱动装进ISO但系统启动后网卡不工作驱动版本不兼容ESXi 8.0内核下载最新版native driver不要用老版本导出的ISO无法引导U盘写盘方式用了ISO模式而非DD模式用Rufus的DD Image模式重新写盘Add-EsxSoftwareDepot报错无法打开ISO路径含中文空格或文件损坏用英文路径重新下载官方ISO封装完成后Profile状态为invalidVIB之间存在依赖冲突在导出前用Get-EsxImageProfile -ValidityOnly检查安装时虽然识别网卡但安装后管理IP不通网卡链路up但MTU/网段配置错误检查Management Network的网络配置和物理交换机端口5.2 关于驱动版本和ESXi补丁版本的匹配陷阱这里要专门提醒一个隐蔽问题。ESXi 8.0从GA版本到现在经历了多次Update每个Update版本的kernel API不完全一样。如果你用的vib是在8.0 GA时期编译的它很可能在8.0 Update 2上加载失败但失败时机不是安装时而是安装完成后第一次重启。重启后会发现自己陷入了一个两难网卡在安装时能被识别系统装完了却没了网络连接管理工具完全连不上。排查时用console登录如果机器有显示器和键盘或者用ilo/iDRAC看dmesg会发现r8168模块报内核版本不匹配的错误。所以我的建议很直接下载vib之前先确认你要装的ESXi到底是哪个版本尽量选择和你目标版本同期的驱动版本。最稳妥的做法是拿到vib后先临时装到测试机上验证一遍确认重启后网卡正常再批量使用。别在正式环境上做这个验证。5.3 签名校验、强制安装与安全性的个人看法关于-Force和--no-sig-check这两个参数我多说几句。ESXi对VIB的签名机制是为了保证系统完整性第三方社区驱动往往没有VMware官方的签名所以在封装时必须跳过签名校验这是真实需求。但这也意味着你抛弃了VMware的信任链。一个合理的安全流程是确认vib文件的来源最好从社区维护者的官方发布页下载、校验哈希值、有条件的话先在隔离网络测试驱动行为。批量部署环境里这个驱动会随镜像分发到所有机器等于你用自己的信任背书替代了官方签名一旦出了问题所有机器都会受影响。我自己在做这个操作时会保留下载时的校验信息并且在封装记录里注明vib的版本和来源。这不是什么官方流程纯粹是长期运维养成的习惯镜像定制这件事后期排查问题时最缺的就是“当初这个文件是从哪来的”这种信息。6. 批量部署时的一些额外建议如果你的场景是多台相同配置的机器批量安装那封装一次ISO只是一个开始后面这些细节会让整个部署过程顺利很多。6.1 配置好安装脚本和kickstartESXi支持使用ks.cfg脚本文件实现无人值守安装。把网卡驱动封装好的ISO和kickstart结合起来可以实现插上U盘、开机、等待、自动完成安装的全流程不需要一台台手动点安装选项。kickstart脚本里可以指定网络配置、存储分区、root密码建议用加密后的哈希、启用SSH等。思路是ISO保证驱动识别ks文件保证安装参数一致两者配合一百台机器的部署效率能提升好几个量级。6.2 驱动封装和版本管理的常态化我建议把封装这件事做成一个可持续的流程而不是一次性操作。具体来说就是建立一个自己的驱动和ISO归档目录每个文件都包含版本信息和构建日期。每次ESXi发布新的Update重新打一次包然后把新ISO存好。这样当你要重装机器时永远不会面临“手上的老镜像装不了最新版本”的尴尬。VMware的升级周期是比较规律对应驱动的更新频率也会跟上来。你不需要每次升级都立刻跟上但至少以季度为单位去检查一下驱动是否有安全更新或兼容性修复这是一个投入产出比很高的习惯。6.3 最后的个人实践经验在我自己折腾ESXi封装的经历里最深的体会是所有步骤都顺利的时候这个操作大概只要十几分钟但一旦出了问题排查的难度会成倍上升。所以我的建议是尽量在第一次就把验证步骤做到位尤其是导出ISO后重新导入验证这一步不要跳过。另外一个小技巧封装好的ISO可以在虚拟机里先测试一遍。VMware Workstation支持把ISO作为安装介质启动虚拟机虽然虚拟机里未必需要RTL8168驱动但至少能验证ISO的引导和安装流程没有问题。等ISO的引导和安装流程通过了再拿到物理机上用这样可以把“写U盘方案错误”和“ISO本身损坏”这两类问题分离开。封装驱动的本质其实和给Linux内核编模块、给Windows做驱动集成是一回事。掌握一次后面遇到其他网卡、其他驱动的定制需求思路都是通用的。希望这个教程能让你少走一些弯路。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价