repart: make CopyBlock=auto work for verity sig partitions
Note that this doesn't care which partition set (A or B in an A/B scenario) is actually newer, it just picks the first suitable, but that's something we should look into later. For now, let's just make verity sig partitions work the same way as verity partitions. Fixes #34835
This commit is contained in:
+20
-9
@@ -7291,23 +7291,34 @@ static int resolve_copy_blocks_auto(
|
||||
* partitions in the host, using the appropriate directory as key and ensuring that the partition
|
||||
* type matches. */
|
||||
|
||||
if (type.designator == PARTITION_ROOT)
|
||||
switch (type.designator) {
|
||||
|
||||
case PARTITION_ROOT:
|
||||
case PARTITION_ROOT_VERITY:
|
||||
case PARTITION_ROOT_VERITY_SIG:
|
||||
try1 = "/";
|
||||
else if (type.designator == PARTITION_USR)
|
||||
break;
|
||||
|
||||
case PARTITION_USR:
|
||||
case PARTITION_USR_VERITY:
|
||||
case PARTITION_USR_VERITY_SIG:
|
||||
try1 = "/usr/";
|
||||
else if (type.designator == PARTITION_ROOT_VERITY)
|
||||
try1 = "/";
|
||||
else if (type.designator == PARTITION_USR_VERITY)
|
||||
try1 = "/usr/";
|
||||
else if (type.designator == PARTITION_ESP) {
|
||||
break;
|
||||
|
||||
case PARTITION_ESP:
|
||||
try1 = "/efi/";
|
||||
try2 = "/boot/";
|
||||
} else if (type.designator == PARTITION_XBOOTLDR)
|
||||
break;
|
||||
|
||||
case PARTITION_XBOOTLDR:
|
||||
try1 = "/boot/";
|
||||
else
|
||||
break;
|
||||
|
||||
default:
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
|
||||
"Partition type " SD_ID128_FORMAT_STR " not supported from automatic source block device discovery.",
|
||||
SD_ID128_FORMAT_VAL(type.uuid));
|
||||
}
|
||||
|
||||
r = find_backing_devno(try1, root, &devno);
|
||||
if (r == -ENOENT && try2)
|
||||
|
||||
Reference in New Issue
Block a user