В таблице разделов GUID как я могу узнать, сколько там разделов?

У меня есть образ USB с 3 разделами:

  • Раздел 1: FAT32
  • Раздел 2: exFAT
  • Раздел 3: NTFS

Я делаю программу, которая проходит через разделы, но я не уверен, как я могу узнать, сколько разделов должна искать моя программа. Глядя на необработанные данные, я вижу, что у них есть три раздела, как и ожидалось, но, конечно, моя программа этого не знает.

Я попытался посмотреть "80 (0x50) 4 байта Количество записей раздела в массиве", но в моем примере он дал мне значение 128 (0x80000000).

Вот скриншоты шестнадцатеричного изображения из моего примера изображения.

Защитный MBR

Заголовок таблицы разделов (LBA 1)

       signature=- HexLe=4546492050415254 HexBe=5452415020494645
revisionHexLe=000001 HexLe=4546492050415254 HexBe=5452415020494645
headerSizeDec=92 HexLe=5C000000 HexBe=0000005C
crc2OfHeaderDec=82845332 HexLe=941EF004 HexBe=04F01E94
reservedADec=0 HexLe=00000000 HexBe=00000000
currentLBADec=1 HexLe=0100000000000000 HexBe=0000000000000001
backupLBADec=30277631 HexLe=FFFFCD0100000000 HexBe=0000000001CDFFFF
firstUsableLBAForPartitionsDec=34 HexLe=2200000000000000 HexBe=0000000000000022
lastUsableLBADec=30277598 HexLe=DEFFCD0100000000 HexBe=0000000001CDFFDE
diskGUIDHexMe=8B3F71C5AF9D744D9CA3EBFF7D1F9DC9
startingLBAOfArrayOfPartitionEntriesDec=2 HexLe=0200000000000000 HexBe=0000000000000002
numberOfPartitionEntriesInArrayDec=128 HexLe=80000000 HexBe=00000080
sizeOfASinglePartitionEntryDec=128 HexLe=80000000 HexBe=00000080
crc2OfPartitionEntriesArrayDec=-2043475264 HexLe=C00A3386 HexBe=86330AC0
reservedBDec=00000000 HexLe=00000000 HexBe=00000000
We are going to look for partitions now at offset 1024

Записи разделов (LBA 2–33)

1 ответ

Немного поздно, и вы, возможно, уже поняли это сейчас.

Обратитесь к следующему рисунку со страницы вики .Сама страница Wiki предоставит вам дополнительную информацию.

Невозможно определить количество разделов, просто взглянув на заголовок таблицы разделов GUID в LBA1, вы должны изучить записи раздела и проверить, говорит ли GUID типа раздела, что он не используется (все нули) или нет.

Количество записей раздела в заголовке по смещению 80 (=0x50) — это общее количество записей, определяемое размером одной записи раздела по смещению 84.

Другие вопросы по тегам