]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
repart: open target devices before UUID creation
authorMichael Ferrari <nekkodroid404@gmail.com>
Thu, 3 Oct 2024 12:02:12 +0000 (14:02 +0200)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 3 Oct 2024 19:55:06 +0000 (20:55 +0100)
This is to ensure that the UUIDs from the CopyBlocks= devices are copied
to the corresponding new partition instead of creating a new UUID for
it. With this verity partitions can be copied, keeping their UUIDs to
ensure that they still match up with what is specified in roothash=.

src/partition/repart.c

index 37d263196c9cb4f13920ef4e52ed106e522ae83d..090fe276728299b6cd87888d478f41b9168926b2 100644 (file)
@@ -9023,11 +9023,6 @@ static int run(int argc, char *argv[]) {
                         return r;
         }
 
-        /* Make sure each partition has a unique UUID and unique label */
-        r = context_acquire_partition_uuids_and_labels(context);
-        if (r < 0)
-                return r;
-
         /* Open all files to copy blocks from now, since we want to take their size into consideration */
         r = context_open_copy_block_paths(
                         context,
@@ -9037,6 +9032,11 @@ static int run(int argc, char *argv[]) {
         if (r < 0)
                 return r;
 
+        /* Make sure each partition has a unique UUID and unique label */
+        r = context_acquire_partition_uuids_and_labels(context);
+        if (r < 0)
+                return r;
+
         r = context_fstab(context);
         if (r < 0)
                 return r;