Сектор загрузки: устройство, функции и особенности
Boot sector
Загрузочный сектор: что это такое? Объяснение роли и функций загрузочного сектора жесткого диска, BIOS и операционных систем. Основы загрузки компьютера.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Общее понятие загрузочных секторов. Сектор постоянного устройства хранения данных.
the generic concept of boot sectors
Sector of a persistent data storage device
Загрузочный сектор – это сектор постоянного устройства хранения данных (например, жесткого диска, дискеты, оптического диска и т. д.), содержащий машинный код, который загружается в оперативную память (RAM) и затем выполняется встроенной прошивкой компьютерной системы (например, BIOS). Как правило, первым сектором жесткого диска является загрузочный сектор, независимо от размера сектора (512 или 4096 байт) и схемы разбиения на разделы (MBR или GPT). Цель определения конкретного сектора в качестве загрузочного – обеспечение совместимости между прошивкой и различными операционными системами. Принцип последовательной загрузки – сначала прошивки (например, BIOS), затем кода, содержащегося в загрузочном секторе, а после – например, операционной системы – обеспечивает максимальную гибкость.
A boot sector is the sector of a persistent data storage device (e. g., hard disk, floppy disk, optical disc, etc.) which contains machine code to be loaded into random access memory (RAM) and then executed by a computer system's built in firmware (e. g., the BIOS). Usually, the first sector of the hard disk is the boot sector, regardless of sector size (512 or 4096 bytes) and partitioning flavor (MBR or GPT). The purpose of defining one particular sector as the boot sector is inter operability between firmware and various operating systems. The purpose of chain loading first a firmware (e. g., the BIOS), then some code contained in the boot sector, and then, for example, an operating system, is maximal flexibility.
IBM PC и совместимые компьютеры
На компьютере, совместимом с IBM PC, BIOS выбирает загрузочное устройство, а затем копирует первый сектор с этого устройства (который может быть MBR, VBR или любой исполняемый код) в физическую память по адресу 0x7C00. На других системах этот процесс может существенно отличаться.
On an IBM PC compatible machine, the BIOS selects a boot device, then copies the first sector from the device (which may be a MBR, VBR or any executable code), into physical memory at memory address 0x7C00. On other systems, the process may be quite different.
Единый расширяемый интерфейс прошивки (UEFI)
UEFI (не загрузка в устаревшем режиме через CSM) не использует загрузочные секторы, а система UEFI загружает загрузчик (EFI-приложение на USB-накопителе или в системном разделе EFI) напрямую. Кроме того, спецификация UEFI включает в себя функцию "безопасная загрузка", которая, по сути, требует цифровой подписи кода UEFI.
The UEFI (not legacy boot via CSM) does not rely on boot sectors, UEFI system loads the boot loader (EFI application file in USB disk or in the EFI system partition) directly. Additionally, the UEFI specification also contains "secure boot", which basically wants the UEFI code to be digitally signed.
Повреждение багажного отдела
В случае физического повреждения загрузочного сектора, жесткий диск перестанет быть загрузочным, если только он не используется с модифицированным BIOS, который определяет неповрежденный сектор в качестве загрузочного. Однако, поскольку первый сектор также содержит данные о разделах жесткого диска, диск станет полностью неработоспособным, за исключением использования со специализированным программным обеспечением.
In case a boot sector receives physical damage, the hard disk will no longer be bootable, unless used with a custom BIOS that defines a non damaged sector as the boot sector. However, since the very first sector additionally contains data regarding the partitioning of the hard disk, the hard disk will become entirely unusable except when used in conjunction with custom software.
Операция
На компьютерах, совместимых с IBM PC, BIOS не различает VBR и MBR, а также не учитывает разбиение на разделы. Прошивка просто загружает и запускает первый сектор устройства хранения. Если это дискета или USB-флеш-накопитель, то это будет VBR. Если это жесткий диск, то это будет MBR. Именно код в MBR обычно понимает структуру разделов диска и, в свою очередь, отвечает за загрузку и запуск VBR того первичного раздела, который установлен как загрузочный (активный раздел). Затем VBR загружает загрузчик второго этапа из другого места на диске. Более того, содержимое первого сектора дискеты, USB-устройства, жесткого диска или любого другого загрузочного устройства хранения не обязано немедленно загружать какой-либо загрузочный код операционной системы, даже если это необходимо. BIOS просто передает управление тому коду, который там находится, при условии, что сектор соответствует простому требованию – наличию сигнатуры загрузочного сектора 0x55, 0xAA в его последних двух байтах. Именно поэтому обычный загрузочный код, находящийся в MBR, легко заменить более сложными загрузчиками, даже крупными многофункциональными менеджерами загрузки (программами, хранящимися в другом месте на устройстве и способными работать без операционной системы), предоставляя пользователям выбор дальнейших действий. Эта свобода часто используется злоумышленниками в виде вирусов загрузочного сектора.
On IBM PC compatible machines, the BIOS is ignorant of the distinction between VBRs and MBRs, and of partitioning. The firmware simply loads and runs the first sector of the storage device. If the device is a floppy or USB flash drive, that will be a VBR. If the device is a hard disk, that will be an MBR. It is the code in the MBR which generally understands disk partitioning, and in turn, is responsible for loading and running the VBR of whichever primary partition is set to boot (the active partition). The VBR then loads a second stage bootloader from another location on the disk. Furthermore, whatever is stored in the first sector of a floppy diskette, USB device, hard disk or any other bootable storage device, is not required to immediately load any bootstrap code for an OS, if ever. The BIOS merely passes control to whatever exists there, as long as the sector meets the very simple qualification of having the boot record signature of 0x55, 0xAA in its last two bytes. This is why it is easy to replace the usual bootstrap code found in an MBR with more complex loaders, even large multi functional boot managers (programs stored elsewhere on the device which can run without an operating system), allowing users a number of choices in what occurs next. With this kind of freedom, abuse often occurs in the form of boot sector viruses.