diff options
Diffstat (limited to 'modules.d/dnbd3-rootfs/hooks')
-rwxr-xr-x | modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh | 18 |
1 files 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. |