summaryrefslogtreecommitdiffstats
path: root/modules.d/dnbd3-rootfs
diff options
context:
space:
mode:
authorJonathan Bauer2020-05-25 15:55:47 +0200
committerJonathan Bauer2020-05-25 15:55:47 +0200
commit7300531a538f2c3516397bf86f8a0d2d819fb3e4 (patch)
tree51c3d0df9275b2610deff05d16c1e0e5815d7531 /modules.d/dnbd3-rootfs
parentbuild-initramfs: exit if compiling any dependencies fail (diff)
downloadsystemd-init-7300531a538f2c3516397bf86f8a0d2d819fb3e4.tar.gz
systemd-init-7300531a538f2c3516397bf86f8a0d2d819fb3e4.tar.xz
systemd-init-7300531a538f2c3516397bf86f8a0d2d819fb3e4.zip
[dnbd3-rootfs] fallback to xmount
Diffstat (limited to 'modules.d/dnbd3-rootfs')
-rwxr-xr-xmodules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh18
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.