#!/usr/bin/env bash # Copyright (c) Edgeless Systems GmbH # # SPDX-License-Identifier: AGPL-3.0-only set -euo pipefail shopt -s extglob nullglob inherit_errexit AWS_STATE_DISK_DEVICENAME="sdb" AWS_STATE_DISK_SYMLINK="/dev/${AWS_STATE_DISK_DEVICENAME}" function onError { echo "Failed to symlink state disk" sleep 2 # give the serial console time to print the error message } trap onError ERR # hack: aws nvme udev rules are never executed. Create symlinks for the nvme devices manually. while [[ ! -L ${AWS_STATE_DISK_SYMLINK} ]]; do for nvmedisk in /dev/nvme*n1; do linkname=$(nvme amzn id-ctrl -b "${nvmedisk}" | tail -c +3073 | head -c 32 | tr -d ' ') || true if [[ -n ${linkname} ]] && [[ ${linkname} == "${AWS_STATE_DISK_DEVICENAME}" ]]; then ln -s "${nvmedisk}" "${AWS_STATE_DISK_SYMLINK}" fi done if [[ -L ${AWS_STATE_DISK_SYMLINK} ]]; then break fi echo "Waiting for state disk to appear.." sleep 2 done echo "AWS state disk found" echo "${AWS_STATE_DISK_SYMLINK}" → "$(readlink -f "${AWS_STATE_DISK_SYMLINK}")"