在飞牛 NAS(英特尔NUC5I5RYH ) 上用官方 OpenWrt x86:无线直通 + 主题美化 + 磁盘扩容完整实战
关键字:飞牛 NAS、OpenWrt x86 虚拟机、Intel 7265 无线直通、Argon 主题、extroot 磁盘扩容
这篇文章是我在飞牛 NAS 上折腾官方 OpenWrt 的完整记录,内容包括:
- 从高大全固件踩坑,到换成官方 OpenWrt 的原因
- 用 Firmware Selector 在线定制 x86 镜像
- 在飞牛里创建 OpenWrt 虚拟机、配置网络
- 安装中文语言包 + Argon 左侧菜单主题(重点)
- PCI 直通 Intel AC 7265 无线网卡
- 把虚拟机磁盘扩容到 20G(extroot)
可以当自己的备忘录,也可以直接给朋友当操作指南。


一、为什么不再用高大全,改投官方 OpenWrt
一开始我在飞牛上跑的是 Bleach 高大全(plus)固件,当旁路由很好用,自带一堆 iStore 插件、UI 也漂亮。
后来我想玩一件事:
把一块 Intel AC 7265 无线网卡 PCI 直通 给 OpenWrt,让它当 AP。
飞牛侧直通成功后,在 OpenWrt 里能看到设备:
lspci | grep -i network
# 00:08.0 Network controller: Intel Corporation Wireless 7265 (rev 59)
但系统里没无线、LuCI 里也看不到设备,于是尝试在高大全里装驱动:
opkg update
opkg install kmod-iwlwifi kmod-mac80211
结果只有两行冷冰冰的错误:
Collected errors:
* opkg_install_cmd: Cannot install package kmod-iwlwifi.
* opkg_install_cmd: Cannot install package kmod-mac80211.
查了一圈后大概弄明白:
- 高大全这类固件的 内核是自己编译的;
- 不一定提供一整套和当前内核完全匹配的
kmod-* 仓库;
- 想后装驱动(尤其是内核模块)经常会遇到“找不到包 / 内核版本不匹配”。
结论就是:
高大全更适合“开箱即用 + 少折腾内核驱动”的场景。
像我这样想玩无线直通、磁盘扩容的,更适合回到 官方 OpenWrt。
于是我决定:
在飞牛上起一台新的官方 OpenWrt 24.10.4 x86/64 虚拟机,镜像自己定制。
二、用 Firmware Selector 定制 x86 镜像(带无线驱动 + LuCI)
官网的 Firmware Selector 非常好用,支持在线选包 + 一键构建。
2.1 基本选项
进入 Firmware Selector:
- Version:24.10.4
- Target:
x86 / 64
- Profile:
generic
勾上:
这样系统开机就有 Web 管理界面。
2.2 额外预装的包
官方默认已经包含:
- 基础系统:
base-files、procd、netifd、firewall4、dnsmasq、ppp、ppp-mod-pppoe……
- 文件系统工具:
fstools、e2fsprogs、mkf2fs、partx-utils
- 启动相关:
grub2-bios-setup
- Web:
luci
我额外在“Customize installed packages → Extra packages”里加了下面几类。
① Intel 7265 无线驱动 + 固件(必选)
kmod-iwlwifi
iwlwifi-firmware-iwl7265
iwlwifi-firmware-iwl7265d
7265 和 7265D 都兼容,两个 firmware 一起装最省心。
② Wi-Fi 工具 & 加密组件(必选)
iw
iwinfo
wireless-regdb
wpad-basic-mbedtls
iw/iwinfo:无线调试 + LuCI 依赖;
wireless-regdb:国家码和信道/功率法规;
wpad-basic-mbedtls:家用场景足够,支持 WPA2/WPA3。
如果你以后要 EAP、mesh 等高级玩法,可以把 wpad-basic-mbedtls 换成:
wpad-mbedtls
③ 常见有线网卡驱动(可选)
视硬件情况追加一些常见驱动:
kmod-e1000e kmod-e1000 kmod-igb kmod-igc kmod-r8169 \
kmod-ixgbe kmod-bnx2 kmod-dwmac-intel kmod-tg3 \
kmod-amazon-ena kmod-amd-xgbe
直通物理网卡的话可以都带上,镜像大不了一点无伤大雅。
⚠️ 注意一个坑:
我一开始又加了:
kmod-virtio-net kmod-virtio-pci kmod-virtio-balloon
结果 Firmware Selector 报:
Impossible package selection
Cannot install package kmod-virtio-net …
意思就是当前版本里没有这些单独的 kmod 包(可能直接编进内核了)。
删掉这三个就能顺利构建。
2.3 下载镜像
构建完成后选:
COMBINED (EXT4):传统 BIOS 启动
- 如果你虚拟机用 UEFI,就选
COMBINED-EFI (EXT4)
下载得到一个 .img.gz,在电脑上解压为 .img,等会儿飞牛用这个作为系统盘。
三、在飞牛上创建 OpenWrt x86 虚拟机
这部分和“飞牛 + 高大全虚拟机”的教程类似,这里简略说下关键点:
- 在飞牛上上传刚才解压出来的
openwrt-24.10.4-x86-64-generic-combined-ext4.img;
- 新建虚拟机:
- CPU:1~2 核;
- 内存:512M~1G;
- 磁盘:选“使用已有镜像文件”,指向那份
.img;
- 建好后在虚拟机设置里把磁盘容量改成 20G(后面在 OpenWrt 里扩容);
- 网卡:桥接到你的 LAN 网桥(比如 br0),驱动可以选 virtio 或 e1000;
- 先不要直通无线网卡,等系统跑起来再加。
- 保存配置,启动虚拟机,用飞牛的 VNC 控制台进入。
四、基础网络配置 & LuCI 中文
4.1 控制台登录
VNC 里能看到启动日志,最后几行类似:
br-lan: port 1(eth0) entered forwarding state
按一下回车,就会看到登录提示:
OpenWrt 24.10.4 ...
login: root
Password: # 默认空密码,直接回车
4.2 修改 LAN 地址 / 网关 / DNS
默认 LAN 是 192.168.1.1。如果你的上级路由(家里主路由)是 192.168.3.1,可以把 OpenWrt 改成同网段静态 IP:
vi /etc/config/network
把 config interface 'lan' 改成类似:
config interface 'lan'
option proto 'static'
option ipaddr '192.168.3.100'
option netmask '255.255.255.0'
option gateway '192.168.3.1'
list dns '192.168.3.1'
list dns '223.5.5.5'
重启网络:
/etc/init.d/network restart
测试:
ping 192.168.3.1 # 上级路由
ping 223.5.5.5 # 纯 IP
ping openwrt.org # 测 DNS
都正常后,在电脑浏览器打开 http://192.168.3.100 就能进入 LuCI 了。
4.3 安装中文语言包
opkg update
opkg install luci-i18n-base-zh-cn luci-i18n-firewall-zh-cn luci-i18n-package-manager-zh-cn
然后在 LuCI:
系统 → 系统 →【语言和界面】
语言选:简体中文 (Simplified Chinese) → 保存并应用
界面就变成中文了。
五、重点:安装 Argon 主题(解决“下载文件名很怪”的问题)
我想要的是 BleachWrt 那种 左侧菜单布局 + Argon 风格,官方 OpenWrt 默认只有 Bootstrap 三兄弟:
- Bootstrap
- BootstrapDark
- BootstrapLight
直接 opkg install luci-theme-argon 在 24.10 上一般是失败的,于是我用的是 从 GitHub 下载 ipk 手动安装 的方法,这一步是很多人会卡住的地方。
5.1 安装兼容依赖
先装一些 LuCI 兼容包:
opkg update
opkg install luci-compat luci-lib-ipkg
5.2 从 GitHub 下载 Argon 主题 ipk
我使用的是 jerrykuku 的 Argon 主题,最新支持官方 OpenWrt 的版本是 2.3.2,下载地址类似:
cd /tmp
wget --no-check-certificate \
"https://github.com/jerrykuku/luci-theme-argon/releases/download/v2.3.2/luci-theme-argon_2.3.2-r20250207_all.ipk"
这里我遇到的坑:
由于 GitHub 链接后面带了一串 ?sp=r 之类的参数,有一次下载下来文件名变成了类似:
b4abb55f-7d79-4c42-b1de-95626c950071?sp=r
导致 opkg install 直接报:
opkg install luci-theme-argon_2.3.2-r20250207_all.ipk
# -> No such file or directory
解决方法有两种:
方法 A:下载时就用 -O 指定文件名(推荐)
cd /tmp
wget --no-check-certificate \
-O luci-theme-argon_2.3.2-r20250207_all.ipk \
"https://github.com/jerrykuku/luci-theme-argon/releases/download/v2.3.2/luci-theme-argon_2.3.2-r20250207_all.ipk"
方法 B:下载完手动重命名(我这次用的方式)
cd /tmp
ls
# 假设看到怪文件名:b4abb55f-7d79-4c42-b1de-95626c950071?sp=r
mv "b4abb55f-7d79-4c42-b1de-95626c950071?sp=r" \
luci-theme-argon_2.3.2-r20250207_all.ipk
注意:名字里有 ? 时最好加上引号,或者在命令行里用 \? 转义。
5.3 安装 Argon 主题 ipk
文件名正常之后,直接:
opkg install /tmp/luci-theme-argon_2.3.2-r20250207_all.ipk
如果提示空间不够,说明根分区还只有 100M,没有做 extroot,需要先看本文后面的“磁盘扩容”部分。
5.4 可选:安装 Argon 配置插件
用于在 Web 界面里自定义背景、透明度之类:
cd /tmp
wget --no-check-certificate -O luci-app-argon-config_0.9_all.ipk \
"https://github.com/jerrykuku/luci-app-argon-config/releases/download/v0.9/luci-app-argon-config_0.9_all.ipk"
opkg install luci-app-argon-config_0.9_all.ipk
5.5 在 LuCI 里切换主题
完成以上步骤后,浏览器刷新 LuCI:
系统 → 系统 → 语言和界面 → 主题
在下拉框里就能看到 Argon 主题,选择它 → “保存并应用”。
刷新页面后,LuCI 就会变成熟悉的 Argon 左侧菜单布局。
5.6 如果主题仍然没显示?
排查两步:
-
确认主题确实装上了:
opkg list-installed | grep luci-theme
正常输出里应该有一行类似:
luci-theme-argon - 2.3.2-r20250207
-
如果有但下拉框里不显示:
- 换个浏览器或开无痕模式再登录一次;
- 有时候是浏览器缓存导致 CSS 和静态资源没刷新。
六、直通 Intel AC 7265 无线网卡
主题搞好之后,就可以把飞牛里那块 Intel AC 7265 直通给 OpenWrt 虚拟机了,基本步骤:
- 在飞牛上确保这块 PCI 设备没有分配给其他虚拟机;
- 编辑 OpenWrt 虚拟机 → 添加硬件直通 → 选择
Intel Corporation Wireless 7265;
- 保存,关机再启动虚拟机。
进入 OpenWrt,确认:
lspci | grep -i wireless
dmesg | grep -i iwl
正常情况能看到:
iwlwifi 0000:00:08.0: Detected Intel(R) Dual Band Wireless AC 7265
iwlwifi 0000:00:08.0: loaded firmware version 29.xxxxx 7265D-29.ucode
说明驱动 + 固件已经工作。
然后在 LuCI:
网络 → 无线
就能看到无线设备,点“启用”、“编辑”,配置 SSID、加密方式、密码等,就可以当 AP 用了。
七、把虚拟机根分区扩容到 20G(extroot)
用 COMBINED (EXT4) 镜像时,默认根分区只有约 100MB,其余空间是未分配的,这会导致:
- LuCI 里看到“磁盘空间:98MB”;
- 装几个插件就满了。
我最终选择的是 extroot/pivot-root 方案:把系统复制到新建的 /dev/sda3 大分区上,让它成为真正的 /。这里仅放操作要点,方便自己翻:
-
安装工具:
opkg update
opkg install fdisk e2fsprogs block-mount tar
-
用 fdisk /dev/sda:
- 记住原
sda2 的起始扇区;
- 删除
sda2,用同样的起始扇区重建为 +512M;
- 新建
sda3,占用剩余所有空间;
w 保存,reboot。
-
格式化并挂载:
mkfs.ext4 /dev/sda3
mkdir -p /mnt/sda3
mount /dev/sda3 /mnt/sda3
-
用 tar 复制系统:
cat >/tmp/exclude.lst <<'EOF'
./dev/*
./proc/*
./sys/*
./tmp/*
./run/*
./mnt/sda3/*
EOF
cd /
tar --numeric-owner -cvf - -X /tmp/exclude.lst . | tar --numeric-owner -xvf - -C /mnt/sda3
5. 查 UUID:
```bash
block info | grep sda3
# 例如:UUID="c149d63f-1486-42db-b638-0996f7aafde3"
-
编辑 /etc/config/fstab:
config mount
option target '/'
option uuid 'c149d63f-1486-42db-b638-0996f7aafde3'
option fstype 'ext4'
option options 'rw,sync'
option is_rootfs '1'
option enabled '1'
option enabled_fsck '0'
-
启用并重启:
/etc/init.d/fstab enable
/etc/init.d/fstab restart
reboot
-
验证:
df -h
看到 / 的大小变成 19G+,说明成功。
八、最后的收获 & 建议
回顾这次折腾,总结几条对自己、对后来者都有用的点:
-
官方 OpenWrt + Firmware Selector 非常适合 x86 虚拟机
- 可以自己决定驱动和 LuCI;
- 内核与 kmod 仓库版本完全匹配,后期 opkg 装驱动、插件都很放心。
-
碰到 opkg_install_cmd: Cannot install package XXX 要先确认“源里有没有这个包”
- 不是所有旧版名字在新版本里都还存在,比如 24.10 里:
luci-i18n-opkg-zh-cn 已经被 luci-i18n-package-manager-zh-cn 取代。
-
Argon 主题在 24.10 上最好用 GitHub ipk 手动安装
- 下载时注意文件名,
wget -O 可以省不少事;
- 安装前顺手装上
luci-compat,兼容性更好。
-
虚拟机用 combined-ext4 镜像时,磁盘扩容建议走 extroot
- 在线
resize2fs 根分区会受内核限制;
- extroot/pivot-root 是 OpenWrt 社区用得非常多的一条路,可靠而且容易迁移。
现在这套环境已经做到:
- 飞牛 上一台官方 OpenWrt 24.10.4 x86/64 虚拟机;
- PCI 直通 Intel AC 7265,无线 AP 正常;
- LuCI 中文 + Argon 左侧菜单主题;
- 根分区扩容到 20G,折腾插件完全不用再看空间脸色。
如果你刚好也在折腾飞牛 + OpenWrt,希望这篇文章能帮你少掉几次重装和一堆“Cannot install package”的报错。
有什么更好的实现方式,欢迎留言一起交流。
文章使用AI生成,不过都是自己的操作过程汇总。可信度100%