#!/bin/sh # Seconds to try to reread partition table cnt=60 exec </dev/null exec >"/tmp/${0##*/}.$$.out" exec 2>&1 ( echo "Running: $0" echo "Env:" env | sort while sleep 1; test $cnt != 0; do echo "Trying to reread partition table on $DEVNAME ($cnt)" : $((cnt--)) # If device node doesn't exist, it means the device was removed. # Stop trying. test -e "$DEVNAME" || { echo "$DEVNAME doesn't exist, aborting"; exit 1; } #echo "$DEVNAME exists" if blockdev --rereadpt "$DEVNAME"; then echo "blockdev --rereadpt succeeded" exit 0 fi echo "blockdev --rereadpt failed, exit code: $?" done echo "Timed out" ) &