SuperAPI AI 工具集

openwrt-storage-mount

部署与运维

查看项目

更新于 10-15 21:48

技能介绍

用途:在 OpenWrt 上解释并配置块设备存储,重点是 USB 磁盘热插拔自动挂载、fstab UCI 生成与 hotplug 事件流理解。核心原则是先弄清事件流与挂载所有权:block-mount 的 10-mount 已拥有挂载权,自定义 hotplug 脚本只做补充动作,绝不二次挂载。

主要能力:区分任务类型——配置自动挂载走 Workflow A;写 hotplug 附加脚本走 Workflow B;选 kmod 参考 kmod-storage;排查“插盘无反应”沿事件流定位。事件流为内核 uevent → procd 按 hotplug.json 匹配 → /sbin/hotplug-call → 按字序 source /etc/hotplug.d/$1/*。挂载由 fstab UCI 决定,首启时 /etc/uci-defaults/10-fstab 在 /etc/config/fstab 不存在时执行 block detect 生成;开机由 /etc/init.d/fstab(START=11)执行 block mount。

使用方式:Workflow A 先 opkg update,再 opkg install block-mount kmod-usb-storage kmod-fs-ext4(NTFS 加 kmod-fs-ntfs3,exFAT 加 kmod-fs-exfat,btrfs 加 kmod-fs-btrfs),然后 block detect > /etc/config/fstab,用 uci set fstab.@mount[-1].target='/mnt/sda1'、enabled='1' 并 commit,最后 block mount && df -h 验证。Workflow B 脚本放 /etc/hotplug.d/block/50-<name>,序号须大于 10,只做扫描、点灯、通知等补充动作,并后台化避免阻塞。

适用场景:路由器或 NAS 型 OpenWrt 设备接入 USB 存储、需要开机自动挂载、需要附加热插拔动作或排查挂载失败。

限制:不做构建期预置包、init.d 服务脚手架、RAID/LVM 与 Samba/NFS 教学;kmod 版本必须等于 uname -r;不要混用 uuid 与 device;NTFS/exFAT 可挂可写但长期数据盘建议 ext4;无设备时结论标 Pending HIL。