Небольшая программа расположенная в самом первом секторе загрузочного диска

Самый первый сектор мягкого диска диска занимает загрузочная запись (Boot Record ).

В отличие от жеских дисков с их линейной структурой LBA для мягхих дисков применяется адресация CHS. В терминах CHS первый сектор начинается с 1. А в терминах LBA это 0.

Эта запись считывается из диска БИОС’ом и запускается на выполнение. Задача загрузочной записи — выполнить загрузку операционной системы. Каждый тип операционной системы имеет свою загрузочную запись. Даже для разных версий одной и той же операционной системы программа загрузки может выполнять различные действия.

Кроме программы начальной загрузки операционной системы в загрузочной записи находятся параметры, описывающие характеристики данного диска, его низкоуровневый формат. Все эти параметры располагаются в самом начале сектора, в его так называемой логической области. Структура этой области изменилась от компьютера к компьютеру и от ОС к ОС в версии 4.0 операционной системы MS-DOS.

Формат загрузочной записи [ ]

Сначала приведем формат загрузочной записи для версий MS-DOS, более ранних, чем 4.0.

Как сделать раздел жесткого диска активным загрузочным.Как восстановить запуск Windows

Смещение Размер Содержимое
3 Команда JMP xxxx — ближний переход на программу начальной загрузки
3 8 Название фирмы-изготовителя операционной системы и версия, например: «IBM 4.0»
11 13 Блок параметров BIOS (BPB )
24 2 Количество секторов на дорожке
26 2 Количество головок (поверхностей диска)
28 2 Количество скрытых секторов, эти секторы могут использоваться для схемы разделения физического диска на разделы и логические диски
ХХХ 2 Маркер конца сектора 55AA

Маркер конца сектора необходим железу и БИОСу для чтения первого сектора так как размер на разных дисках мог отличаться. 256, 384,512 байт. В прочим современные эмуляторы поддерживают только 512 байт.

В самом начале загрузочного сектора располагается команда внутрисегментного перехода JMP. Она нужна для обхода форматированной зоны сектора и передачи управления загрузочной программе, располагающейся со смещением 30.

Название фирмы-изготовителя не используется операционной системой.

Со смещением 11 располагается BPB — блок параметров BIOS , о котором мы уже говорили в разделах книги, посвященных драйверам. Этот блок содержит некоторые характеристики логического диска, о которых мы будем говорить немного позже. Он активно используется дисковыми драйверами. Для MS-DOS версий до 4.0 блок BPB имеет следующий формат:

Восстановление жёсткого диска в программе mhdd. Работа в программе mhdd

Смещение, байт Размер, байт Имя поля Описание
2 sect_siz Количество байт в одном секторе диска
2 1 clustsiz Количество секторов в одном кластере
3 2 res_sect Количество зарезервированных секторов
5 1 fat_cnt Количество таблиц FAT
6 2 root_siz Максимальное количество дескрипторов файлов в корневом каталоге диска
8 2 tot_sect Общее количество секторов на носителе данных (в разделе MS-DOS)
10 1 media Байт-описатель среды носителя данных
11 2 fat_size Количество секторов, занимаемых одной копией FAT

Поля загрузочного сектора со смещениями 24 и 26 содержат, соответственно, количество секторов на дорожке и количество головок в НМД. Поле со смещением 28 содержит количество «скрытых» секторов, которые не принадлежат ни одному логическому диску. Эти секторы могут содержать основную или вторичные таблицы разделов диска.

Для современных версий MS-DOS загрузочный сектор имеет другой формат:

Зарезервировано, обычно содержит запись типа ‘FAT12 ‘, которая идентифицирует формат таблицы размещения файлов FAT

Первые два поля в загрузочном секторе аналогичны описанным раньше.

Поле со смещением 38 всегда содержит символ ‘)’. Этот символ означает, что используется формат расширенной загрузочной записи.

Серийный номер диска формируется во время форматирования диска на основе даты и времени форматирования. Это поле может быть использовано для определения факта замены дискеты.

Метка диска формируется при форматировании и может быть изменена командой LABEL операционной системы MS-DOS. Одновременно метка диска помещается в корневой каталог.

Читайте также:
Как на iOs удалить программу

Расширенный блок параметров BIOS [ ]

Поле загрузочного сектора со смещением 11 содержит расширенный блок параметров BIOS . Он состоит из обычного блока BPB и дополнительного расширения:

Смещение, байт Размер, байт Имя поля Описание
2 sect_siz Количество байт в одном секторе диска
2 1 clustsiz Количество секторов в одном кластере
3 2 res_sect Количество зарезервированных секторов
5 1 fat_cnt Количество таблиц FAT
6 2 root_siz Максимальное количество дескрипторов файлов в корневом каталоге диска
8 2 tot_sect Общее количество секторов на носителе данных (в разделе MS-DOS)
10 1 media Байт-описатель среды носителя данных
11 2 fat_size Количество секторов, занимаемых одной копией FAT
13 2 sectors Количество секторов на дорожке
15 2 heads Количество магнитных головок
17 2 hidden_l Количество скрытых секторов для раздела, который по размеру меньше 32 Мбайт
19 2 hidden_h Количество скрытых секторов для раздела, превышающего по размеру 32 Мбайт
21 4 tot_secs Общее количество секторов на логическом диске для раздела, превышающего по размеру 32 Мбайт

Как обычный, так и расширенный блок параметров BIOS содержит байт-описатель среды media. Этот байт может служить для идентификации носителя данных и может содержать следующие величины, характеризующие носитель данных по количеству сторон диска и количеству секторов на дорожке:

Значение Количество сторон Количество секторов Диаметр, дюймы Емкость, Кбайт
F0h 2 18 3,5 1440
— » — 2 36 3,5 2880
— » — 2 15 5,25 1200
F8h Жесткий диск любой емкости
F9h 2 9 3,5 720
— » — 2 15 5,25 1200
FAh 1 8 5,25 320
FBh 2 8 3,5 640
FCh 1 9 5,25 180
FDh 2 9 5,25 360
FEh 1 8 5,25, 8 160
FFh 2 8 5,25, 8 320

Прежде чем мы продолжим изучение логической структуры диска, покажем, как программа может получить содержимое загрузочного сектора.

Большинство форматов мягких дисков стандартизированы. А вот с нестандартными могут возникнуть проблемы с загрузкой. В последнее время 5″ диски отжили своё и остались 3,5″ с емкостью 1,44 МБайта.

Поэтому появились БИОСы которые отказываются загружаться с других форматов, хотя такое поведение нетипичное. А вот Эмуляторы могут и предаться.

Специфика MS-DOS накладывает отпечаток на разработку ОС для IBM PC совместимых компьютеров. В прочим не столь существенный. Большинство БИОСов проверяют только маркер сектора и BPB другие более строгие и проверяют формат файловой системы как минимум наличие слова «FAT» как максимум не пропускают FAT32.

Источник: osdev.fandom.com

Небольшая программа расположенная в самом первом секторе загрузочного диска

LuckyAds поставлен 29.08.2022 —>

Наши партнеры

—> Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Этап 2: Master Boot Record и Boot Record

Итак, BIOS нашел загрузочное устройство и передал управление программе, которая находилась в самом первом секторе этого диска или дискеты (физический адрес: цилиндр 0, головка 0, сектор 1). Теперь эта программа загружена в память и именно она управляет ходом дальнейшей загрузки. Со времен MS-DOS эту программу принято называть загрузочной записью (Boot Record), а первый сектор любого диска или дискеты — загрузочным сектором (Boot Sector).

Примечание: На всех стандартно отформатированных дискетах, даже на тех, которые не являются загрузочными, Boot Sector содержит исполняемый код. Этот код необходим хотя бы для выдачи на экран информационого сообщения. Текст этого сообщения различается в зависимости от того, в какой операционной системе форматировалась дискета. В MS-DOS это было сообщение «Non-system disk or disk error» (вероятно знакомое вам). Жесткий диск, отформатированный в NT (несистемный), сообщал «NTLDR is missing».

2. Задание таблицы разделов в MBR (как и использование стандартных BIOS) уже давно ограничивает возможности операцтонных систем. Поэтому фирма Intel разработала Extensible Firmware Interface (EFI, Расширяемый Микропрограммный Интерфейс) — стандарт, призванный придти на смену отжившего свой век PC BIOS.

Частью этого стандарта является GPT призван стать стандартным форматом размещения таблицы разделов на физическом жестком диске. Частью этого стандарта является GUID Partition Table (GPT) — новый формат таблицы разделов жесткого диска. GPT призван стать стандартным форматом размещения таблицы разделов на физическом жестком диске. Подробнее о GPT читайте в заметке «GUID Partition Table (новая таблица разделов)». Однако в настоящем обзоре EFI не рассматривается, мы будем исследовать традиционный способ загрузки ОС с использованием MBR, который пока что преодладает в реальной жизни.

  • сканирует таблицу разделов (partition table) в поисках первого (обычно он и единственный) активного раздела (раздела, помеченного как «загрузочный»). Если в таблице разделов активный раздел не обнаружен или хотя бы один раздел содержит неправильную метку, а также если несколько разделов помечены как активные, выдаётся соответствующее сообщение об ошибке;
  • когда активный раздел найден, программа запоминает его физическое размещение на диске, используя запись в соответствующей строке таблицы разделов диска;
  • затем программа первичного загрузчика перемещает свой код по адресам от 0600 до 07FF (если вы помните, первоначально она размещалась по смещению 7C00) и продолжает выполняться оттуда;
  • код загрузочного сектора раздела (это уже код загрузчика файловой системы, размещенной в этом разделе) загружается в память по смещению 7C00 (до 7DFF).
  • управление передается загрузчику файловой системы (по адресу 7C00).
Читайте также:
Последовательность создания гиперссылки по тексту в программе ms word

В MS DOS программа из загрузочного сектора активного раздела просматривает блок параметров BIOS в поисках расположения корневого каталога, а затем копирует из него в память системный файл IO.SYS (который, по сути, является частью DOS) и передаёт ему управление.

В системе Windows NT код из загрузочного сектора активного раздела ищет расположение на диске файла NTLDR, делая это следующим образом:

  • Ищет блок параметров BIOS (the BIOS Parameter Block) и расширенный блок параметров BIOS (Extended BIOS Parameter block). Использует эти данные для того, чтобы найти NTLDR на первом («загрузочном») диске.
  • Загружает NTLDR в память.
  • Запускает его.

Если NTLDR не найден, выдается сообщение «Could not find NTLDR».

Обратите внимание! Местоположение NTLDR ищется на первом диске, даже если код загрузочного сектора хранится на другом диске (что может иметь место в тех случаях, когда используется MBR не от Microsoft). Хотя это выглядит достаточно просто, следствием того факта, что NTLDR ищется на первом диске, является то, что если вы пытаетесь установить NT на второй диск и процедура инсталляции не находит на первом диске свободного места для установки загрузочного сектора, файла NTLDR и других файлов (что может иметь место, если на первом диске уже установлена другая ОС, которую NT не может распознать), будет выдано примерно такое сообщение об ошибке: «xxxx MB disk0 at id0 on bus0 on atapi does not contain a partition suitable for starting Windows NT». (Для SCSI-дисков слова немного отличаются, но суть та же). Это сообщение можно перевести на более понятный язык примерно следующим образом: «Были использованы данные из блока параметров BIOS, но загрузка с того раздела диска, на который указывает ссылка, невозможна».

Источник: rus-linux.net

Главная загрузочная запись Роль и место mbr в загрузке компьютера (для архитектуры x86)

В процессе загрузки компьютера x86 вначале всегда отрабатывается BIOS. На этой стадии кроме тестирования и активации «железа», происходит также и выбор устройства, с которого будет происходить дальнейшая загрузка. Это может быть дискета, жёсткий диск, сетевой ресурс, встроенное ПЗУ или любое иное устройство. (Алгоритм выбора загрузочного устройства может быть различным и зависит от реализации BIOS.) После выбора загрузочного устройства, управление всей дальнейшей загрузкой BIOS полностью передаёт этому устройству.

В случае, если устройство имеет только один раздел (как, например, дискета или сетевая загрузка), то выбор однозначен, и загрузка продолжается сразу с этого устройства. Однако, если устройство содержит несколько разделов, каждый из которых потенциально может быть загрузочным (как, например, в случае жестких дисков), то возникает неопределённость: с какого именно раздела производить загрузку?

Для разрешения неоднозначности по выбору раздела было предложено вынести этот вопрос из ведения BIOS и передать этот выбор самому устройству. Возникла идея использовать для этого небольшую программу, записанную на самом носителе, которая и осуществляла бы данный выбор. Так появилась концепция MBR.

Читайте также:
План разработки программы пример

Таким образом, потенциальное наличие нескольких загрузочных разделов, среди которых необходимо осуществить выбор — это ключевой момент в необходимости появления и отработки MBR. Для устройств с единственным (или однозначно заданным) загрузочным разделом концепция MBR лишена смысла и не используется.

Главная загрузочная запись (master boot record, MBR) — это код и данные, необходимые для загрузки операционной системы (ОС), и расположенные в первых физических секторах (чаще всего в самом первом) на жёстком диске или другом устройстве хранения информации. MBR содержит небольшой фрагмент исполняемого кода, таблицу разделов (partition table) и специальную сигнатуру.

Цель MBR — ещё не загрузка ОС, а всего лишь выбор, «с какого раздела жёсткого диска следует загружать ОС». На стадии MBR происходит выбор раздела диска и ничего более. Загрузка самой ОС происходит на более поздних этапах.

В процессе запуска компьютера после окончания начального теста (Power On Self Test, POST) MBR загружается базовой системой ввода-вывода (BIOS) в оперативную память (в компьютерах архитектуры IBM PC обычно с адреса 0000:7c00) и передаётся управление находящемуся в MBR загрузочному коду (обычно командой long jump).

Структура диска, разбитого на разделы

Информация о размещении разделов на жёстком диске хранится в таблице разделов (partition table), которая является частью главной загрузочной записи (MBR). MBR располагается в первом физическом секторе жёсткого диска.

Раздел может быть либо первичным (основным), либо дополнительным.

В первом секторе каждого основного раздела находится загрузочный сектор (Boot Record), отвечающий за загрузку операционной системы с этого раздела. Информация о том, какой из основных разделов будет использован для загрузки операционной системы, тоже записана в главной загрузочной записи.

В MBR под таблицу разделов выделено 64 байта. Каждая запись занимает 16 байт. Таким образом, всего на жестком диске может быть создано не более 4 разделов. Когда разрабатывалась структура MBR, это считалось достаточным. Однако, позднее был введён дополнительный раздел, структура которого (EBR) может поддерживать неограниченное число логических дисков (разделов).

По правилам дополнительный раздел может быть только один, и не может содержать другой дополнительный раздел. Таким образом, в максимальной конфигурации MBR на жёстком диске может быть сформировано 3 основных раздела и 1 дополнительный. При этом, некоторые операционные системы способны загружаться только с основного раздела.

Обойти эти ограничения позволяет дополнительное программное обеспечение (менеджеры разделов).

Иногда в MBR кроме основной функции (выбора раздела) включаются также и другие функции, например, авторизация. Но это уже расширение и дополнение к основной функции и задаче MBR. Такие системы не получили широкого распространения.

Другие (не x86) системы

В связи с тем, что на других системах применяются иные архитектурные решения (начиная от активации железа и заканчивая загрузкой ОС), то концепция MBR может быть к ним не применима. Для подробностей — см. описание соответствующих систем.

Утвержденного стандарта на структуру MBR не существует, однако, есть «сложившиеся традиции», по сути, «стандарт де-факто», которого придерживаются большинство MBR от разных производителей.

Иные форматы MBR

Загрузчики, отличные от стандартных Windows-загрузчиков, могут использовать всё пространство между MBR и первым разделом (~32 кб) для собственных целей. В таких случаях под MBR понимают весь загрузочный код, а для выделения именно первых 512 байт говорят, что они расположены в MBS — Master Boot Sector — главном загрузочном секторе. Для операционных систем Microsoft понятия MBR и MBS совпадают, так как вся MBR содержится в MBS, хотя это не совсем правильно, так как под MBR подразумевают данные, а под MBS — физический сектор.

MBR от Microsoft (MS DOS и MS Windows)

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru