openwrt usb热插拔 u盘或移动硬盘热插自动挂载

2024-05-29 128 0

场景

已经挂载的U盘/移动硬盘,有时需要拔出来插电脑用,重新插入openwrt,默认不会再次自动挂载,需要手动mount,着实有点麻烦。

这里配置支持usb热插拔,实现拔出U盘,移除设备(删除/mnt/对应卷符),插入移动硬盘,挂载设备(创建/mnt/对应卷符)

其实正确做法:

umount /dev/sdx 或 umount /mnt/mount_path
mount /dev/sdx /mnt/mount_path

懒人大法走起

openwrt 编译启用相关配置

添加USB相关支持

Kernel modules --> USB Support -->  <*> kmod-usb-core.  # 默认已经选了
Kernel modules --> USB Support --> <*> kmod-usb-ohci.  # 默认已选 old usb1.0
Kernel modules --> USB Support --> <*> kmod-usb-uhci.  # usb1.1
Kernel modules --> USB Support --> <*> kmod-usb-storage.
Kernel modules --> USB Support --> <*> kmod-usb-storage-extras.
Kernel modules --> USB Support --> <*> kmod-usb2.  # 默认已经选了 usb2.0

添加SCSI支持

Kernel modules --> Block Devices --> <*>kmod-scsi-core  # 默认已经选了 usb3.0

添加USB挂载

Base system --> <*>block-mount

添加文件系统支持

Kernel modules --> Filesystems --> <*> kmod-fs-ext4 (移动硬盘EXT4格式选择)
Kernel modules --> Filesystems --> <*> kmod-fs-vfat(FAT16 / FAT32 格式 选择)
Kernel modules --> Filesystems --> <*> kmod-fs-ntfs (NTFS 格式 选择)

退出保存进行编译操作

编辑热挺拔配置文件

使用网络上编译好的固件 一般都有usb支持的

vim   /etc/hotplug.d/block/10-mount 
# !/bin/ash
#[ "$ACTION" = "add" -o "$ACTION" = "remove" ] && /sbin/block hotplug # 注释默认配置
case "$ACTION" in
    add)
        for i in $(ls /dev/ | grep 'sd[a-z][1-9]'); do
            mkdir -p /mnt/$i
            mount -o iocharset=utf8,rw /dev/$i /mnt/$i
            if [ $? -ne 0 ]; then
                mount -o rw /dev/$i /mnt/$i
            fi
        done
        ;;
    remove)
        MOUNT=`mount | grep -o '/mnt/sd[a-z][1-9]'`
        for i in $MOUNT; do
            umount $i
            if [ $? -eq 0 ]; then
                rm -r $i
            fi
        done
        ;;
esac

相关文章

openwrt 移动硬盘开机挂载失效解决
Ubuntu 22.04 安装 Wireguard
Linux 使用rsync快速删除海量文件目录
Sftp多用户 多目录不同权限配置
acme.sh 申请ZeroSSL泛域名证书

发布评论