OpenWRT通过以太网挂载外置硬盘实现根文件系统替换方案


阅读 8 次

需求场景与技术可行性

最近在规划一个低成本NAS方案,打算用二手路由器刷OpenWRT作为基础平台。核心需求是将根文件系统从闪存迁移到外置存储,解决路由器自带存储空间不足的问题。经过调研,发现有两种技术路径可选:

  • 使用以太网硬盘盒(如WD My Book Live这类设备)
  • 通过USB-Ethernet转换器连接USB硬盘

以太网硬盘盒方案实现

以常见的RTL8153芯片方案为例,首先需要确认OpenWRT内核是否包含对应驱动:

# 检查内核模块
opkg update
opkg install kmod-usb-net-rtl8152

# 查看网络接口
ifconfig -a

挂载NFS共享的配置示例:

# /etc/config/fstab 配置片段
config mount
    option target    '/overlay'
    option device    '192.168.1.100:/share'
    option fstype    'nfs'
    option options   'rw,nolock'
    option enabled   '1'

USB-Ethernet转换方案

使用AX88179芯片的转换器时,需要特别注意内核版本兼容性。以下是实际测试过的驱动加载流程:

# 安装必要驱动
opkg install kmod-usb-net kmod-usb-net-asix-ax88179

# 持久化USB网络接口
echo "options ax88179_178a eth_name=eth1" > /etc/modprobe.d/ax88179.conf

性能优化要点

在MT7621平台上的实测数据显示:

方案 读取速度 写入速度
原生USB3.0 98MB/s 85MB/s
USB-Ethernet 37MB/s 28MB/s
NFS共享 52MB/s 41MB/s

实际部署中的坑

遇到最典型的问题是启动顺序依赖,解决方案是在/etc/rc.local添加延迟挂载:

sleep 10
mount -a

另一个常见问题是文件系统权限,建议在fstab中添加noatime,nodiratime参数减少写入操作。

替代方案对比

如果追求更高性能,可以考虑:

  • 使用SATA转USB3.0方案(需确认路由器USB供电能力)
  • 直接选用带SATA接口的开发板(如RockPi X
  • 通过mSATA SSD+USB转接卡组合