各位大神,我在开机前插上U盘,U盘能自动挂载。但是开机后拔下U盘再插上就不能自动挂载,但手动可以挂载,不知道是什么原因。以下是我相关文件的内容
rcS文件中挂载的相关内容:
echo -n " Mounting /proc : "
mount -n -t proc /proc /proc
status $? 1
echo -n " Mounting /sys : "
mount -n -t sysfs sysfs /sys
status $? 1
echo -n " Mounting /dev : "
mount -n -t tmpfs mdev /dev
status $? 1
echo -n " Mounting /dev/pts : "
mkdir /dev/pts
mount -t devpts devpts /dev/pts
status $? 1
echo -n " Enabling hot-plug : "
echo "/sbin/mdev" > /proc/sys/kernel/hotplug
status $? 0
echo -n " Populating /dev : "
mkdir /dev/input
mdev -s
status $? 0
fstab文件内容:
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
none /dev/pts devpts mode=0622 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
mdev.conf文件内容:
sd[a-z][0-9] 0:0 666 @(/etc/hotplug/usb/udisk_insert $MDEV $SUBSYSTEM)
sd[a-z] 0:0 666 $(/etc/hotplug/usb/udisk_remove $MDEV $SUBSYSTEM)
ub[a-z][0-9] 0:0 666 @(/etc/hotplug/usb/udisk_insert $MDEV $SUBSYSTEM)
ub[a-z] 0:0 666 $(/etc/hotplug/usb/udisk_remove $MDEV $SUBSYSTEM)
audio 0:5 0666
console 0:5 0600
control.* 0:0 0660 @/bin/mv /dev/$MDEV /dev/snd/
dsp 0:5 0666
event.* 0:0 0600 @/bin/mv /dev/$MDEV /dev/input/
fb 0:5 0666
nfs 0:5 0770
null 0:0 0777
pcm.* 0:0 0660 @/bin/mv /dev/$MDEV /dev/snd/
rtc 0:0 0666
tty 0:5 0660
tty0* 0:5 0660
tty1* 0:5 0660
tty2* 0:5 0660
tty3* 0:5 0660
tty4* 0:5 0660
tty5* 0:5 0660
tty6* 0:5 0660
ttyS* 0:5 0640
urandom 0:0 0444
zero 0:0 0666
etc/hotplug/usb/udisk_insert内容:
if [ -n "$1" ] ; then
if [ -b /dev/$1 ]; then
if [ ! -d /mnt/usb ]; then
mkdir -p /mnt/usb
fi
mount /dev/$1 /mnt/usb
if [ $? -ne 0 ]; then
rm -rf /mnt/usb
fi
fi
fi
etc/hotplug/usb/udisk_remove内容:
MOUNTS=$(mount | grep $1 | cut -d' ' -f3)
umount $MOUNTS
rm -rf $MOUNTS
各位大神帮帮忙
------解决方案--------------------
可以移植udev实现自动挂载:
Udev 是Linux kernel 2.6系列的设备管理器。它的主要功能是管理/dev目录下设备节点。同时用来接替devfs及hotplug的功能,也就是它要在添加/删除硬件、加载firmware时处理/dev目录以及所有用户空间的行为。
从网站http://www.us.kernel.org/pub/linux/utils/kernel/hotplug/下载udev-080.tar.bz2源码,
解压udev源码包
Host# tar jxvf udev-080.tar.bz2
解压后生成目录udev-080。
进入udev-080文件目录,执行如下命令进行编译:
Host# cd udev-080
Host# make clean
Host# make
编译遇到有“offsetof”字样提示的错误信息时,将udevmonitor.c文件第53行
addrlen = offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path +1) + 1;
改为
addrlen = __builtin_offsetof(struct sockaddr_un, sun_path) + strlen(saddr.sun_path+1) + 1;
编译就能通过。
进入udev-080文件目录,将udev udevd udevstart udevinfo udevtest拷贝到板卡文件系统bin目录下,将etc/udev目录拷贝到板卡文件系统etc目录下。
在板卡文件系统etc/init.d/rcS文件中添加如下内容:
/bin/udevd --daemon
/bin/udevstart
这样以后就能实现自动挂载了。不仅仅是U盘哦。