为OpenWrt添加外接硬盘,能让路由器变身轻量级的家庭NAS。操作前,请确保你的OpenWrt设备USB接口和供电充足(移动硬盘可能需要额外供电),并已安装必要驱动和软件包。
下面表格汇总了主要步骤和要点:
| 步骤 | 核心操作 | 关键点/命令 |
|---|---|---|
| 1. 安装基础组件 | 安装USB、文件系统、挂载工具 | kmod-usb-core, kmod-usb-storage, kmod-fs-xxx (如kmod-fs-ext4, kmod-fs-ntfs3), block-mount |
| 2. 连接与识别硬盘 | 连接硬盘,检查系统是否识别 | ls /dev/sd* 或 fdisk -l |
| 3. 手动挂载测试 | 创建目录并挂载,测试基础功能 | mkdir -p /mnt/usb mount /dev/sda1 /mnt/usb |
| 4. 配置自动挂载 | 通过Web界面或脚本实现开机自动挂载 | Web界面 (推荐): "系统" -> "挂载点" 脚本方式: 编辑 /etc/hotplug.d/block/10-mount |
| 5. 高级应用 (可选) | 配置交换分区或Samba共享 | 交换文件: dd创建文件 -> mkswap -> swapon Samba共享: 安装 samba4-server 和 Luci应用 |
🔧 操作指南
-
安装必要的软件包
首先,需要通过SSH连接到OpenWrt,更新软件列表并安装基础包。不同文件系统需要不同的内核模块:- EXT4:
kmod-fs-ext4 - NTFS:
kmod-fs-ntfs或性能更好的kmod-fs-ntfs3 - FAT/VFAT:
kmod-fs-vfat - exFAT:
kmod-fs-exfat
- EXT4:
-
连接硬盘并检查识别
连接硬盘后,使用fdisk -l命令来查看所有存储设备,找到你的外接硬盘及其分区(例如/dev/sda1)。使用ls /dev/sd*是更快捷的查看方法 。 -
手动挂载测试
建议先手动挂载,验证一切正常:# 创建挂载点目录 mkdir -p /mnt/usb # 手动挂载硬盘 mount /dev/sda1 /mnt/usb # 检查是否挂载成功 df -h如果能看到
/mnt/usb并显示容量,说明挂载成功 。 -
配置自动挂载 (两种方法)
- 通过Web界面 (最简便) :
进入OpenWrt的Web管理界面,找到"系统" -> "挂载点"。在"挂载点"区域点击"添加",在"UUID"处选择你的硬盘分区,在"挂载点"处填写自定义路径(如/mnt/usb),然后勾选"已启用",最后"保存并应用"。
小技巧:对于NTFS文件系统,如果遇到断电后硬盘因"脏状态"无法自动挂载,可以在挂载选项里填写force,iocharset=utf8来解决并确保中文显示正常 。 - 通过脚本 (更灵活) :
对于不支持Web界面配置的老版本,可以编辑/etc/hotplug.d/block/10-mount这个文件,实现硬盘插上时自动挂载,拔出时自动卸载。
- 通过Web界面 (最简便) :
🚀 高级应用
-
启用交换分区/文件:如果你的路由器内存较小,可以在硬盘上创建交换文件来扩展虚拟内存 。
# 创建一个512MB的交换文件 dd if=/dev/zero of=/mnt/usb/swapfile bs=1M count=512 # 格式化此文件为交换分区 mkswap /mnt/usb/swapfile # 立即启用交换文件 swapon /mnt/usb/swapfile之后,同样可以在Web界面"系统"->"挂载点"->"交换分区"中添加
/mnt/usb/swapfile使其开机自动启用 。注:使用硬盘上的交换文件可能会影响硬盘休眠 。
-
配置Samba网络共享:这是将硬盘变成局域网共享存储的关键。
- 安装Samba软件包:
samba4-server和对应的Luci配置界面luci-app-samba4。 - 在Web界面"服务"->"网络共享"中添加共享目录,指定路径为你的挂载点(如
/mnt/usb),并设置允许访问的用户 。
- 安装Samba软件包:
💡 实用命令与提示
- 查看磁盘信息:
lsblk或blkid /dev/sda1(查看UUID) - 卸载硬盘:
umount /mnt/usb - 重要建议:
- 使用 UUID 而非设备名(如
/dev/sda1)进行挂载配置,因为设备名可能在重启后发生变化,而UUID是唯一的 。 - 确保你的OpenWrt设备能为外接硬盘提供充足的供电,否则可能导致硬盘无法识别或工作不稳定。
- 使用 UUID 而非设备名(如
希望这份指南能帮助你顺利扩展OpenWrt的存储能力。如果你在操作过程中遇到具体问题,例如某个步骤报错,欢迎随时追问。

Leave a Reply to David唐辉 Cancel reply