dissect: return the GPT partition UUID, too
This is useful as we can match up the EFI UUID with the one the firmware supposedly used.
This commit is contained in:
parent
01af8c019a
commit
be30ad41ff
|
@ -221,6 +221,9 @@ int main(int argc, char *argv[]) {
|
||||||
p->rw ? "writable" : "read-only",
|
p->rw ? "writable" : "read-only",
|
||||||
partition_designator_to_string(i));
|
partition_designator_to_string(i));
|
||||||
|
|
||||||
|
if (!sd_id128_is_null(p->uuid))
|
||||||
|
printf(" (UUID " SD_ID128_FORMAT_STR ")", SD_ID128_FORMAT_VAL(p->uuid));
|
||||||
|
|
||||||
if (p->fstype)
|
if (p->fstype)
|
||||||
printf(" of type %s", p->fstype);
|
printf(" of type %s", p->fstype);
|
||||||
|
|
||||||
|
|
|
@ -95,6 +95,7 @@ int dissect_image(int fd, const void *root_hash, size_t root_hash_size, DissectI
|
||||||
_cleanup_blkid_free_probe_ blkid_probe b = NULL;
|
_cleanup_blkid_free_probe_ blkid_probe b = NULL;
|
||||||
_cleanup_udev_unref_ struct udev *udev = NULL;
|
_cleanup_udev_unref_ struct udev *udev = NULL;
|
||||||
_cleanup_free_ char *generic_node = NULL;
|
_cleanup_free_ char *generic_node = NULL;
|
||||||
|
sd_id128_t generic_uuid = SD_ID128_NULL;
|
||||||
const char *pttype = NULL;
|
const char *pttype = NULL;
|
||||||
struct udev_list_entry *first, *item;
|
struct udev_list_entry *first, *item;
|
||||||
blkid_partlist pl;
|
blkid_partlist pl;
|
||||||
|
@ -427,6 +428,7 @@ int dissect_image(int fd, const void *root_hash, size_t root_hash_size, DissectI
|
||||||
else {
|
else {
|
||||||
generic_nr = nr;
|
generic_nr = nr;
|
||||||
generic_rw = !(pflags & GPT_FLAG_READ_ONLY);
|
generic_rw = !(pflags & GPT_FLAG_READ_ONLY);
|
||||||
|
generic_uuid = id;
|
||||||
generic_node = strdup(node);
|
generic_node = strdup(node);
|
||||||
if (!generic_node)
|
if (!generic_node)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
@ -457,6 +459,7 @@ int dissect_image(int fd, const void *root_hash, size_t root_hash_size, DissectI
|
||||||
.architecture = architecture,
|
.architecture = architecture,
|
||||||
.node = n,
|
.node = n,
|
||||||
.fstype = t,
|
.fstype = t,
|
||||||
|
.uuid = id,
|
||||||
};
|
};
|
||||||
|
|
||||||
n = t = NULL;
|
n = t = NULL;
|
||||||
|
@ -507,6 +510,7 @@ int dissect_image(int fd, const void *root_hash, size_t root_hash_size, DissectI
|
||||||
.partno = generic_nr,
|
.partno = generic_nr,
|
||||||
.architecture = _ARCHITECTURE_INVALID,
|
.architecture = _ARCHITECTURE_INVALID,
|
||||||
.node = generic_node,
|
.node = generic_node,
|
||||||
|
.uuid = generic_uuid,
|
||||||
};
|
};
|
||||||
|
|
||||||
generic_node = NULL;
|
generic_node = NULL;
|
||||||
|
|
|
@ -32,6 +32,7 @@ struct DissectedPartition {
|
||||||
bool rw:1;
|
bool rw:1;
|
||||||
int partno; /* -1 if there was no partition and the images contains a file system directly */
|
int partno; /* -1 if there was no partition and the images contains a file system directly */
|
||||||
int architecture; /* Intended architecture: either native, secondary or unset (-1). */
|
int architecture; /* Intended architecture: either native, secondary or unset (-1). */
|
||||||
|
sd_id128_t uuid; /* Partition entry UUID as reported by the GPT */
|
||||||
char *fstype;
|
char *fstype;
|
||||||
char *node;
|
char *node;
|
||||||
char *decrypted_node;
|
char *decrypted_node;
|
||||||
|
|
Loading…
Reference in a new issue