From: Lennart Poettering Date: Thu, 5 Apr 2018 11:15:43 +0000 (+0200) Subject: dissect: when pulling metadata from an image, don't bother with /home or ESP X-Git-Tag: v239~431^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F8663%2Fhead;p=thirdparty%2Fsystemd.git dissect: when pulling metadata from an image, don't bother with /home or ESP 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. --- diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c index c29d70fa042..f5de54d9fe5 100644 --- a/src/shared/dissect-image.c +++ b/src/shared/dissect-image.c @@ -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;