diff options
| author | Simon Rettberg | 2025-04-09 16:40:57 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2025-04-09 16:40:57 +0200 |
| commit | 7e55d9e6bc63fe6e7821ff7e55ef14f701def14b (patch) | |
| tree | 5f1e18d47a6e715be63be0630479507cd00f7d77 /modules.d | |
| parent | Fix dumb typo (diff) | |
| download | systemd-init-7e55d9e6bc63fe6e7821ff7e55ef14f701def14b.tar.gz systemd-init-7e55d9e6bc63fe6e7821ff7e55ef14f701def14b.tar.xz systemd-init-7e55d9e6bc63fe6e7821ff7e55ef14f701def14b.zip | |
[slx-dmsetup] Tweak service ordering, wait for HDDs
Diffstat (limited to 'modules.d')
| -rwxr-xr-x | modules.d/dnbd3-rootfs/hooks/s3-connect-image.sh | 20 | ||||
| -rwxr-xr-x | modules.d/slx-dmsetup/hooks/s3-mount-swap.sh | 22 | ||||
| -rwxr-xr-x | modules.d/slx-dmsetup/module-setup.sh | 5 |
3 files changed, 24 insertions, 23 deletions
diff --git a/modules.d/dnbd3-rootfs/hooks/s3-connect-image.sh b/modules.d/dnbd3-rootfs/hooks/s3-connect-image.sh index 835a5613..88b7b934 100755 --- a/modules.d/dnbd3-rootfs/hooks/s3-connect-image.sh +++ b/modules.d/dnbd3-rootfs/hooks/s3-connect-image.sh @@ -9,22 +9,6 @@ export LD_LIBRARY_PATH="/usr/local/lib" # hardcode dnbd device path declare -rg _dnbd3_dev="/dev/dnbd0" -settle() { - echo "settle: Waiting for udev" - if command -v timeout &> /dev/null; then - timeout -s 9 15 udevadm settle -t 10 - else - local pid rem - udevadm settle -t 10 & - pid=$! - rem=15 - while (( --rem > 0 )) && kill -0 "$pid"; do - sleep 1 - done - fi - echo "settle: udev done" -} - # all outputs are redirected to stderr, since this functions should # only echo the path to the unpacked container to stdout. container_unpack_raw() { @@ -38,7 +22,6 @@ container_unpack_raw() { echo "raw: Failed to attach '$in_device' to '$out_device'." return 1 fi - settle read_only_device="$out_device" return 0 } @@ -56,7 +39,6 @@ container_unpack_xloop() { echo "xloop: Failed to attach '$in_device' to '$out_device'." return 1 fi - settle read_only_device="$out_device" return 0 } @@ -209,6 +191,4 @@ fi echo "Using read-only partition: $read_only_partition" echo "$read_only_partition" > "/.read_only_device" -settle - exit 0 diff --git a/modules.d/slx-dmsetup/hooks/s3-mount-swap.sh b/modules.d/slx-dmsetup/hooks/s3-mount-swap.sh index 0384bcf4..e9370b2d 100755 --- a/modules.d/slx-dmsetup/hooks/s3-mount-swap.sh +++ b/modules.d/slx-dmsetup/hooks/s3-mount-swap.sh @@ -2,9 +2,29 @@ . slx-tools +settle() { + echo "settle: Waiting for udev" + if command -v timeout &> /dev/null; then + timeout -s 9 "$2" udevadm settle -t "$1" + else + local pid rem + udevadm settle -t "$1" & + pid=$! + rem="$2" + while (( --rem > 0 )) && kill -0 "$pid"; do + sleep 1 + done + fi + echo "settle: udev done" +} + +settle 3 4 + for part in $( dev_find_partitions "82" "0657fd6d-a4ab-43c4-84e5-0933c84b4f4f" ); do dev_swap_version "$part" &> /dev/null || continue - swapon "$part" + swapon "$part" & done +wait + exit 0 diff --git a/modules.d/slx-dmsetup/module-setup.sh b/modules.d/slx-dmsetup/module-setup.sh index e513ca6f..538b050e 100755 --- a/modules.d/slx-dmsetup/module-setup.sh +++ b/modules.d/slx-dmsetup/module-setup.sh @@ -26,10 +26,11 @@ install() { --after "s3-fetch-config.service" slx_service "s3-mount-swap" "Mount existing swap partitions" \ - --before "s3-cow-setup" + --before "s3-cow-setup.service" \ + --wafter "systemd-udevd.service" slx_service "s3-prepare-rw-layer" "Prepare suitable partitions for use as write layer" \ - --before "s3-cow-setup" + --before "s3-cow-setup.service" slx_service "s3-scan-id44" "Scan for partitions marked as scratch space (ID44)" \ --before "s3-prepare-rw-layer.service" \ |
