diff --git a/etc/autofs/special_media b/etc/autofs/special_media index 65bcf5a62b01..1e2c2552183e 100755 --- a/etc/autofs/special_media +++ b/etc/autofs/special_media @@ -32,6 +32,26 @@ print_available() { } # Print a single map entry. +print_map_entry() { + local _fstype _p + + _fstype="$1" + _p="$2" + + if [ "${_fstype}" = "ntfs" ]; then + if [ -f "/usr/local/bin/ntfs-3g" ]; then + echo "-mountprog=/usr/local/bin/ntfs-3g,fstype=${_fstype},nosuid :/dev/${_p}" + else + /usr/bin/logger -p info -t "special_media[$$]" \ + "Cannot mount ${_fstype} formatted device /dev/${_p}: Install sysutils/fusefs-ntfs first" + exit 1 + fi + else + echo "-fstype=${_fstype},nosuid :/dev/${_p}" + fi +} + +# Determine map entry contents for the given key and print out the entry. print_one() { local _fstype _fstype_and_label _label _key _p @@ -39,7 +59,7 @@ print_one() { _fstype="$(fstyp "/dev/${_key}" 2> /dev/null)" if [ $? -eq 0 ]; then - echo "-fstype=${_fstype},nosuid :/dev/${_key}" + print_map_entry "${_fstype}" "${_key}" return fi @@ -67,7 +87,7 @@ print_one() { continue fi - echo "-fstype=${_fstype},nosuid :/dev/${_p}" + print_map_entry "${_fstype}" "${_p}" done # No matching device - don't print anything, autofs will handle it.