]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
dissect: when pulling metadata from an image, don't bother with /home or ESP 8663/head
authorLennart Poettering <lennart@poettering.net>
Thu, 5 Apr 2018 11:15:43 +0000 (13:15 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 5 Apr 2018 11:15:43 +0000 (13:15 +0200)
When we try to read meta-data from an image, don't bother with mounting
/home or the ESP, as that's not where the metadata is. This not only
speeds things up a bit, but also has the benefit that setups where an
unencrypted root is mixed with an encrypted /home (which I have on one
of my own systems) won't result in errors that the crypto key is needed.

src/shared/dissect-image.c

index c29d70fa042c501e1e429a8ffe6b44414c2f1131..f5de54d9fe5165a27a9c0e2403264f4f6e08ee08 100644 (file)
@@ -1291,9 +1291,11 @@ int dissected_image_acquire_metadata(DissectedImage *m) {
                 if (mount(NULL, "/", NULL, MS_SLAVE | MS_REC, NULL) < 0)
                         _exit(EXIT_FAILURE);
 
-                r = dissected_image_mount(m, t, UID_INVALID, DISSECT_IMAGE_READ_ONLY);
-                if (r < 0)
+                r = dissected_image_mount(m, t, UID_INVALID, DISSECT_IMAGE_READ_ONLY|DISSECT_IMAGE_MOUNT_ROOT_ONLY);
+                if (r < 0) {
+                        log_debug_errno(r, "Failed to mount dissected image: %m");
                         _exit(EXIT_FAILURE);
+                }
 
                 for (k = 0; k < _META_MAX; k++) {
                         _cleanup_close_ int fd = -1;