Загрузочный сектор

редактировать
В этом примере показаны различные компоненты GNU GRUB, распределенные по секторам жесткого диска. Установленный на жесткий диск, boot.img записывается в загрузочный сектор этого жесткого диска. boot.img имеет размер всего 446 байт.

A загрузочный сектор - это сектор постоянное устройство хранения данных (например, жесткий диск, гибкий диск, оптический диск и т. д.), которое содержит машинный код в b e загружается в оперативную память (RAM), а затем выполняется встроенной прошивкой компьютерной системы (например, BIOS, Das U-Boot и т. Д.).

Обычно самый первый сектор жесткого диска является загрузочным, независимо от размера сектора (512 или 4096 байт) и типа разделения (MBR или GPT).

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

Целью последовательной загрузки сначала микропрограммного обеспечения (например, BIOS), затем некоторого кода, содержащегося в загрузочном секторе, а затем, например, операционной системы, является максимальная гибкость.

Содержание

  • 1 IBM PC и совместимые компьютеры
  • 2 Унифицированный расширяемый интерфейс микропрограмм (UEFI)
  • 3 Повреждение загрузочного сектора
  • 4 Таблицы разделов
  • 5 Эксплуатация
  • 6 Загрузка Секторальные вирусы
  • 7 См. Также
  • 8 Примечания
  • 9 Ссылки
  • 10 Внешние ссылки

IBM PC и совместимые компьютеры

На IBM PC-совместимом машина, BIOS выбирает загрузочное устройство, затем копирует первый сектор с устройства (который может быть MBR, VBR или любым исполняемым кодом) в физическая память по адресу памяти 0x7C00. В других системах процесс может быть совершенно другим.

Унифицированный расширяемый интерфейс микропрограмм (UEFI)

Спецификация Унифицированный расширяемый интерфейс микропрограмм (UEFI) определяет новый способ загрузки операционной системы. Кроме того, спецификация UEFI также содержит «безопасную загрузку», которая в основном требует, чтобы код был подписан.

Повреждение загрузочного сектора

В случае физического повреждения загрузочного сектора жесткий диск больше не будет загрузочным; кроме случаев, когда используется специальный BIOS, который определяет неповрежденный сектор в качестве загрузочного. Однако, поскольку самый первый сектор дополнительно содержит данные о разбиении жесткого диска на разделы, жесткий диск станет полностью непригодным для использования; кроме случаев, когда они используются вместе с индивидуальным программным обеспечением.

Таблицы разделов

Диск может быть разбит на несколько разделов, и в обычных системах это ожидается. Существует два определения того, как хранить информацию, касающуюся разделения:

  • A Основная загрузочная запись (MBR) - это первый сектор устройства хранения данных, который был разбит на разделы. Сектор MBR может содержать код для поиска активного раздела и вызова его загрузочной записи тома.
  • A Загрузочная запись тома (VBR) - это первый сектор устройства хранения данных, который не был разбит на разделы, или первый сектор отдельный раздел на устройстве хранения данных, который был разбит на разделы. Он может содержать код для загрузки операционной системы (или другой автономной программы), установленной на этом устройстве или в этом разделе.

Наличие совместимого с 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 после подтверждения пользователя, либо заставит систему остановить процесс начальной загрузки до следующего включения питания. вверх.

Системы, не соответствующие описанной выше конструкции:

  • CD-ROM обычно имеют собственную структуру загрузочных секторов; для IBM PC-совместимых систем это регулируется спецификациями El Torito.
  • C128 или C64 на дисках Commodore DOS, где данные на Дорожка 1, сектор 0 начинается с магического числа, соответствующего строке «CBM».
  • Компьютеры мэйнфреймов IBM помещают небольшой объем загрузочного кода в первую и вторую дорожку первого цилиндра диск, и корневой каталог, называемый Таблица содержания тома, также находится в фиксированном месте третьей дорожки первого цилиндра диска.
  • Другое (не IBM) -совместимые) ПК-системы могут иметь различные форматы загрузочного сектора на своих дисковых устройствах.

Операция

На IBM PC-совместимых машинах BIOS игнорирует различие между VBR и MBR, а также разбиение на разделы. Прошивка просто загружает и запускает первый сектор устройства хранения. Если это дискета или USB-накопитель, это будет VBR. Если устройство является жестким диском, это будет MBR. Это код в MBR, который обычно понимает разбиение диска и, в свою очередь, отвечает за загрузку и запуск VBR любого основного раздела, настроенного для загрузки (активного раздела). Затем VBR загружает загрузчик второго уровня из другого места на диске.

Кроме того, все, что хранится в первом секторе дискеты, USB-устройства, жесткого диска или любого другого загрузочного запоминающего устройства, не требуется для немедленной загрузки любого кода начальной загрузки для ОС, если вообще когда-либо. BIOS просто передает управление тому, что там существует, до тех пор, пока сектор удовлетворяет очень простому условию наличия сигнатуры загрузочной записи 0x55, 0xAA в своих последних двух байтах. Вот почему обычный код начальной загрузки, находящийся в MBR, легко заменить более сложными загрузчиками, даже большими многофункциональными менеджерами загрузки (программами, хранящимися в другом месте на устройстве, которые могут работать без операционной системы), позволяя пользователям выбирать, что будет дальше. При такой свободе злоупотребление часто происходит в виде вирусов загрузочного сектора.

Вирусы загрузочного сектора

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

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

Например, вредоносная программа NotPetya пытается получить административные привилегии в операционной системе, а затем попытается перезаписать загрузочный сектор компьютера. CIA также разработало вредоносное ПО, которое пытается изменить загрузочный сектор, чтобы загрузить дополнительные драйверы, которые будут использоваться другими вредоносными программами.

См. Также

Примечания

  1. ^Одна из утилит FDISK, написанная для того, чтобы знать о функциях защиты загрузочного сектора BIOS, - это DR-DOS FDISK R2.31 (и выше), которая будет обнаружить этот сценарий и отобразить дополнительные интерактивные сообщения, чтобы помочь пользователю в этом. В отличие от других утилит FDISK, DR-DOS FDISK является не только средством создания разделов, но также может форматировать только что созданные разделы как FAT12, FAT16 или FAT32. Это снижает риск случайного форматирования неправильных томов.

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-13 14:42:43
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте