Расширенная загрузочная запись ( EBR ), [1] или расширенная загрузочная запись раздела ( EPBR ), [примечание 1] — это дескриптор логического раздела в общей системе разметки дисков DOS. В этой системе, когда одна (и только одна) запись раздела в главной загрузочной записи (MBR) обозначена как расширенный раздел , тогда этот раздел можно разделить на несколько логических разделов. Фактическая структура этого расширенного раздела описывается одним или несколькими EBR, расположенными внутри расширенного раздела. Первый (а иногда и единственный) EBR всегда будет расположен в самом первом секторе расширенного раздела.
В отличие от основных разделов, которые описываются одной таблицей разделов в MBR и, следовательно, ограничены в количестве, каждый EBR предшествует описанному им логическому разделу. [примечание 2] Если за ним следует другой логический раздел, то первый EBR будет содержать запись, указывающую на следующий EBR; таким образом, несколько EBR образуют связанный список . [примечание 3] Это означает, что количество логических дисков, которые могут быть сформированы в расширенном разделе, ограничено только объемом доступного дискового пространства в данном расширенном разделе. [примечание 4]
В то время как в версиях Windows до XP логические разделы внутри расширенного раздела были выровнены в соответствии с соглашениями, называемыми «геометрией диска» или «CHS» , начиная с Windows Vista они выравниваются по границе в 1 МБ. Из-за этой разницы в выравнивании Диспетчер логических дисков XP (Управление дисками) может удалить эти расширенные разделы без предупреждения. [2]
EBR имеют по существу ту же структуру, что и MBR; за исключением того, что предполагается использовать только первые две записи таблицы разделов, помимо наличия обязательной подписи загрузочной записи (или магического числа ) 0xAA55 в конце сектора. [1] Эта 2-байтовая подпись отображается в дисковом редакторе сначала как 0x55 , а затем как 0xAA , поскольку IBM-совместимые ПК хранят шестнадцатеричные слова в порядке с прямым порядком байтов (см. таблицу ниже).
IBM Boot Manager (входит в состав операционных систем OS/2 и некоторых ранних версий Partition Magic ) добавляет по крайней мере одну 9-байтовую запись (начиная со смещения 0x18A ) в каждый сектор EBR. Запись состоит из байта значения флага (указывающего, находится ли раздел в меню IBM Boot Manager), за которым следует 8-байтовая строка ASCII, представляющая собой имя, которое будет использоваться в меню. Если раздел не включен в меню загрузки (например, разделы только с данными), байт флага равен нулю; в этом случае следующее 8-байтовое поле может содержать ASCII-представление номера начального сектора этого раздела (в шестнадцатеричном формате).
Тип расширенного раздела — 0x05 ( адресация CHS ) или 0x0F ( адресация LBA ). [4] DR DOS 6.0 и выше поддерживают защищенные расширенные разделы с использованием 0xC5 , которые невидимы для других операционных систем. Поскольку версии DR-DOS без поддержки LBA, включая 7.03, не распознают тип раздела 0x0F, а другие операционные системы не распознают тип 0xC5 , это также можно использовать для занятия места до первых 8 ГБ диска. для использования под DR-DOS (для логических дисков в защищенных или незащищенных разделах) и по-прежнему используйте 0x0F для выделения оставшейся части диска для операционных систем с поддержкой LBA неконфликтным способом. Аналогично, Linux поддерживает концепцию второй расширенной цепочки разделов с типом 0x85 — этот тип скрыт (неизвестен) для других операционных систем, поддерживающих только одну цепочку. [5] Другие расширенные типы разделов, которые могут содержать EBR, включают намеренно скрытые типы 0x15 , 0x1F , 0x91 и 0x9B , типы с ограниченным доступом 0x5E и 0x5F , а также защищенные типы 0xCF и 0xD5 . Однако они должны рассматриваться как частные по отношению к операционным системам и поддерживающим их инструментам и не должны монтироваться иначе.
Адреса CHS раздела трудно интерпретировать без знания геометрии (виртуального) диска, поскольку преобразования CHS в LBA основаны на количестве головок и количестве секторов на дорожке. Однако заданный начальный адрес LBA и заданный размер раздела в секторах позволяют рассчитать геометрию диска, соответствующую заданным адресам CHS, где это вообще возможно. Адресация CHS с 24 битами всегда использует 6 бит для 63 секторов на дорожку (1...63), а доступ к диску INT 13h обычно использует 8 бит для 256 головок (0...255), оставляя 10 бит для до 1024 цилиндров (0...1023). Адреса ATA CHS всегда используют 4 бита для 16 головок (0...15), это оставляет 14 бит для 16 383 цилиндров ( {{{1}}} ) в преобразованиях 24-битных адресов CHS ATA-5. [6]
Ниже приведены общие правила , которые применяются только к значениям, найденным в 4-байтовых полях записей таблицы разделов EBR (см. таблицы выше). Эти значения зависят от инструментов разбиения, используемых для их создания или изменения, и фактически большинство операционных систем, использующих расширенную схему разбиения (включая Microsoft MS-DOS, Windows и Linux), игнорируют значение «размера раздела» в записи, которые указывают на другой сектор EBR. Единственным исключением является то, что значение должно быть равно единице или больше для операционных систем Linux.
Первая запись таблицы разделов EBR указывает на логический раздел, принадлежащий этому EBR:
Вторая запись таблицы разделов EBR будет содержать нулевые байты, если это последняя запись EBR в расширенном разделе; в противном случае он указывает на следующий EBR в цепочке EBR.
Примечания:
Приведенные выше диаграммы не в масштабе: тонкие белые линии между каждым «EBR» и его логическим «разделом» представляют собой оставшуюся часть неиспользуемой области , обычно длиной 63 сектора [примечание 2] ; включая единственный сектор EBR (показан в сильно преувеличенном размере).
В некоторых системах может существовать большой пробел неиспользуемого пространства между концом логического раздела и следующим EBR или между последним логическим разделом и концом всего расширенного раздела, если какой-либо ранее созданный логический раздел был удален или изменен размер (уменьшен).
Показанное выше чередование EBR и разделов является типичным, но не обязательным. Разрешено иметь два или более последовательных EBR, за которыми следуют две или более областей данных раздела.
Linux и подобные операционные системы обозначают жесткие диски IDE/dev/hda
как первый жесткий диск, /dev/hdb
второй жесткий диск и так далее. Аналогично SCSI , а в более поздних ядрах жесткие диски IDE и SATA идентифицируются как /dev/sda
первый диск и т. д.
До четырех разделов, определенных в основной загрузочной записи, обозначаются как /dev/hda1
... /dev/hda4
для /dev/hda
. Пятый раздел в этой схеме, например, /dev/hda5
соответствует первому логическому диску . Тогда шестой раздел /dev/hda6
будет соответствовать второму логическому диску , иными словами, контейнеры расширенного раздела не учитываются. Только самый внешний расширенный раздел, определенный в MBR (один из /dev/hda1
... /dev/hda4
), имеет имя в этой схеме. [7]
Это расширенный раздел с 6000 секторами и 3 логическими разделами.
Примечание. Ни крошечный расширенный раздел размером всего 3 МБ , ни жесткий диск с 20 секторами на дорожку не являются реалистичными, но эти значения были выбраны, чтобы сделать этот пример более читабельным.
Следующий вывод инструмента командной строки [ который? ] показывает структуру диска с двумя логическими дисками. Детали разделов FAT и NTFS удалены, строка с пометкой Linux соответствует /dev/hda6
расширенной файловой системе . Начало /dev/hda5
показывает, что задействованные операционные системы ПК DOS 7 , Windows NT и Debian не настаивают на каком-либо расширенном выравнивании разделов с пробелом:
\\.\PHYSICALDRIVE0 (при условии, что геометрия CHS 99999 255 63) идентификатор. [3189-3188] MBR CHS 0 0 1 в 0, конец 0 0 1, размер 1неиспользуемый CHS 0 0 2 в 1, конец 0 0 63, размер 621:*06: CHS 0 1 1 в 63, конец 260 254 63, размер 4192902 bigFAT2:05: CHS 261 0 1 по номеру 4192965, конец 757 254 63, размер 7984305 => EXT3:17: CHS 758 0 1 по адресу 12177270, конец 1522 254 63, размер 12289725 NTFS4:1C:CHS 1523 0 1 по номеру 24466995, конец 1825 254 63, размер 4867695 FAT32 (расширенное смещение 4192965) всего 29334690=> EXT CHS 261 0 1 в 0, конец 261 0 1, размер 15:06: CHS 261 0 2 в 1, конец 384 254 63, размер 1992059 bigFAT6:05: CHS 385 0 1 по номеру 1992060, конец 757 254 63, размер 5992245 => EXT (расширенное смещение 6185025) всего 7984305=> EXT CHS 385 0 1 в 0, конец 385 0 1, размер 1неиспользованный CHS 385 0 2 в 1, конец 385 0 63, размер 626:83: CHS 385 1 1 в 63, конец 757 254 63, размер 5992182 Linux7:00: CHS 0 0 0 в 0, конец 0 0 0, размер 0 не используется всего 5992245bigFAT CHS 0 1 1 в 63, конец 260 254 63, размер 4192902ПК DOS 7 (размер кластера 64, номер 65506) всего 4192902 NTFS CHS 758 0 1 по адресу 12177270, конец 1522 254 63, размер 12289725[1C81-013D] (размер кластера 8, номер 1536215) всего 12289725 FAT32 CHS 1523 0 1 по номеру 24466995, конец 1825 254 63, размер 4867695[C417-9E22] (размер кластера 8, номер 607271) всего 4867695bigFAT CHS 261 0 2 по номеру 4192966, конец 384 254 63, размер 1992059FAT SWAP (размер кластера 32, номер 62236), всего 1992059
Другой пример см. в «Linux Partition HOWTO» . [8]
[0x05 s]поддерживает не более 8,4 ГБ дисков: с типом 05 DOS/Windows не будет использовать расширенный вызов BIOS, даже если он доступен. См. тип 0f ниже. Использование типа 05 для расширенных разделов размером более 8 ГБ может привести к повреждению данных в MSDOS.