richardphibel / rpms / systemd

Forked from rpms/systemd 2 years ago
Clone
b11b5f
From e320f72150829228f10ec24f3fba34d5377c5120 Mon Sep 17 00:00:00 2001
b11b5f
From: Bertrand Jacquin <bertrand@jacquin.bzh>
b11b5f
Date: Sun, 11 Oct 2020 22:25:56 +0100
b11b5f
Subject: [PATCH] machine-id-setup: generate machine-id from DMI product ID on
b11b5f
 Amazon EC2
b11b5f
b11b5f
Amazon EC2 Nitro hypervisor is technically based on KVM[1].
b11b5f
b11b5f
[1] https://aws.amazon.com/ec2/faqs/
b11b5f
b11b5f
(cherry picked from commit 382a46d129899ca9027b07c325102cab173dd563)
b11b5f
b11b5f
Related: #2117948
b11b5f
---
b11b5f
 src/core/machine-id-setup.c | 8 ++++----
b11b5f
 1 file changed, 4 insertions(+), 4 deletions(-)
b11b5f
b11b5f
diff --git a/src/core/machine-id-setup.c b/src/core/machine-id-setup.c
b11b5f
index 11528f83c4..fe2abc4e68 100644
b11b5f
--- a/src/core/machine-id-setup.c
b11b5f
+++ b/src/core/machine-id-setup.c
b11b5f
@@ -57,11 +57,11 @@ static int generate_machine_id(const char *root, sd_id128_t *ret) {
b11b5f
                                 return 0;
b11b5f
                         }
b11b5f
 
b11b5f
-                } else if (detect_vm() == VIRTUALIZATION_KVM) {
b11b5f
+                } else if (IN_SET(detect_vm(), VIRTUALIZATION_KVM, VIRTUALIZATION_AMAZON, VIRTUALIZATION_QEMU)) {
b11b5f
 
b11b5f
-                        /* If we are not running in a container, see if we are
b11b5f
-                         * running in qemu/kvm and a machine ID was passed in
b11b5f
-                         * via -uuid on the qemu/kvm command line */
b11b5f
+                        /* If we are not running in a container, see if we are running in a VM that provides
b11b5f
+                         * a system UUID via the SMBIOS/DMI interfaces.  Such environments include QEMU/KVM
b11b5f
+                         * with the -uuid on the qemu command line or the Amazon EC2 Nitro hypervisor. */
b11b5f
 
b11b5f
                         if (id128_read("/sys/class/dmi/id/product_uuid", ID128_UUID, ret) >= 0) {
b11b5f
                                 log_info("Initializing machine ID from KVM UUID.");