A загрузочный сектор - это сектор постоянное устройство хранения данных (например, жесткий диск, гибкий диск, оптический диск и т. д.), которое содержит машинный код в b e загружается в оперативную память (RAM), а затем выполняется встроенной прошивкой компьютерной системы (например, BIOS, Das U-Boot и т. Д.).
Обычно самый первый сектор жесткого диска является загрузочным, независимо от размера сектора (512 или 4096 байт) и типа разделения (MBR или GPT).
Цель определения одного конкретного сектора в качестве загрузочного - совместимость между различными прошивками и различными операционными системами.
Целью последовательной загрузки сначала микропрограммного обеспечения (например, BIOS), затем некоторого кода, содержащегося в загрузочном секторе, а затем, например, операционной системы, является максимальная гибкость.
На IBM PC-совместимом машина, BIOS выбирает загрузочное устройство, затем копирует первый сектор с устройства (который может быть MBR, VBR или любым исполняемым кодом) в физическая память по адресу памяти 0x7C00. В других системах процесс может быть совершенно другим.
Спецификация Унифицированный расширяемый интерфейс микропрограмм (UEFI) определяет новый способ загрузки операционной системы. Кроме того, спецификация UEFI также содержит «безопасную загрузку», которая в основном требует, чтобы код был подписан.
В случае физического повреждения загрузочного сектора жесткий диск больше не будет загрузочным; кроме случаев, когда используется специальный BIOS, который определяет неповрежденный сектор в качестве загрузочного. Однако, поскольку самый первый сектор дополнительно содержит данные о разбиении жесткого диска на разделы, жесткий диск станет полностью непригодным для использования; кроме случаев, когда они используются вместе с индивидуальным программным обеспечением.
Диск может быть разбит на несколько разделов, и в обычных системах это ожидается. Существует два определения того, как хранить информацию, касающуюся разделения:
Наличие совместимого с IBM PC загрузчика для процессоров x86 в загрузочном секторе условно обозначается значком двухбайтовая шестнадцатеричная последовательность 0x55 0xAA(называемая сигнатурой загрузочного сектора) в конце загрузочного сектора (смещения 0x1FEи 0x1FF). Эта подпись указывает на наличие по крайней мере фиктивного загрузчика, который можно безопасно запустить, даже если он не может фактически загрузить операционную систему. Он не указывает на конкретную (или даже наличие) файловую систему или операционную систему, хотя некоторые старые версии DOS 3 полагались на нее в своем процессе для обнаружения носителей, отформатированных в FAT. (в более новых версиях нет). Загрузочный код для других платформ или процессоров не должен использовать эту подпись, так как это может привести к сбою, когда BIOS передает выполнение в загрузочный сектор, предполагая, что он содержит допустимый исполняемый код. Тем не менее, некоторые носители для других платформ ошибочно содержат подпись, что делает эту проверку не на 100% надежной на практике.
Подпись проверяется большинством системных BIOS, начиная с (как минимум) IBM PC / AT (но не на исходном IBM PC и некоторых других машинах). Более того, он также проверяется большинством загрузчиков MBR перед передачей управления загрузочному сектору. Некоторые BIOS (например, IBM PC / AT) выполняют проверку только для фиксированных дисков / съемных дисков, в то время как для дискет и суперфлоппи достаточно начать с байта, большего или равного 06hи первых девяти. слова не должны содержать одно и то же значение до того, как загрузочный сектор будет принят как действительный, что позволяет избежать явной проверки на 0x55, 0xAAна дискетах. Поскольку старые загрузочные секторы (например, очень старые носители CP / M-86 и DOS) иногда не имеют этой подписи, несмотря на то, что они могут быть успешно загружены, проверка может быть отключена в некоторых средах. Если код BIOS или MBR не обнаруживает допустимый загрузочный сектор и, следовательно, не может передать выполнение коду загрузочного сектора, он попробует следующее загрузочное устройство в строке. Если все они терпят неудачу, обычно отображается сообщение об ошибке и вызывается INT 18h. Это либо запустит дополнительное резидентное программное обеспечение в ПЗУ (ROM BASIC ), либо перезагрузит систему через INT 19h после подтверждения пользователя, либо заставит систему остановить процесс начальной загрузки до следующего включения питания. вверх.
Системы, не соответствующие описанной выше конструкции:
На IBM PC-совместимых машинах BIOS игнорирует различие между VBR и MBR, а также разбиение на разделы. Прошивка просто загружает и запускает первый сектор устройства хранения. Если это дискета или USB-накопитель, это будет VBR. Если устройство является жестким диском, это будет MBR. Это код в MBR, который обычно понимает разбиение диска и, в свою очередь, отвечает за загрузку и запуск VBR любого основного раздела, настроенного для загрузки (активного раздела). Затем VBR загружает загрузчик второго уровня из другого места на диске.
Кроме того, все, что хранится в первом секторе дискеты, USB-устройства, жесткого диска или любого другого загрузочного запоминающего устройства, не требуется для немедленной загрузки любого кода начальной загрузки для ОС, если вообще когда-либо. BIOS просто передает управление тому, что там существует, до тех пор, пока сектор удовлетворяет очень простому условию наличия сигнатуры загрузочной записи 0x55, 0xAA в своих последних двух байтах. Вот почему обычный код начальной загрузки, находящийся в MBR, легко заменить более сложными загрузчиками, даже большими многофункциональными менеджерами загрузки (программами, хранящимися в другом месте на устройстве, которые могут работать без операционной системы), позволяя пользователям выбирать, что будет дальше. При такой свободе злоупотребление часто происходит в виде вирусов загрузочного сектора.
Поскольку код в загрузочном секторе выполняется автоматически, загрузочные секторы исторически были распространенным вектором атаки компьютерных вирусов.
Для борьбы с этим поведением Системный BIOS часто включает параметр, предотвращающий запись программного обеспечения в первый сектор любых подключенных жестких дисков; тем самым он может защитить главную загрузочную запись, содержащую таблицу разделов, от случайной перезаписи, но не загрузочные записи тома в загрузочных разделах. В зависимости от BIOS попытки записи в защищенный сектор могут блокироваться при взаимодействии с пользователем или без него. Однако в большинстве BIOS отображается всплывающее сообщение, дающее пользователю возможность изменить настройку. Параметр BIOS отключен по умолчанию, потому что сообщение может отображаться некорректно в графическом режиме, а блокирование доступа к MBR может вызвать проблемы с программами установки операционной системы или средствами доступа к диску, шифрованием или разделением, такими как FDISK, который могли быть написаны не для того, чтобы знать об этой возможности, что привело к их некорректному прерыванию и, возможно, оставив разделение диска в несогласованном состоянии.
Например, вредоносная программа NotPetya пытается получить административные привилегии в операционной системе, а затем попытается перезаписать загрузочный сектор компьютера. CIA также разработало вредоносное ПО, которое пытается изменить загрузочный сектор, чтобы загрузить дополнительные драйверы, которые будут использоваться другими вредоносными программами.