mirror of
https://github.com/xopenwrt/X-OpenWrt-New.git
synced 2026-09-18 08:20:11 +00:00
添加 fake-automount for D2、C5
This commit is contained in:
@@ -92,4 +92,5 @@ alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias cls='clear'
|
||||
alias dh='df -h'
|
||||
alias syslog='cat /tmp/system.log 2> /dev/null'
|
||||
alias ramfree='sync && echo 3 > /proc/sys/vm/drop_caches'
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
#!/bin/sh
|
||||
|
||||
LOGGER() {
|
||||
echo $*
|
||||
logger -t "automount[$$]" "$*"
|
||||
}
|
||||
|
||||
[ -f /tmp/automount.pid ] && exit
|
||||
echo "$$" > /tmp/automount.pid
|
||||
|
||||
case "$HOTPLUG_TYPE,$DEVTYPE" in
|
||||
block,partition)
|
||||
mkdir -p /var/log/automount
|
||||
if [ "$ACTION" = remove ]
|
||||
then
|
||||
for disk in $(mount | awk '{print $1}' | grep /dev | egrep -v "mmcblk|mtdblock|loop");do
|
||||
part=$(mount | grep $disk | awk '{print $3}')
|
||||
[ ! "$part" ] && continue
|
||||
skip_umount=$(lsblk --list $disk > /dev/null 2>&1; echo $?)
|
||||
if [ "$skip_umount" = 0 -a "$force_umount" != 1 ]
|
||||
then
|
||||
LOGGER "Skip umounting [$part] ..."
|
||||
continue
|
||||
fi
|
||||
umount $part 2> /dev/null || umount -l $part 2> /dev/null
|
||||
sleep 1
|
||||
LOGGER "Successfully umounted invisible part [$part]"
|
||||
[ ! "$(ls -A $part)" ] && rm -rf $part
|
||||
done
|
||||
LOGGER "umount: Finished"
|
||||
fi
|
||||
if [ "$ACTION" = add ]
|
||||
then
|
||||
for part in $(lsblk --list | egrep -v "mmcblk|mtdblock" | grep part | awk '{print $1}');do
|
||||
skip_mount=$(mount | awk '{print $1}' | grep -q $part ; echo $?)
|
||||
fstype=$(block info /dev/$part | egrep -o 'TYPE="[0-9a-zA-Z].+' | awk -F '["]' '/TYPE/{print $2}')
|
||||
if [ -z "$fstype" ]
|
||||
then
|
||||
LOGGER "Unknown filesystem type of [/dev/$part]"
|
||||
continue
|
||||
fi
|
||||
if [ "$skip_mount" = 0 ]
|
||||
then
|
||||
LOGGER "Already mounted [/dev/$part] on this device"
|
||||
continue
|
||||
fi
|
||||
mkdir -p /mnt/$part
|
||||
chmod 777 /mnt/$part
|
||||
case "$fstype" in
|
||||
ntfs)
|
||||
extra_cmd="-o nls=utf8"
|
||||
;;
|
||||
vfat)
|
||||
extra_cmd="-o iocharset=utf8"
|
||||
;;
|
||||
esac
|
||||
LOGGER "Try to mount disk [/dev/$part]($fstype) on [/mnt/$part] ..."
|
||||
mount -t $fstype /dev/$part /mnt/$part -o rw,defaults $extra_cmd && LOGGER "Successfully mounted disk [/dev/$part] on [/mnt/$part]" || {
|
||||
LOGGER "Failed to mount disk [/dev/$part] on [/mnt/$part]"
|
||||
}
|
||||
sleep 1
|
||||
done
|
||||
LOGGER "mount: Finished"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
rm -f /tmp/automount.pid
|
||||
exit 0
|
||||
Reference in New Issue
Block a user