Correcting fstab handling to not always append entries forever when using persistency.
[live-boot-grml.git] / scripts / live-bottom / 12fstab
index ca83626..d246a59 100755 (executable)
@@ -28,23 +28,32 @@ then
        exit 0
 fi
 
-if [ -s ${FSTAB} ]
+log_begin_msg "Configuring fstab"
+
+# live-initramfs script
+
+# Create a fake fstab only if it doesn't exist or if its the debootstrap template
+if [ ! -f "${FSTAB}" ] || grep -qs 'UNCONFIGURED FSTAB FOR BASE SYSTEM' "${FSTAB}"
 then
-       log_begin_msg "Not touching preexisting fstab..."
-else
-       log_begin_msg "Configuring fstab..."
-
-       cat >> ${FSTAB} <<-EOF
-       # /etc/fstab: static file system information.
-       #
-       # <file system> <mount point>   <type>  <options>       <dump>  <pass>
-       ${UNIONTYPE} / ${UNIONTYPE} rw 0 0
-       tmpfs /tmp tmpfs nosuid,nodev 0 0
-       EOF
+
+cat > ${FSTAB} << EOF
+# /etc/fstab: static file system information.
+#
+# <file system> <mount point>   <type>  <options>       <dump>  <pass>
+
+EOF
+
 fi
 
-# live-initramfs script
+if ! grep -qs  "^${UNIONTYPE}" "${FSTAB}"
+then
+       echo "${UNIONTYPE} / ${UNIONTYPE} rw 0 0" >> "${FSTAB}"
+fi
 
+if ! grep -qs "^tmpfs /tmp" "${FSTAB}"
+then
+       echo "tmpfs /tmp tmpfs nosuid,nodev 0 0" >> "${FSTAB}"
+fi
 
 # disabled for now
 #rm -f /root/etc/rcS.d/S*checkroot.sh