Files
systemd/test/units/TEST-08-INITRD.sh
T
Daan De Meyer 738bad8f35 mkosi: Use initrd as exitrd
Let's speed up image builds by avoiding building
an exitrd and instead reusing the initrd image for
the same purpose.
2025-12-21 20:31:24 +01:00

30 lines
934 B
Bash
Executable File

#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
set -eux
set -o pipefail
if systemd-detect-virt -qc; then
echo >&2 "This test can't run in a container"
exit 1
fi
# This test requires systemd to run in the initrd as well, which is not the case
# for mkinitrd-based initrd (Ubuntu/Debian)
if [[ "$(systemctl show -P InitRDTimestampMonotonic)" -eq 0 ]]; then
echo "systemd didn't run in the initrd, skipping the test"
touch /skipped
exit 77
fi
# We should've created a mount under /run in initrd (see the other half of the test)
# that should've survived the transition from initrd to the real system
test -d /run/initrd-mount-target
mountpoint /run/initrd-mount-target
[[ -e /run/initrd-mount-target/hello-world ]]
# Copy the prepared exitrd to its intended location.
mkdir -p /run/initramfs
unzstd --stdout /exitrd | cpio --extract --make-directories --directory /run/initramfs/
touch /testok