bailout 0
fi
-grep -q 'nolabel' /proc/cmdline && NOLABEL='TRUE' || LABEL='TRUE'
-
-
-
if [ "$CONFIG_FSTAB" = "no" ] ; then
bailout 0
fi
bailout 1
fi
+LABEL=true # by default use labels
+
+if [ -r /etc/grml/rebuildfstab.conf ] ; then
+ logit 'Reading /etc/grml/rebuildfstab.conf'
+ . /etc/grml/rebuildfstab.conf
+
+ if [ "$LABEL" = "false" ] ; then
+ logit 'Disabling LABEL=... in /etc/fstab as requested via LABEL=false'
+ fi
+fi
+
+# support overriding via boot option
+if grep -q ' nolabel' /proc/cmdline ; then
+ LABEL=false
+fi
+
+if grep -q ' label' /proc/cmdline ; then
+ LABEL=true
+fi
+
# default directories {{{
if [ -d "$MOUNTPOINT_PREFIX" ] ; then
[ -d "$MOUNTPOINT_PREFIX/floppy" ] || mkdir "$MOUNTPOINT_PREFIX/floppy"
break;
;;
*)
-if [ -n "$LABEL" ] && [ -n "$ID_FS_LABEL_ENC" ] ; then
+if "$LABEL" && [ -n "$ID_FS_LABEL_ENC" ] ; then
# see check_for_label() in scanpartitions for details
case $ID_FS_LABEL_ENC in
*\x*)
- addinfo=" # special char in label ($ID_FS_LABEL_ENC) not supported"
+ logit "special char in label ($ID_FS_LABEL_ENC) not supported, skipping label for $DEVNAME"
break ;;
*)
echo "LABEL=$ID_FS_LABEL_ENC"
options=noauto,user,dev,suid,exec
case $ID_FS_TYPE in
ntfs)
- options=$options,ro,umask=000
+ options=$options,dmask=000,fmask=111
;;
vfat|msdos)
- options=$options,umask=000
+ options=$options,dmask=000,fmask=111
;;
ufs)
options=$options,ro
;;
esac
+# when we don't use labels then write the label information into the comment
+if ! "$LABEL" && [ -n "$ID_FS_LABEL_ENC" ] ; then
+ addinfo="# LABEL=$ID_FS_LABEL_ENC"
+ devinfo=""
+else # otherwise (when using labels) write the device name into the comment
+ devinfo="# $DEVNAME"
+fi
+
case $ACTION in
add|change)
(
flock -x 200
echo "$ADDEDBYGRML $DEVNAME" >> /etc/fstab
- echo "$device $mountpoint $ID_FS_TYPE $options 0 0 $addinfo # $DEVNAME" >> /etc/fstab
+ echo "$device $mountpoint $ID_FS_TYPE $options 0 0 ${addinfo}${devinfo}" >> /etc/fstab
) 200>/var/run/rebuildfstab.lock