vboot: Implement Network Based Recovery (NBR) using OTA recovery partition

Introduce a new recovery mechanism that searches for an OTA recovery
partition in addition to the legacy MiniOS kernel.

The new mechanism looks for a nested GPT layout by searching for a
specific disk UUID (`GPT_DISK_UUID_RECOVERY`) in sector 1 of the disk
regions. If found, it creates a sub-disk handle using the
`vb2ex_slice_disk` callback and attempts to load a standard ChromeOS
kernel from that slice.

As part of this change, rename `vb2api_load_minios_kernel` to
`vb2api_load_nbr_kernel` and update internal helper functions to reflect
the broader "Network Based Recovery" (NBR) scope.

BUG=b:454547338
BRANCH=none
TEST=Successfully built for redrix and verified with OTA recovery image.

Cq-Depend: chromium:7535280
Change-Id: I259f0581798c50241ec1a5ec8b5a2fffe074797f
Signed-off-by: Grzegorz Bernacki <bernacki@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/7535102
Commit-Queue: ChromeOS Auto Retry <chromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com>
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
2 files changed