Вопрос или проблема
У меня есть заголовок размером 512 байт, который я знаю, является либо MBR, либо фальшивым MBR, как защитный MBR. Как, взглянув на их необработанные байты, я могу их идентифицировать?
Например
fab800108ed0bc00b0b800008ed88ec0fbbe007cbf0006b90002f3a4ea21060000bebe
073804750b83c61081fefe0775f3eb16b402b001bb007cb2808a74018b4c02cd13ea00
7c0000ebfe000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000069d0e83000000020210083fec2ff00
0800000060f62400fec2ff07fec2ff0068f62400684552000000000000000000000000
000000000000000000000000000000000000000055aa
Защитный MBR имеет ОДНУ запись в таблице разделов типа EE, занимающую весь диск.
Защитный MBR:
Обычный MBR:
В вашем случае мы видим обычный MBR с двумя записями, один указывает на раздел типа 83 (ExtFS), а другой – на раздел 07 (NTFS).
Ответ или решение
Определение типа разметки носителя данных, будь то Master Boot Record (MBR) или GUID Partition Table (GPT), играет ключевую роль в управлении данными и обеспечении их целостности. Понимание различий между MBR и GPT на уровне байтов поможет точно идентифицировать тип разметки, что необходимо в различных ситуациях, включая восстановление данных, диагностику проблем с загрузкой или просто для более глубокого понимания архитектуры хранилища данных.
Теоретический аспект
MBR и GPT – это две разные схемы разметки, используемые для управления разделами на жестких дисках.
MBR (Master Boot Record):
-
Структура: MBR занимает первые 512 байт носителя. Он содержит:
- Загрузочный код (первые 446 байт),
- Таблицу разделов (64 байта),
- Завершающий признак (подпись) 0x55AA.
-
Таблица разделов: Содержит до четырех записей, каждая из которых занимает 16 байт. Типы разделов идентифицируются кодом, например, 0x83 для Linux, 0x07 для NTFS.
GPT (GUID Partition Table):
-
Структура: GPT начинается с "protective MBR", чтобы предотвратить перезапись данных старыми утилитами, не поддерживающими GPT. После этого следуют:
- Первичный заголовок GPT размером 92 байта,
- Таблица разделов, поддерживающая до 128 разделов (по 128 байт каждый).
-
Protective MBR: Содержит единственную запись с типом раздела 0xEE, чтобы указать, что диск использует GPT. Остальные поля могут быть заполнены нулями.
Пример
Рассмотрим пример заголовка MBR размером 512 байт:
fab800108ed0bc00b0b800008ed88ec0fbbe007cbf0006b90002f3a4ea21060000bebe
073804750b83c61081fefe0775f3eb16b402b001bb007cb2808a74018b4c02cd13ea00
7c0000ebfe000000000000000000000000000000000000000000000000000000000000
...
000000000000000000000000000000000000000055aa
В этом примере последние два байта 55AA
подтверждают, что это действительный MBR. Внутри таблицы разделов вы можете увидеть заносящие записи, каждая по 16 байт. Например, код типа 0x83 указывает на Linux-раздел, а 0x07 на NTFS-раздел.
Применение
Когда у вас есть необработанные байты, как в вопросе выше, вы можете воспользоваться следующими шагами для идентификации:
-
Проверка подписи: Проверьте последние два байта на наличие
0x55AA
, что указывает на MBR. -
Анализ таблицы разделов:
- Для обычного MBR: Ищите наличие различных типов разделов, таких как 0x83 или 0x07.
- Для защитного MBR: Ищите тип 0xEE, который указывает на использование GPT.
-
Дополнительная проверка GPT:
- После защитного MBR, заголовок GPT начинается после 512 байта. Он содержит уникальный идентификатор диска и другие данные, которые не будут встречаться в классическом MBR.
В результате, понимание различий между MBR и GPT и их идентификация на уровне байтов позволяет более эффективно управлять носителями данных и решать проблемы, связанные с системами хранения, в бизнес-средах. Это знание важно для IT-специалистов, которые занимаются администрированием и поддержкой систем хранения данных.