summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Bauer2020-06-05 17:32:19 +0200
committerJonathan Bauer2020-06-05 17:32:19 +0200
commitc46db51a44224ad644b61f85ceb7c21a1ef245f4 (patch)
treef599ed34642284989631177290385737afbb4aab
parent[dnbd3-rootfs] minor formatting (diff)
parent[dnbd3-rootfs] KCL > SLX_DNBD3_IMAGE (diff)
downloadsystemd-init-c46db51a44224ad644b61f85ceb7c21a1ef245f4.tar.gz
systemd-init-c46db51a44224ad644b61f85ceb7c21a1ef245f4.tar.xz
systemd-init-c46db51a44224ad644b61f85ceb7c21a1ef245f4.zip
Merge branch 'downloader' into downloader-xloop
-rwxr-xr-xmodules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh27
1 files changed, 14 insertions, 13 deletions
diff --git a/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh b/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh
index 479b5c1d..d8de7c92 100755
--- a/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh
+++ b/modules.d/dnbd3-rootfs/hooks/prepare-root-partition.sh
@@ -34,7 +34,7 @@ container_unpack_xmount() {
echo "$out_device"
}
-container_unpack_xlosetup() {
+container_unpack_xloop() {
local in_device="$1"
local out_device="$(xlosetup -f)"
if ! xlosetup -r -t QCOW "$out_device" "$in_device" --partscan; then
@@ -47,24 +47,25 @@ container_unpack_xlosetup() {
# endregion
# region connect dnbd3 image
-# Determine stage4 image path and revision
-if [ -z "$SLX_DNBD3_IMAGE" ]; then
- # specified on the KCL?
- SLX_DNBD3_IMAGE="$(getarg slx.stage4.path=)"
+# Determine path to dnbd3 image: either on the kcl or via config file
+declare -r KCL_DNBD3_IMAGE="$(getarg slx.stage4.path=)"
+if [ -n "$KCL_DNBD3_IMAGE" ]; then
+ SLX_DNBD3_IMAGE="$KCL_DNBD3_IMAGE"
+ echo "SLX_DNBD3_IMAGE='$SLX_DNBD3_IMAGE'" >> /etc/openslx
fi
if [ -z "$SLX_DNBD3_IMAGE" ]; then
- # not specified, fall back to old bwlp default path convention
- SLX_DNBD3_IMAGE="stage4/bwlp/maxilinux-$(uname -r)"
+ emergency_shell "Failed to determine which DNBD3 image to use." \
+ "It was neither specified on kernel command line nor in the" \
+ "configuration file."
fi
-# save it for later
-echo "SLX_DNBD3_IMAGE='$SLX_DNBD3_IMAGE'" >> /etc/openslx
-if [ -z "$SLX_DNBD3_RID" ]; then
+declare -r KCL_DNBD3_RID="$(getarg slx.stage4.rid=)"
+if [ -n "$KCL_DNBD3_RID" ]; then
# specified on the KCL?
- SLX_DNBD3_RID="$(getarg slx.stage4.rid=)"
+ SLX_DNBD3_RID="$KCL_DNBD3_RID"
+ echo "SLX_DNBD3_RID='$SLX_DNBD3_RID'" >> /etc/openslx
fi
if [ -n "$SLX_DNBD3_RID" ]; then
_dnbd3_client_additional_args=("--rid" "$SLX_DNBD3_RID")
- echo "SLX_DNBD3_RID='$SLX_DNBD3_RID'" >> /etc/openslx
fi
IFS=", "
@@ -98,7 +99,7 @@ if [ -z "$SLX_QCOW_HANDLER" ]; then
echo "SLX_QCOW_HANDLER='$SLX_QCOW_HANDLER'" >> /etc/openslx
fi
if [ "$SLX_QCOW_HANDLER" = "kernel" ]; then
- read_only_device="$(container_unpack_xlosetup "$_dnbd3_dev")"
+ read_only_device="$(container_unpack_xloop "$_dnbd3_dev")"
fi
if [ -z "$read_only_device" ] || [ "$SLX_QCOW_HANDLER" = "xmount" ]; then
read_only_device="$(container_unpack_xmount "$_dnbd3_dev")"