场景
已经挂载的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