#!/bin/sh set -x MOUNTPOINT="$1" [ -z "$MOUNTPOINT" ] && echo "No mountpoint specified" && exit 1 mkdir -p "$MOUNTPOINT" mount_drive() { # TODO fix for multiple disks, cdroms etc DEVS="$(find /dev -maxdepth 1 -type b ! -name 'loop*' ! -name 'nbd*' | grep -v '[0-9]$' | sed 's@.*/dev/@@' | sort)" for DEV in $DEVS do DRIVE="/dev/${DEV}" # see if it has a partition table if sfdisk -d "${DRIVE}" >/dev/null 2>/dev/null then # 83 is Linux partition identifier DATA=$(sfdisk -J "$DRIVE" | jq -e -r '.partitiontable.partitions | map(select(.type=="83")) | .[0].node') if [ $? -eq 0 ] then mount "$DATA" "$MOUNTPOINT" && return fi fi done echo "WARNING: Failed to mount a persistent volume (is there one?)" } mount_drive