diff options
-rw-r--r-- | man/machinectl.xml | 55 | ||||
-rw-r--r-- | man/systemd-nspawn.xml | 15 | ||||
-rw-r--r-- | src/import/import.c | 2 | ||||
-rw-r--r-- | src/shared/machine-image.c | 6 | ||||
-rw-r--r-- | tmpfiles.d/var.conf | 2 |
5 files changed, 64 insertions, 16 deletions
diff --git a/man/machinectl.xml b/man/machinectl.xml index 91bdb5e111..19531866c7 100644 --- a/man/machinectl.xml +++ b/man/machinectl.xml @@ -291,10 +291,10 @@ name. <command>systemd-nspawn</command> looks for a container image by the specified name in - <filename>/var/lib/container</filename> - and runs it. Use - <command>list-images</command> (see - below), for listing available + <filename>/var/lib/machines/</filename> + (and other search paths, see below) and runs + it. Use <command>list-images</command> + (see below), for listing available container images to start.</para> <para>Note that @@ -488,7 +488,7 @@ images. This enumerates all raw disk images and container directories and subvolumes in - <filename>/var/lib/container/</filename>. Use + <filename>/var/lib/machines/</filename> (and other search paths, see below). Use <command>start</command> (see above) to run a container off one of the listed images. Note that by default @@ -596,6 +596,51 @@ </refsect1> <refsect1> + <title>Files and Directories</title> + + <para>Machine images are preferably stored in + <filename>/var/lib/machines/</filename>, but are also + searched for in + <filename>/usr/local/lib/machines/</filename> and + <filename>/usr/lib/machines/</filename>. For + compatibility reasons the directory + <filename>/var/lib/container/</filename> is searched, + too. Note that images stored below + <filename>/usr</filename> are always considered + read-only. It is possible to symlink machines images + from other directories into + <filename>/var/lib/machines/</filename> to make them + available for control with + <command>machinectl</command>.</para> + + <para>Disk images are understood in three formats:</para> + + <itemizedlist> + <listitem><para>A simple directory tree, + containing the files and directories of the + container to boot.</para></listitem> + + <listitem><para>A subvolume (on btrfs file + systems), which are similar to the simple + directories, described above. However, they + have additional benefits, such as efficient + cloning and quota reporting.</para></listitem> + + <listitem><para>"Raw" disk images, i.e. binary + images of disks with a GPT or MBR partition + table. Images of this type are regular + files with the suffix + <literal>.raw</literal>.</para></listitem> + </itemizedlist> + + <para>See + <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry> + for more information on image formats, in particular + it's <option>--directory=</option> and + <option>--image=</option> options.</para> + </refsect1> + + <refsect1> <title>Exit status</title> <para>On success, 0 is returned, a non-zero failure diff --git a/man/systemd-nspawn.xml b/man/systemd-nspawn.xml index e67aeecb1a..0c6fb00289 100644 --- a/man/systemd-nspawn.xml +++ b/man/systemd-nspawn.xml @@ -171,7 +171,7 @@ <option>--directory=</option>, nor <option>--image=</option> is specified the directory is determined as - <filename>/var/lib/container/</filename> + <filename>/var/lib/machines/</filename> suffixed by the machine name as specified with <option>--machine=</option>. If @@ -247,10 +247,13 @@ the root directory for the container from. Takes a path to a regular file or to a block device node. The file or - block device must contain a GUID - Partition Table with a root partition - which is mounted as the root directory - of the container. Optionally, it may + block device must contain either an + MBR partition table with a single + partition of type 0x83 that is marked + bootable, or a GUID partition table + with a root partition which is mounted + as the root directory of the + container. Optionally, GPT images may contain a home and/or a server data partition which are mounted to the appropriate places in the @@ -842,7 +845,7 @@ <example> <title>Enable Arch Linux container on boot</title> - <programlisting># mv ~/arch-tree /var/lib/container/arch + <programlisting># mv ~/arch-tree /var/lib/machines/arch # systemctl enable systemd-nspawn@arch.service # systemctl start systemd-nspawn@arch.service</programlisting> diff --git a/src/import/import.c b/src/import/import.c index 669d7c152c..b4d859df1f 100644 --- a/src/import/import.c +++ b/src/import/import.c @@ -29,7 +29,7 @@ #include "import-dkr.h" static bool arg_force = false; -static const char *arg_image_root = "/var/lib/container"; +static const char *arg_image_root = "/var/lib/machines"; static const char* arg_dkr_index_url = DEFAULT_DKR_INDEX_URL; diff --git a/src/shared/machine-image.c b/src/shared/machine-image.c index a2f49e6e93..5112d24a8f 100644 --- a/src/shared/machine-image.c +++ b/src/shared/machine-image.c @@ -110,7 +110,7 @@ static int image_make( assert(filename); /* We explicitly *do* follow symlinks here, since we want to - * allow symlinking trees into /var/lib/container/, and treat + * allow symlinking trees into /var/lib/machines/, and treat * them normally. */ if (fstatat(dfd, filename, &st, 0) < 0) @@ -486,13 +486,13 @@ int image_clone(Image *i, const char *new_name, bool read_only) { case IMAGE_SUBVOLUME: case IMAGE_DIRECTORY: - new_path = strappenda("/var/lib/container/", new_name); + new_path = strappenda("/var/lib/machines/", new_name); r = btrfs_subvol_snapshot(i->path, new_path, read_only, true); break; case IMAGE_RAW: - new_path = strappenda("/var/lib/container/", new_name, ".raw"); + new_path = strappenda("/var/lib/machines/", new_name, ".raw"); r = copy_file_atomic(i->path, new_path, read_only ? 0444 : 0644, false, FS_NOCOW_FL); break; diff --git a/tmpfiles.d/var.conf b/tmpfiles.d/var.conf index d0c759e0fc..9b7644476b 100644 --- a/tmpfiles.d/var.conf +++ b/tmpfiles.d/var.conf @@ -18,6 +18,6 @@ f /var/log/btmp 0600 root utmp - d /var/cache 0755 - - - d /var/lib 0755 - - - -v /var/lib/container 0700 - - - +v /var/lib/machines 0700 - - - d /var/spool 0755 - - - |