summaryrefslogtreecommitdiffstats
path: root/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts
diff options
context:
space:
mode:
authorSimon Rettberg2013-10-24 14:40:17 +0200
committerSimon Rettberg2013-10-24 14:40:17 +0200
commit7695585b2c0d8ba66d72d6eb6b89ccaaf12d12b3 (patch)
treec35fa686e814ef7e91ff40694a97ff59bd0aa1e6 /remote/rootfs/rootfs-stage32/data/opt/openslx/scripts
parentMerge branch 'master' of simonslx:openslx-ng/tm-scripts (diff)
downloadtm-scripts-7695585b2c0d8ba66d72d6eb6b89ccaaf12d12b3.tar.gz
tm-scripts-7695585b2c0d8ba66d72d6eb6b89ccaaf12d12b3.tar.xz
tm-scripts-7695585b2c0d8ba66d72d6eb6b89ccaaf12d12b3.zip
[rootfs-stage32] Retry partition mounting after 2 seconds if none found on first try
Also re-enable mounting of persistent scratch partition (45) if found
Diffstat (limited to 'remote/rootfs/rootfs-stage32/data/opt/openslx/scripts')
-rwxr-xr-xremote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions38
1 files changed, 28 insertions, 10 deletions
diff --git a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
index da0cea5d..d8a016ab 100755
--- a/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
+++ b/remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions
@@ -14,13 +14,17 @@
#############################################################################
+PERSISTENT="/opt/openslx/persistent"
# General formatter for the /tmp partition on a local harddisk
diskfm () {
+ mopt="" # Global var!
local target="$1"
+ local fslist="xfs jfs ext3 ext2 ext4"
local fs
local path
- for fs in xfs ext3 ext2 ; do
+ [ $# -ge 2 ] && fslist="$2"
+ for fs in $fslist ; do
unset available
case $(cat /proc/filesystems) in
*${fs}*) available=yes;;
@@ -39,10 +43,18 @@ diskfm () {
fopt="-Fq"
mopt="-o nocheck,noexec"
;;
+ mkfs.ext3|mkfs.ext4)
+ fopt="-Fq"
+ mopt="-o noexec"
+ ;;
mkfs.reiserfs)
fopt="-f"
mopt="-o noexec"
;;
+ mkfs.jfs)
+ fopt="-q"
+ mopt="-o noexec"
+ ;;
esac
mkfs.$fs ${fopt} "${target}"
fi
@@ -105,8 +117,8 @@ for hdpartnr in $(sed -n -e "/ 44 /p" "/etc/disk.partition" | sed -e "s/[[:space
# check for supported filesystem and formatter
if diskfm "$hdpartnr"; then
# echo "$hdpartnr is mounted to /mnt/tmp at $(sysup)" >/tmp/tmpready
- mount_temp "$hdpartnr" || continue
- echo -e "$hdpartnr\t/tmp\t\tnoauto\t\tdefaults\t 0 0" >> "/etc/fstab"
+ mount_temp "$mopt" "$hdpartnr" || continue
+ echo -e "${hdpartnr}\t/tmp\t\tauto\t\tnoexec\t 0 0" >> "/etc/fstab"
break
else
echo "formatting failed for some reason"
@@ -115,17 +127,22 @@ done
# Put detected linux partitions (83) into /etc/fstab with "noauto", special
# partition 45 (persistent scratch) to /var/scratch and 46 to /var/openslx
+HAVE_PERSISTENT=no
for partid in 83 45 46 ; do
for hdpartnr in $(sed -n -e "/ ${partid} /p" "/etc/disk.partition" | sed -e "s/[[:space:]].*//"); do
- mkdir -p "/media/${hdpartnr#/dev/*}"
if [ "${partid}" -eq 83 ]; then
- echo -e "$hdpartnr\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,noexec\t 0 0" >> "/etc/fstab"
- elif [ "${partid}" -eq 45 ]; then
- #mount -t auto ${hdpartnr} /media/${hdpartnr#/dev/*}
- #ln -sf /media/${hdpartnr#/dev/*} /var/scratch
- echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto\t\t 0 0" >> "/etc/fstab"
+ mkdir -p "/media/${hdpartnr#/dev/*}"
+ echo -e "${hdpartnr}\t/media/${hdpartnr#/dev/*}\tauto\t\tnoauto,noexec\t 0 0" >> "/etc/fstab"
+ elif [ "${partid}" -eq 45 -a "$HAVE_PERSISTENT" = "no" ]; then
+ mkdir -p "$PERSISTENT"
+ if ! mount -t auto -o noexec "${hdpartnr}" "$PERSISTENT"; then
+ diskfm "$hdpartnr" "jfs xfs ext3" || continue
+ mount -t auto -o noexec "${hdpartnr}" "$PERSISTENT" || continue
+ fi
+ HAVE_PERSISTENT=yes
+ echo -e "${hdpartnr}\t${PERSISTENT}\tauto\t\tnoauto,noexec\t\t 0 0" >> "/etc/fstab"
elif [ "${partid}" -eq 46 ]; then
- # Mount a home directory to (/mnt)/var/home
+ mkdir -p "/media/${hdpartnr#/dev/*}"
#mount -t auto ${hdpartnr} /mnt/media/${hdpartnr#/dev/*} \n\
#test -d /mnt/media/${hdpartnr#/dev/*}/home && \
# ln -sf /media/${hdpartnr#/dev/*} /var/home
@@ -133,6 +150,7 @@ for partid in 83 45 46 ; do
fi
done
done
+[ "$HAVE_PERSISTENT" = "no" -a -d "$PERSISTENT" ] && rm -f "$PERSISTENT"
mount -a