| #!/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=$((cnt-1)) | |
| # 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" | |
| ) & |