В таблице разделов GUID как я могу узнать, сколько там разделов?
У меня есть образ USB с 3 разделами:
- Раздел 1: FAT32
- Раздел 2: exFAT
- Раздел 3: NTFS
Я делаю программу, которая проходит через разделы, но я не уверен, как я могу узнать, сколько разделов должна искать моя программа. Глядя на необработанные данные, я вижу, что у них есть три раздела, как и ожидалось, но, конечно, моя программа этого не знает.
Я попытался посмотреть "80 (0x50) 4 байта Количество записей раздела в массиве", но в моем примере он дал мне значение 128 (0x80000000).
Вот скриншоты шестнадцатеричного изображения из моего примера изображения.
Заголовок таблицы разделов (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
1 ответ
Немного поздно, и вы, возможно, уже поняли это сейчас.
Обратитесь к следующему рисунку со страницы вики .Сама страница Wiki предоставит вам дополнительную информацию.
Невозможно определить количество разделов, просто взглянув на заголовок таблицы разделов GUID в LBA1, вы должны изучить записи раздела и проверить, говорит ли GUID типа раздела, что он не используется (все нули) или нет.
Количество записей раздела в заголовке по смещению 80 (=0x50) — это общее количество записей, определяемое размером одной записи раздела по смещению 84.