Как отличить MBR от GPT, глядя на их сырые байты?

Вопрос или проблема

У меня есть заголовок размером 512 байт, который я знаю, является либо MBR, либо фальшивым MBR, как защитный MBR. Как, взглянув на их необработанные байты, я могу их идентифицировать?
Например

fab800108ed0bc00b0b800008ed88ec0fbbe007cbf0006b90002f3a4ea21060000bebe
073804750b83c61081fefe0775f3eb16b402b001bb007cb2808a74018b4c02cd13ea00
7c0000ebfe000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000069d0e83000000020210083fec2ff00
0800000060f62400fec2ff07fec2ff0068f62400684552000000000000000000000000
000000000000000000000000000000000000000055aa

Защитный MBR имеет ОДНУ запись в таблице разделов типа EE, занимающую весь диск.

Защитный MBR:

protective mbr

Обычный MBR:

mbr with conventional partition table

В вашем случае мы видим обычный MBR с двумя записями, один указывает на раздел типа 83 (ExtFS), а другой – на раздел 07 (NTFS).

enter image description here

Ответ или решение

Определение типа разметки носителя данных, будь то Master Boot Record (MBR) или GUID Partition Table (GPT), играет ключевую роль в управлении данными и обеспечении их целостности. Понимание различий между MBR и GPT на уровне байтов поможет точно идентифицировать тип разметки, что необходимо в различных ситуациях, включая восстановление данных, диагностику проблем с загрузкой или просто для более глубокого понимания архитектуры хранилища данных.

Теоретический аспект

MBR и GPT – это две разные схемы разметки, используемые для управления разделами на жестких дисках.

MBR (Master Boot Record):

  1. Структура: MBR занимает первые 512 байт носителя. Он содержит:

    • Загрузочный код (первые 446 байт),
    • Таблицу разделов (64 байта),
    • Завершающий признак (подпись) 0x55AA.
  2. Таблица разделов: Содержит до четырех записей, каждая из которых занимает 16 байт. Типы разделов идентифицируются кодом, например, 0x83 для Linux, 0x07 для NTFS.

GPT (GUID Partition Table):

  1. Структура: GPT начинается с "protective MBR", чтобы предотвратить перезапись данных старыми утилитами, не поддерживающими GPT. После этого следуют:

    • Первичный заголовок GPT размером 92 байта,
    • Таблица разделов, поддерживающая до 128 разделов (по 128 байт каждый).
  2. Protective MBR: Содержит единственную запись с типом раздела 0xEE, чтобы указать, что диск использует GPT. Остальные поля могут быть заполнены нулями.

Пример

Рассмотрим пример заголовка MBR размером 512 байт:

fab800108ed0bc00b0b800008ed88ec0fbbe007cbf0006b90002f3a4ea21060000bebe
073804750b83c61081fefe0775f3eb16b402b001bb007cb2808a74018b4c02cd13ea00
7c0000ebfe000000000000000000000000000000000000000000000000000000000000
...
000000000000000000000000000000000000000055aa

В этом примере последние два байта 55AA подтверждают, что это действительный MBR. Внутри таблицы разделов вы можете увидеть заносящие записи, каждая по 16 байт. Например, код типа 0x83 указывает на Linux-раздел, а 0x07 на NTFS-раздел.

Применение

Когда у вас есть необработанные байты, как в вопросе выше, вы можете воспользоваться следующими шагами для идентификации:

  1. Проверка подписи: Проверьте последние два байта на наличие 0x55AA, что указывает на MBR.

  2. Анализ таблицы разделов:

    • Для обычного MBR: Ищите наличие различных типов разделов, таких как 0x83 или 0x07.
    • Для защитного MBR: Ищите тип 0xEE, который указывает на использование GPT.
  3. Дополнительная проверка GPT:

    • После защитного MBR, заголовок GPT начинается после 512 байта. Он содержит уникальный идентификатор диска и другие данные, которые не будут встречаться в классическом MBR.

В результате, понимание различий между MBR и GPT и их идентификация на уровне байтов позволяет более эффективно управлять носителями данных и решать проблемы, связанные с системами хранения, в бизнес-средах. Это знание важно для IT-специалистов, которые занимаются администрированием и поддержкой систем хранения данных.

Оцените материал
Добавить комментарий

Капча загружается...