Adding debian version 3.0~a1-1.
[live-boot-grml.git] / scripts / live-bottom / 12fstab
index 389f53e..ba4a7a3 100755 (executable)
@@ -5,6 +5,7 @@
 # initramfs-tools header
 
 PREREQ=""
+FSTAB=/root/etc/fstab
 
 prereqs()
 {
@@ -18,21 +19,84 @@ case "${1}" in
                ;;
 esac
 
-# live-initramfs header
+# live-boot header
 
 . /scripts/live-functions
 
-log_begin_msg "Configuring fstab..."
+if [ -n "${NOFSTAB}" ]
+then
+       exit 0
+fi
 
-# live-initramfs script
+log_begin_msg "Configuring fstab"
 
-FSTAB=/root/etc/fstab
+# live-boot 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
+
+cat > ${FSTAB} << EOF
+# /etc/fstab: static file system information.
+#
+# <file system> <mount point>   <type>  <options>       <dump>  <pass>
 
-cat > $FSTAB <<EOF
-unionfs / unionfs rw 0 0
-tmpfs /tmp tmpfs nosuid,nodev 0 0
 EOF
 
-rm -f /root/etc/rcS.d/S*checkroot.sh
+fi
+
+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
+
+if [ -n "${SWAPON}" ]
+then
+       devices=""
+
+       for device in /dev/[hs]d[a-z][0-9]*
+       do
+               if ! [ -b "${device}" ]
+               then
+                       continue
+               fi
+
+               /sbin/blkid -o udev -p ${device%%[0-9]*} | grep -q "^ID_FS_USAGE=raid" && continue
+
+               magic=$(/bin/dd if="${device}" bs=4086 skip=1 count=1 2>/dev/null | /bin/dd bs=10 count=1 2>/dev/null) || continue
+
+               if [ "${magic}" = "SWAPSPACE2" -o "${magic}" = "SWAP-SPACE" ]
+               then
+                       #log "Found ${device}"
+                       devices="${devices} ${device}"
+               fi
+       done
+
+       # Remove all auto swap entries
+       if grep -qs  "swap swap" "${FSTAB}"
+       then
+               grep -v "swap swap" "${FSTAB}" > "${FSTAB}".tmp
+               mv "${FSTAB}".tmp "${FSTAB}"
+       fi
+
+       # Add new swap entries
+       for device in ${devices}
+       do
+               echo "${device} swap swap defaults 0 0" >> "${FSTAB}"
+       done
+fi
+
+# disabled for now
+#rm -f /root/etc/rcS.d/S*checkroot.sh
+
+if [ "${NOFASTBOOT}" != "Yes" ]
+then
+       touch root/fastboot
+fi
 
 log_end_msg