diff options
author | Simon Rettberg | 2013-10-24 14:40:17 +0200 |
---|---|---|
committer | Simon Rettberg | 2013-10-24 14:40:17 +0200 |
commit | 7695585b2c0d8ba66d72d6eb6b89ccaaf12d12b3 (patch) | |
tree | c35fa686e814ef7e91ff40694a97ff59bd0aa1e6 /remote/rootfs/rootfs-stage32/data | |
parent | Merge branch 'master' of simonslx:openslx-ng/tm-scripts (diff) | |
download | tm-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')
-rwxr-xr-x | remote/rootfs/rootfs-stage32/data/opt/openslx/scripts/systemd-setup_partitions | 38 |
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 |