1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-02-05 18:05:16 +00:00

gpart: Add warning when the start sector is too low.

Add a warning if the starting sector is too low. The standard requires
that at least 16k is reserved for the GPT Partition Array, but some
tools produce GPT images with fewer than the required number of reserved
sectors.

PR: 274312
Sponsored by:		Netflix
Differential Revision:	https://reviews.freebsd.org/D42247
This commit is contained in:
Warner Losh 2024-10-15 18:03:03 -06:00
parent a24dacde63
commit 2cbda736ce

View File

@ -1045,6 +1045,20 @@ g_part_gpt_read(struct g_part_table *basetable, struct g_consumer *cp)
g_free(sectbl);
}
/*
* The reserved area preceeds the valid area for partitions. Warn when
* the lba_start doesn't meet the standard's minimum size for the gpt
* entry array. UEFI 2.10 section 5.3 specifies that the LBA must be 32
* (for 512 byte sectors) or 6 (4k sectors) or larger. This is different
* than the number of valid entries in the GPT entry array, which can be
* smaller.
*/
if (table->hdr->hdr_lba_start < GPT_MIN_RESERVED / pp->sectorsize + 2) {
printf("GEOM: warning: %s lba_start %llu < required min %d\n",
pp->name, (unsigned long long)table->hdr->hdr_lba_start,
GPT_MIN_RESERVED / pp->sectorsize + 2);
}
basetable->gpt_first = table->hdr->hdr_lba_start;
basetable->gpt_last = table->hdr->hdr_lba_end;
basetable->gpt_entries = table->hdr->hdr_entries;