From 448b782cb2629f303f0c979f67e97411073e19cc Mon Sep 17 00:00:00 2001 From: Harald Seiler Date: Thu, 15 Oct 2020 21:25:06 +0200 Subject: [PATCH] repart: correctly handle "uninitialized" machine-id When systemd-repart runs from initramfs, it reads out /etc/machine-id from the rootfs as a seed for partition UUIDs. However, the machine-id could be in an "uninitialized" state from a previous failed first boot. In this situation the -ENOMEDIUM code-path (no machine-id set) should be taken. --- src/partition/repart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/partition/repart.c b/src/partition/repart.c index d406c9dbe3e..4cf6a5fe3a6 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -3245,7 +3245,7 @@ static int context_read_seed(Context *context, const char *root) { else if (fd < 0) return log_error_errno(fd, "Failed to determine machine ID of image: %m"); else { - r = id128_read_fd(fd, ID128_PLAIN, &context->seed); + r = id128_read_fd(fd, ID128_PLAIN_OR_UNINIT, &context->seed); if (r == -ENOMEDIUM) log_info("No machine ID set, using randomized partition UUIDs."); else if (r < 0)