[Libguestfs] [PATCH] appliance: Copy /etc/machine-id from host system into the appliance.

Pino Toscano ptoscano at redhat.com
Tue Mar 29 13:14:15 UTC 2016

On Tuesday 29 March 2016 12:14:21 Richard W.M. Jones wrote:
> Currently when the appliance is booted we see warning messages like
> these ones:
> [/usr/lib/tmpfiles.d/systemd.conf:26] Failed to replace specifiers: /run/log/journal/%m
> [/usr/lib/tmpfiles.d/systemd.conf:28] Failed to replace specifiers: /run/log/journal/%m
> [/usr/lib/tmpfiles.d/systemd.conf:29] Failed to replace specifiers: /run/log/journal/%m
> They are apparently harmless, but are caused because /etc/machine-id
> does not exist inside the appliance, and so %m cannot be substituted
> by systemd-tmpfiles.
> The solution to this is to provide /etc/machine-id.  However this is
> not so simple: either we could get supermin to generate this,
> requiring an ugly systemd-specific hack to supermin, or we could
> generate it in the /init script, which just slows the init script down
> for no real reason.
> Since the content of /etc/machine-id doesn't really matter for a
> throwaway appliance so long as it has the right format, this commit
> copies the host file into the appliance.
> ---

I had a prototype since some months of the solution about generating it
in /init:

diff --git a/appliance/init b/appliance/init
index 28054ab..20c8d24 100755
--- a/appliance/init
+++ b/appliance/init
@@ -85,6 +85,9 @@ fi
 mkdir -p /run/tmpfiles.d
 kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf
+# Create a machine-id with a random UUID
+dd if=/dev/urandom bs=1 count=16 status=none | od -x -A n | sed -e 's, ,,g' > /etc/machine-id
 # Set up tmpfiles (must run after kmod.conf is created above).
 systemd-tmpfiles --prefix=/dev --create --boot

Considering that, since a week or so, virtio-rng is used for the
/dev/urandom of the appliance, reading 16 bytes should not cause to
wait for randomness.

Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20160329/8e30823c/attachment.sig>

More information about the Libguestfs mailing list