N5105 G47 I226 5 网口双串 ESXi8.0 虚拟机安装 iStoreOS实操记录
一、硬件环境说明
主机:N5105 G47 工控机箱
- 设备: N5105 G47 机箱,5 口 I226 网卡、双串口、4 口 POE 供电
- 存储:512G mSATA 固态硬盘,SATA 位无硬盘
- 虚拟化平台:VMware ESXi 8.0,已完成 4 张 I226 网卡直通
- 镜像工具:StarWind V2V Converter(云端直传 ESXi,不本地中转)
- 终端工具:XTerminal-5.6.6-win-x64-portable
- 系统版本:iStoreOS 24.10.8-2026073111 x86_64 squashfs combined-efi
二、软件准备与全部下载地址
2.1 iStoreOS 系统镜像(本次专用版本)
文件名:istoreos-24.10.8-2026073111-x86-64-squashfs-combined-efi.img.gz
- SourceForge 镜像源:https://sourceforge.net/projects/istoreos/files/iStoreOS/
- KoolCenter 官方源:https://fw.koolcenter.com/iStoreOS/
- 备用分流:https://fw0.koolcenter.com/iStoreOS/
选择适用于 x86_64 架构的 combined-efi 格式镜像:istoreos-24.10.8-2026073111-x86-64-squashfs-combined-efi.img.gz
2.2 镜像转换工具(Windows)
StarWind V2V Converter(免费,用于 img 转 ESXi 识别 vmdk)
官网下载:https://www.starwindsoftware.com/starwind-v2v-converter-download
备用地址:https://www.starwindsoftware.com/starwind-v2v-converter
2.3 辅助工具
- 7-Zip:解压 img.gz 镜像
- XTerminal-5.6.6-win-x64-portable:SSH 连接 ESXi、iStoreOS 后台执行命令
- 官网下载:https://www.xterminal.cn/
三、ESXi 前置配置:BIOS 开启直通、网卡 PCI 直通设置(ESXi 已装好,仅配置直通)
3.1 BIOS 硬件开启虚拟化
N5105 开机按 Del 进入 BIOS:
CPU Configuration → Intel Virtualization Technology:Enabled
VT-d(IOMMU):Enabled
SR-IOV:Enabled(I226 网卡支持)
保存重启进入 ESXi 系统。
四、iStoreOS 镜像格式转换(Windows 端操作)
4.1 解压镜像
使用 7-Zip 解压下载的 istoreos-24.10.8-2026073111-x86-64-squashfs-combined-efi.img.gz,得到裸磁盘文件 .img。
4.2 StarWind 转换并直传 ESXi 完整步骤
- 右键 StarWind V2V Converter,选择 以管理员身份运行,避免 ESXi 存储写入权限 403 报错
- 转换源选择
Local file,点击 Next - 选中解压后的
istoreos-24.10.8-2026073111-x86-64-squashfs-combined-efi.imgimg 镜像,软件自动识别 Raw 磁盘格式,确认下一步 - 目标类型选择
Remote VMware ESXi Server(适配 ESXi8.0),Next - 填写 ESXi 远程连接信息
- IP address:ESXi 管理 IP(192.168.50.235)
- User name:root
- Password:ESXi 登录密码
- 磁盘格式选择
ESXi Server image,预分配 vmdk,Next - 存储路径配置
- File name:自定义
istoreos-efi.vmdk - 浏览 ESXi 数据存储,在 mSATA 硬盘存储根目录新建 istoreos 文件夹作为存放路径
- 取消勾选「Attach image to virtual machine」,后续手动新建虚拟机挂载磁盘
- File name:自定义
- 核对全部参数,点击 Start 开始转换上传
- 软件本地完成 img 转 vmdk
- 转换结束自动通过 HTTPS 直传至 ESXi mSATA 存储,同步生成
istoreos-efi.vmdk、istoreos-efi-flat.vmdk
- 提示 Complete 代表上传完成,进入 ESXi「存储 - 数据存储浏览器」确认文件存在。
五、ESXi 新建 iStoreOS 虚拟机完整步骤
ESXi 后台【虚拟机】-【创建 / 注册虚拟机】→【创建新虚拟机】
- 名称:iStoreOS-24.10.6
- 兼容性:ESXi 8.0 U2 虚拟机
- 客户机操作系统:Linux → 其他 Linux (x86_64)
磁盘设置:删除默认新建硬盘,选择【使用现有虚拟磁盘】,选中上传的 istoreos.vmdk
CPU 内存配置:
- CPU:2 核 4 线程(N5105 推荐分配 2 核,预留 2 核给 ESXi)
- 内存:4GB,勾选「预留所有客户机内存」(直通网卡必须开启,否则开机失败)
网络适配器:删除所有默认虚拟网卡,后续使用 PCI 直通网卡,此处不添加任何虚拟网卡
添加 PCI 直通硬件:【添加其他设备】-【PCI 设备】,依次勾选 4 块 I226 直通网卡,确认添加
虚拟机选项设置:
- 引导选项:固件选择
EFI - 禁用安全启动,保存虚拟机配置
- 引导选项:固件选择
开启虚拟机电源,进入 iStoreOS 控制台。
由于 ESXi 中创建的虚拟磁盘初始大小等于原始镜像大小(约 2GB),需要将其扩容到 32GB。
关闭 iStoreOS 虚拟机
右键虚拟机 → 编辑设置(Edit Settings)
找到硬盘 → 将 磁盘大小(Disk Size)修改为 32 GB
点击 保存
六、iStoreOS 初始化与基础网络配置
- 磁盘扩容:转换后上传的
istoreos.vmdk只有 2G 多,需要扩容。esxi8.0 中选中创建的istoreos虚拟机右键 →【编辑设置】→【硬盘】,把后面的 2G 改成你想要的大小,我这里改成 32G。
网页登录 istoreos 配置网络
- 虚拟机控制台启动完成,回车激活终端,输入
quickstart进入系统安装向导 - 网页后台登录:
http://192.168.50.1,进入【网络】-【网络接口】 - 查看所有网卡 MAC 地址,找到 MAC
00:d0:b4:01:0b:b3对应设备名为 eth1 - 修改接口配置:
- 新建 WAN 接口:设备 eth1,协议按需选择(PPPoE / 静态 IP/DHCP)
- LAN 接口绑定剩余网卡,LAN 静态地址修改为
192.168.50.1,子网掩码 255.255.255.0 - DHCP 地址池:192.168.50.10 ~ 192.168.50.200
- 保存应用,等待网络重启,之后管理后台地址变更为
http://192.168.50.1
ESXi 中 istoreos 控制台内修改网络
- ESXi 网页端打开 iStoreOS 虚拟机控制台,回车进入 iStoreOS 终端,用户名
root,默认密码password。 - 先查看网卡 MAC 与设备名,确认
00:d0:b4:01:0b:b3对应的设备为eth1:
只看物理网卡 MAC 简版:ip -br link | grep eth - 找到 MAC
00:d0:b4:01:0b:b3对应的设备名,因为这个MAC地址是esxi8.0分配的wan口地址,我这里为 eth1,eth1 即为后续 WAN 口;剩余网卡全部用于 LAN 桥接。 - 使用 uci 命令直接修改 LAN 接口(目标 LAN 地址
192.168.50.1/24,DHCP 地址池192.168.50.10‑192.168.50.200),无需 vi 编辑文件,复制逐条执行:
修改LAN静态IP与子网掩码 |
dhcp.lan.limit='191':从 10 开始 + 191 个地址,地址池范围正好192.168.50.10 ~ 192.168.50.200。
- 网络重启完成后,管理后台地址变更:
http://192.168.50.1,电脑网卡设置同网段 IP 即可访问网页后台,再进入【网络】‑【网络接口】,将 WAN 接口协议按需设置为 PPPoE / 静态 IP / DHCP;LAN 接口确认绑定剩余全部物理网卡。
vi 手动修改配置文件
vi /etc/config/network |
按i进入编辑模式,修改lan段ipaddr、netmask,wan 段device eth1;修改完成按ESC,输入:wq保存退出,执行/etc/init.d/network restart重启网络。
# network 全部代码 |
DHCP 配置文件路径:/etc/config/dhcp,修改start、limit参数。
# dhcp 部分代码 |
七、核心实操 :iStoreOS /overlay 分区扩容(文档全套命令)
虚拟机新增磁盘后,磁盘尾部存在大量空闲空间,使用 parted 扩容 sda3 根分区,两种操作方式:
方式 1:直接指定容量扩容
# 进入分区工具 |
操作代码如下:
root@iStoreOS:~# parted # 输入 parted |
方式 2:扇区精确扩容(推荐,自动占满全部空闲空间)
# 以扇区为单位查看分区与空闲空间 |
执行完成后,df -h 查看 /overlay 分区容量已扩展至磁盘最大空间。
操作代码如下:
root@iStoreOS:~# parted /dev/sda unit s print free |
八、核心实操 :Sing-box 1.13.11 一键安装
官方 GitHub Releases:这是最权威的下载渠道。可以访问 SagerNet/sing-box 的 Releases 页面,在 v1.13.11 版本的 Assets 下查找 x86_64 架构的 .ipk 文件
SSH 登录 iStoreOS root 用户,执行 opkg 更新仓库并安装对应 x86_64 安装包:
opkg update && opkg install sing-box_1.13.11_openwrt_x86_64.ipk |
执行流程说明:
- 自动同步 istore、openwrt core/base/luci/routing 多源软件包列表
- 校验软件签名通过,自动下载依赖内核模块
kmod-nfnetlink-queue、kmod-nft-queue - 自动配置内核模块与 sing-box 服务,安装完成后 iStore 软件中心出现 Sing-box 控制面板。
九、核心实操:时区统一 Asia/Shanghai(zoneinfo 安装)
iStoreOS 默认时区异常时执行以下命令修复:
# 安装时区数据包(apk为iStoreOS内置包管理器) |
十、核心实操 :Docker 镜像加速源配置
修改 dockerd 配置文件 /etc/config/dockerd,写入多国内镜像仓库,提升拉取速度:
config globals 'globals' |
修改完成后重启 Docker 生效:/etc/init.d/dockerd restart
十一、核心实操:修复 sleep 0.5 小数休眠不支持
包来自 OpenWrt 24.10 分支(coreutils = 9.7‑r1)
本地下载: coreutils-sleep_9.7-r1_x86_64.ipk
官方直链(24.10.8,最新 24.10 稳定版)
https://downloads.openwrt.org/releases/24.10.8/packages/x86_64/packages/coreutils-sleep_9.7-r1_x86_64.ipk |
国内中科大镜像(推荐,速度快)
https://mirrors.ustc.edu.cn/openwrt/releases/24.10.8/packages/x86_64/packages/coreutils-sleep_9.7-r1_x86_64.ipk |
离线安装两种方式
- wget 下载后本地安装
wget https://mirrors.ustc.edu.cn/openwrt/releases/24.10.8/packages/x86_64/packages/coreutils-sleep_9.7-r1_x86_64.ipk |
- opkg 直接远程安装
opkg install https://mirrors.ustc.edu.cn/openwrt/releases/24.10.8/packages/x86_64/packages/coreutils-sleep_9.7-r1_x86_64.ipk |
⚠️ 注意:只能在 OpenWrt‑24.10.x x86_64 使用;23.05 版本 coreutils 版本是 9.3,没有 9.7‑r1 这个包,强行安装会报依赖错误
十二、核心实操 6:释放 443 端口(避免 uhttpd 占用,给博客 HTTPS 使用)
找到 /etc/config/uhttpd 修改为如下:
config uhttpd 'main' |
重启 web 管理服务
/etc/init.d/uhttpd restart |
十三、核心实操:系统定时任务 crontab 配置
编辑 root 定时任务文件 /etc/crontabs/root,写入业务脚本定时执行规则:
# ln -sf /b860/docker-gitee/crontabs_root /etc/crontabs/root |
重载定时任务:/etc/init.d/cron reload
十四、附加:Gitee 仓库备份脚本拉取命令
如需拉取 armb860 备份仓库,执行浅克隆(减少下载体积):
git clone --depth 1 -b armb860 git@gitee.com:cfv2ray/armbackup.git temp_clean |
部署踩坑总结与扩展
- I226 网卡直通必须开启虚拟机「预留所有客户机内存」,否则开机提示 PCI 设备启动失败
- iStoreOS Legacy 镜像虚拟机固件必须选 BIOS,UEFI 模式无法引导系统
- 扩容分区时提示磁盘正在使用可直接 yes,iStoreOS 支持 ext4 在线扩容无需关机
- ESXi 直通网卡前,务必删除虚拟交换机绑定,否则直通状态灰色无法切换
- Docker 加速源修改后必须重启 dockerd,否则镜像拉取仍走官方源
- N5105 分配虚拟机内存建议最低 2G,4G 可稳定运行 Sing-box+Docker 多容器
- SATA 硬盘直通给 iStoreOS 搭建轻量 NAS 文件服务
- Sing-box 配置订阅、自定义路由规则实现分流
- 定时脚本自动备份 iStoreOS 配置、Docker 容器数据
- 安装 Jellyfin/EMBY 媒体服务,实现家庭影音库虚拟化部署
- 串口 COM 直通,外接串口设备实现物联网设备管理