From 7300531a538f2c3516397bf86f8a0d2d819fb3e4 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 25 May 2020 15:55:47 +0200 Subject: [dnbd3-rootfs] fallback to xmount --- modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh b/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh index 38a2dd72..f07d2803 100755 --- a/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh +++ b/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh @@ -86,13 +86,19 @@ done # endregion # region unpack dnbd3 image -[ -z "$SLX_QCOW_HANDLER" ] && SLX_QCOW_HANDLER="xmount" -if [ "$SLX_QCOW_HANDLER" = "xmount" ]; then - read_only_device="$(container_unpack_xmount "$_dnbd3_dev")" -elif [ "$SLX_QCOW_HANDLER" = "kernel" ]; then +if ! [[ $SLX_QCOW_HANDLER =~ ^(kernel|xmount)?$ ]]; then + emergency_shell "Unsupported QCOW handler: $SLX_QCOW_HANDLER" \ + "Use either 'xmount' or 'kernel'." +fi +if [ -z "$SLX_QCOW_HANDLER" ]; then + SLX_QCOW_HANDLER="xmount" + echo "SLX_QCOW_HANDLER='$SLX_QCOW_HANDLER'" >> /etc/openslx +fi +if [ "$SLX_QCOW_HANDLER" = "kernel" ]; then read_only_device="$(container_unpack_losetup "$_dnbd3_dev")" -else - warn "Unsupported QCOW handler: $SLX_QCOW_HANDLER" +fi +if [ -z "$read_only_device" ] || [ "$SLX_QCOW_HANDLER" = "xmount" ]; then + read_only_device="$(container_unpack_xmount "$_dnbd3_dev")" fi # Fail fast if unpacking dnbd3 image failed. -- cgit v1.2.3-55-g7522