type
status
slug
summary
tags
category
icon
password
new update day
Property
Oct 22, 2023 01:31 PM
created days
Last edited time
Oct 22, 2023 01:31 PM

无网卡驱动无法完成系统安装

今天在给软路由安装 VMware ESXI 7.X 的时候,发现无法正常安装,同时给出了如下图所示的提示。(提示标题很醒目的给出了具体原因即:找不到网络接口卡 ,这时我看看着软路由上那 4 个2.5G 电口陷入了沉思)我的设备的网卡型号是 Intel i225 ,经查询发现官方镜像没有包含此网卡驱动,我们需要手动安装相应的社区驱动。
notion image

否决 esxcli 解决方案

经搜索发现大部分中文教程都是千篇一律,给出不符合我当前使用状态的解决方案即:使用 SSH 方式连接到已经启动 ESXI 设备上,使用官方工具 esxcli 完成驱动的安装,而我们现在甚至都无法安装操作系统,更别说启动 SSH 连接接口,进行远程操作了。。

从源头上解决问题——构建自定义镜像

联想到 Windows 操作系统安装的过程,如果我们没有相应设备的驱动,我们可以在启动安装进程之前,将所需要的各种驱动打包到安装镜像中,这样即可解决驱动缺失的问题,经搜索发现拥有相应的解决方案,在这里做个简单的总结,同时也给其他兄弟们一个参考。

兵马未动、粮草先行——开始前的准备工作

第一步——获取 ESXI 镜像离线构建包

VMware 考虑到 IO 设备的多样性,所以也提供了可进行自定义镜像构建的工具包,我们可以在 ESXI 下载界面,登录我们的账户后,看到向下图所示的下载入口:
  • 7.x 下载地址
  • 8.x 下载地址
notion image
Tips: 如果点击下载没有反应的话,可以右键检查下载按钮,找出相应的下载地址,直接进行访问即可,具体操作可参照下图。
notion image
转到上面的链接后,会给出带认证信息的真正的镜像下载链接,再次如法炮制进行连续进行两次链接跳转即可完成文件下载。
notion image
文件下载好之后是一个压缩包,无需解压,保存好以供后续使用。

第二步——获取所需驱动

VMware 官方社区提供一些 IO 设备驱动,在这里我放出我自己使用的两个驱动即
  1. Community Networking Driver for ESXi
    1. notion image
  1. Community NVMe Driver for ESXi
    1. notion image
虽然在这里我只给出了两个常用的驱动程序,不过其它设备的驱动程序安装过程也大同小异,我们将这两个驱动程序(压缩包格式、无需解压)下载好保存备用。

第三步——获取官方工具(VMware.PowerCLI)

此工具是一个 Powershell 模块,我们需要在管理员模式下启动 Powershell 运行以下命令完成安装,安装过程中可能会出现一些交互性提示,选是即可,等待安装完成。
在线安装方式(不推荐)
💡
(不推荐,因为国内网络环境的问题,安装状态非常不稳定)
notion image
  • 离线安装方式(推荐)
下面是 PowerCLI 主页 的网址,从 PowerCLI 主页下载 PowerCLI ZIP 文件,然后将 ZIP 文件传输到本地计算机。
  1. 使用以下命令检查 PowerShell 模块路径:$env:PSModulePath
  1. 将 ZIP 文件的内容提取到其中一个列出的文件夹中。
  1. 使用命令 cd <path_to_powershell_modules_folder>Get-ChildItem * -Recurse | Unblock-File 取消阻止这些文件。
解压后的文件结构大致如此
notion image
可以使用 Get-Module -Name VMware.PowerCLI -ListAvailable 命令验证 PowerCLI 模块是否可用。

第四步——获取镜像构建脚本

为了简化自定义镜像构建的操作步骤,Github 上有大佬做好了相应的自动化脚本,项目地址:
notion image
至此,准备工作已经完成,可以开始进行自定义镜像的构建操作了。

第五步——为 PowerCLI 配置 python 3.7 运行环境(使用管理员模式)

通过查询官方说明文件发现最新版本的工具对 python 运行环境有要求。同时这个运行环境问题也是折磨我挺久的问题,在这里把我的解决方法写一下,可能不是非常优雅,但是副作用应该是最小的。
从 VMware PowerCLI 13.0 开始,Python 3.7 是使用 VMware.ImageBuilder 模块的先决条件。要使用 VMware.ImageBuilder 模块,您必须安装带有四个附加软件包的 Python 3.7 并配置 PowerCLI。
为达到对应工具对 python 版本的要求,我采用 miniconda 来管理 python 版本与运行环境。
  • miniconda windows 下载地址
  • 创建 conda python3.7 虚拟环境
  1. 打开 miniconda 的命令界面。
notion image
  • 安装需要的 pip 包
  • PowerCLI 配置运行路径。
💡
<python3.7-directory> 替换为 conda 虚拟环境的 python 地址,即你 conda 安装路径中 env 文件夹,比如我得应该是 D:\environment\miniconda3\envs\py37
截图展示
notion image

万事俱备只欠东风——开始构建自定义镜像

第一步——整理文件

ESXi-Customizer-PS-master 解压,将其他文件按如下文件结构进行存放。
notion image

第二步——开始镜像构建(管理员权限)

在上述文件夹中打开管理员权限 Powershell ,运行以下命令:
如果出现如下因脚本无数字签名无法运行的提示,可运行如下命令,临时允许运行:
此命令的详细解释参见:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2
notion image
再次运行构建命令,根据提示运行运行即可(即R):
notion image
期间可能会出现没有 python 环境的报错。按照上面第五步的步骤要求安装对应的 python 环境即可。
notion image
然后就是等待完成即可,整个过程大约需要3-4分钟,耐心等待即可,如果成功,你的输出应该类似如下:
notion image
此处就是我们所需要的自定义镜像,将它拷贝到自己的 Ventoy 启动盘即可,正常使用。
notion image
挂载使用LUKS加密的磁盘(使用 btrfs 文件系统)阿里云主机无法启动下的完整数据恢复方案