mirror of
https://github.com/systemd/systemd.git
synced 2025-03-13 00:58:27 +03:00
This is useful for booting from a freshly downloaded disk image: just specify rd.systemd.pull=verify=no,machine,blockdev,raw:image:https://192.168.100.1:8081/image.raw root=/dev/disk/by-loop-ref/image.raw-part2 on the kernel command line, and we'll download that in the initrd and boot from it. (note the above disables download-time verification, putting trust in verity and image policy that this won#t do harm) Here's a more complete example. From a git checkout do: ninja -C build && mkosi -f -T serve and then from another terminal do within the same checkout: ./build/systemd-vmspawn \ --ram=16G \ --register=no \ -n \ -i ./build/mkosi.output/image.raw \ rd.systemd.pull=verify=no,machine,blockdev,raw:image:http://192.168.100.1:8081/image.raw \ root=/dev/disk/by-loop-ref/image.raw-part2 \ rootflags=x-systemd.device-timeout=infinity \ ip=any This will then boot via the ESP of the specified image, then download the image via HTTP from the mkosi instance running in the first terminal, attach it to a loopback block device, and then use its second partition as root fs, and boot into it. (this assumes your host is 192.168.100.1, of course) Note that downloading the full image takes a bit of time (this downloads it uncompressed after all), hence we turn off the timeout to wait for the device. This also introduces a new "imports.target" unit (and associated "imports-pre.target") between imports are grouped, and which ensure the imports actually are ordered correctly both on the host and in the initrd.
13 lines
412 B
SYSTEMD
13 lines
412 B
SYSTEMD
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
#
|
|
# This file is part of systemd.
|
|
#
|
|
# systemd is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU Lesser General Public License as published by
|
|
# the Free Software Foundation; either version 2.1 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
[Unit]
|
|
Description=Image Downloads
|
|
Documentation=man:systemd.special(7)
|