#!/bin/bash # Generate an automounter entry automatically # for automount /mnt/auto program this_script # (C) Klaus Knopper 2002 # WARNING: This script is used for removable media in KNOPPIX, fstype(){ [ -n "$1" ] || return 1 while read device mountpoint filesystem relax; do case "$device" in *$1*) echo "$filesystem"; return 0;; esac done </dev/null 2>&1 || return 2 FILE="$(LANG=C LC_ALL=C LC_MESSAGES=C file -Ls "$1")" [ "$?" = "0" ] || return 2 FILESYSTEMS="" case "$FILE" in *[Ff][Aa][Tt]*|*[Xx]86*) FILESYSTEMS="vfat msdos ntfs";; *[Rr][Ee][Ii][Ss][Ee][Rr]*) echo "reiserfs"; return 0;; *[Xx][Ff][Ss]*) echo "xfs"; return 0;; *[Ee][Xx][Tt]3*) echo "ext3"; return 0;; *[Ee][Xx][Tt]2*) echo "ext2"; return 0;; *[Ss][Ww][Aa][Pp]*) echo "swap"; return 0;; esac TMPDIR="/tmp/autmount.${1##*/}.$$.dir" mkdir -p "$TMPDIR" || return 3 FS="" read LOGLEVEL relax < /proc/sys/kernel/printk echo "0" >/proc/sys/kernel/printk for f in $FILESYSTEMS $(/dev/null 2>&1 && { umount "$TMPDIR"; FS="$f"; break; } umount -f "$TMPDIR" >/dev/null 2>&1 done echo "$LOGLEVEL" >/proc/sys/kernel/printk rmdir "$TMPDIR" [ -n "$FS" ] && echo "$FS" || return 4 } rw="rw" device="/dev/${1##*/}" case "$1" in floppy) [ -s /etc/sysconfig/floppy ] || exit 1; device="/dev/fd0";; cdrom*) rw="ro";; dvd*) rw="ro";; esac fs="$(fstype "$device")" [ "$?" = "0" ] || exit 1 case "$fs" in *fat|msdos) options="${rw},uid=knoppix,gid=knoppix,umask=000";; ntfs) options="ro,uid=knoppix,gid=knoppix,umask=0222";; iso9660) options="ro";; *) options="${rw}";; esac MNTLINE="-fstype=$fs,users,exec,$options :$device" echo "$MNTLINE"