diff options
author | Luca Boccassi <luca.boccassi@microsoft.com> | 2020-07-14 16:18:41 +0100 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@microsoft.com> | 2020-08-05 21:34:55 +0100 |
commit | b3d133148ea802e44ec913b2766c811ac2316f9a (patch) | |
tree | a4a70c936dd8697cd254aaf5c0be4d0294253ca7 /test/units | |
parent | a082edd53ac9da4a8e06281360754eb15bd1389f (diff) | |
download | systemd-b3d133148ea802e44ec913b2766c811ac2316f9a.tar.gz |
core: new feature MountImages
Follows the same pattern and features as RootImage, but allows an
arbitrary mount point under / to be specified by the user, and
multiple values - like BindPaths.
Original implementation by @topimiettinen at:
https://github.com/systemd/systemd/pull/14451
Reworked to use dissect's logic instead of bare libmount() calls
and other review comments.
Thanks Topi for the initial work to come up with and implement
this useful feature.
Diffstat (limited to 'test/units')
-rwxr-xr-x | test/units/testsuite-50.sh | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/units/testsuite-50.sh b/test/units/testsuite-50.sh index 28144b378f..587184e854 100755 --- a/test/units/testsuite-50.sh +++ b/test/units/testsuite-50.sh @@ -155,6 +155,26 @@ journalctl -b -u testservice-50b.service | grep -F "squashfs" | grep -q -F "noat # Check that specifier escape is applied %%foo -> %foo busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1/unit/testservice_2d50b_2eservice org.freedesktop.systemd1.Service RootImageOptions | grep -F "nosuid,dev,%foo" +# Now do some checks with MountImages, both by itself and in combination with RootImage, and as single FS or GPT image +systemd-run -t --property MountImages="${image}.gpt:/run/img1 ${image}.raw:/run/img2" /usr/bin/cat /run/img1/usr/lib/os-release | grep -q -F "MARKER=1" +systemd-run -t --property MountImages="${image}.gpt:/run/img1 ${image}.raw:/run/img2" /usr/bin/cat /run/img2/usr/lib/os-release | grep -q -F "MARKER=1" +systemd-run -t --property MountImages="${image}.raw:/run/img2\:3" /usr/bin/cat /run/img2:3/usr/lib/os-release | grep -q -F "MARKER=1" +systemd-run -t --property TemporaryFileSystem=/run --property RootImage=${image}.raw --property MountImages="${image}.gpt:/run/img1 ${image}.raw:/run/img2" /usr/bin/cat /usr/lib/os-release | grep -q -F "MARKER=1" +systemd-run -t --property TemporaryFileSystem=/run --property RootImage=${image}.raw --property MountImages="${image}.gpt:/run/img1 ${image}.raw:/run/img2" /usr/bin/cat /run/img1/usr/lib/os-release | grep -q -F "MARKER=1" +systemd-run -t --property TemporaryFileSystem=/run --property RootImage=${image}.gpt --property RootHash=${roothash} --property MountImages="${image}.gpt:/run/img1 ${image}.raw:/run/img2" /usr/bin/cat /run/img2/usr/lib/os-release | grep -q -F "MARKER=1" +cat >/run/systemd/system/testservice-50.service <<EOF +[Service] +TemporaryFileSystem=/run +RootImage=${image}.raw +MountImages=${image}.gpt:/run/img1 +MountImages=${image}.raw:/run/img2\:3 +ExecStart=/usr/bin/cat /run/img1/usr/lib/os-release +ExecStart=/usr/bin/cat /run/img2:3/usr/lib/os-release +Type=oneshot +EOF +systemctl start testservice-50.service +journalctl -b -u testservice-50.service | grep -q -F "MARKER=1" + echo OK > /testok exit 0 |