在嵌入式Linux中我们经常用到U盘、SD卡等存储设备,每次手动挂载或卸载非常麻烦,因此可以采用以下方法实现它们的自动挂载或卸载:
1、 首先在 /etc/init.d/rcS 中加入以下语句
echo /sbin/mdev > /proc/sys/kernel/hotplug
2、在 /etc 目录下建立 medv.conf 的文件,并输入以下内容
sd[a-z][0-9] 0:0 666 @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
sd[a-z] 0:0 666 $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
ub[a-z][0-9] 0:0 666 @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
ub[a-z] 0:0 666 $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
mmcblk[0-9]p[0-9] 0:0 666 @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
mmcblk[0-9] 0:0 666 $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
3、在 /etc 目录下建立目录 hotplug,并在 /etc/hotplug 目录下创建 insert.sh 和 remove.sh 两个文件,文件内容如下:
insert.sh
#!/bin/sh
if [ -n "$1" ] ; then
if [ -b /dev/$1 ]; then
if [ ! -d /media ]; then
mkdir -p /media
fi
if [ ! -d /media/$1 ]; then
mkdir -p /media/$1
fi
mount /dev/$1 /media/$1
if [ $? -ne 0 ]; then
rm -rf /media/$1
fi
fi
fi
remove.sh
#!/bin/sh
MOUNTS=$(mount | grep $1 | cut -d' ' -f3)
umount $MOUNTS
rm -rf $MOUNTS
4、添加执行权限
chmod 777 insert.sh
chmod 777 remove.sh
经过以上步骤后,插入U盘、SD等存储设备时,即可在 /media 目录下建立相应的文件夹,挂载对应的设备。
注1:以上的步骤中没有涉及到busybox应该怎样配置才能支持mdev、支持热插拔
注2:以上的步骤中没有涉及到 /etc/init.d/rcS内容的配置