constellation/image/initrd/mkosi.skeleton/usr/sbin/gcp-nvme-disk
2023-09-27 17:58:19 +02:00

32 lines
837 B
Bash
Executable File

#!/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
GCP_STATE_DISK_SYMLINK="/dev/disk/by-id/google-state-disk"
function onError {
echo "Failed to symlink state disk"
sleep 2 # give the serial console time to print the error message
}
trap onError ERR
# hack: gcp nvme udev rules are never executed. Create symlinks for the nvme devices manually.
while [[ ! -L ${GCP_STATE_DISK_SYMLINK} ]]; do
for nvmedisk in /dev/nvme?n?; do
/usr/lib/udev/google_nvme_id -s -d "${nvmedisk}"
done
if [[ -L ${GCP_STATE_DISK_SYMLINK} ]]; then
break
fi
echo "Waiting for state disk to appear.."
sleep 2
done
echo "GCP state disk found"
echo "${GCP_STATE_DISK_SYMLINK}""$(readlink -f "${GCP_STATE_DISK_SYMLINK}")"