Jump to content

Boot sector

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 195.210.145.118 (talk) at 04:03, 13 September 2008 (Added parts about bootblocks in flash ROMs. These are different type of software\firmware and should not be mixed with disk boot sectors.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A boot sector (sometimes called a bootblock) is a sector of a hard disk, floppy disk, or similar data storage device that contains code for booting programs (usually, but not necessarily, operating systems) stored in other parts of the disk.

On a IBM PC compatible machine the BIOS selects a boot device, then it copies the first sector from the device (which may be an MBR, VBR or any executable code), to address location 0x7C00.

Also term bootblock is used to describe special kind of small programs, usually launched by a computer system immediately after power-up or reset from non-volatile storage like Flash ROM. When reset sequence completes, CPU and hardware enters into predefined state and code execution starts. Boot block in this sense is usually the very first program executed by CPU. Because of this fact, Flash ROM (especially NOR flash) often has special dedicated type of sectors intended to store such kind of boot programs. These sectors are also being called boot sectors but this term rather refers to dedicated hardware type of sectors because such sectors may have extra levels of protection against accidental erase and overwrite to avoid scenario when system completely fails to boot at very begin of boot sequence.

Typical bootblock stored in Flash ROM has size from 1kiB to 512kiB and usually does the following: applies extra hardware initializations, performs minimal hardware tests and then checks if more sophisticated boot loader, OS loader or other program could be started and either starts next boot program or enters special mode intended to help with system recovery. For example, on IBM PC compatible systems with Award BIOS and AMI BIOS there is dedicated small area, often about 8 kiB or so, called bootblock which starts first, checks if main BIOS part is present and valid and either starts main BIOS part or enters into special recovery mode which can recover main bios from special floppy disk (or sometimes from other media types as well). Depending on system design other systems may have similar software called "bootblock".

It should be mentioned that in this sense term bootblock often refers to exactly same program as boot loader term. Actually, there is no borders defined on what should be called bootblock and what should be called boot loader. Actually, both terms could describe same type of programs. Generally, quite small and dumb implementations of boot programs are more frequently referred as bootblocks while smarter and more sophisticated boot programs are rather usually referred as boot loaders. Some ROM-based systems may refer same program type and it's storage memory using boot ROM term instead.

Kinds of boot sectors

There are several major kinds of boot sectors could be encountered on IBM PC compatible hard disks, floppy disks and similar storage devices:

  • A master boot record (MBR) is the first sector of a data storage device that has been partitioned. The MBR sector may contain code to locate the active partition and invoke its Volume Boot Record.
  • A volume boot record is the first sector of a data storage device that has not been partitioned, or the first sector of an individual partition on a data storage device that has been partitioned. It may contain code to load and invoke an operating system (or other standalone program) installed on that device or within that partition.

To be a valid boot sector, the two-byte hex word 0xAA55, called the boot sector signature, must exist at the end of the sector; otherwise, either the BIOS or MBR code will report an error message and halt any OS bootstrapping process.

  • Non IBM PC compatible systems may have different boot sector formats on their disk devices.
  • Sometimes, boot sector term refers to special type of NOR Flash ROM sectors intended to store initial boot programs (such programs are usually called bootblocks or boot loaders). Boot sectors in Flash ROM are often implement extra protection from accidental erase and rewrite to avoid occasional erase of bootblock program in contrast to boot sectors encountered on disk devices where physical properties of sectors storing boot programs are usually same as properties of other sectors.

Operation

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 disk, 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 0xAA55 in its last two bytes. This is why it's 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. But with such freedom, there's also the possibility for abuse as addressed in the section on boot viruses.

Boot sectors and computer viruses

Boot sectors are one mechanism by which computer viruses gain control of a system. Boot sector infector viruses replace the bootstrap code in the boot sectors (of floppy disks, hard disks, or both) with viral code.

See also

References

  • Mary Landesman. "Boot sector viruses".
  • Microsoft. "How to Protect Boot Sector from Viruses in Windows". KnowledgeBase.
  • Denny Lin. "Inexpensive boot sector virus detection and prevention techniques".
  • Kaspersky Lab. "Boot sector viruses". Virus Encyclopedia / Malware Descriptions / Classic Viruses.
  • Arman Catacutan. "Glossary of Virus Terms". Boot Viruses.
  • Greg O'Keefe. "Sample to build a boot program on x86 real mode".
  • Susam Pal. "Writing boot sector code using GNU tools".