Difference between revisions of "Master Boot Record"

From ArchWiki
Jump to: navigation, search
(expansion -- addition of #Booting; proper categorization; article summary added)
(Restoring a Windows boot record)
(43 intermediate revisions by 18 users not shown)
Line 1: Line 1:
[[Category:Boot process (English)]]
+
[[Category:Boot process]]
[[Category:Mainboards and BIOS (English)]]
+
[[Category:Mainboards and BIOS]]
[[Category:System recovery (English)]]
+
[[Category:System recovery]]
 +
[[es:Master Boot Record]]
 +
[[it:Master Boot Record]]
 +
[[ja:Master Boot Record]]
 +
[[ru:Master Boot Record]]
 
{{Article summary start}}
 
{{Article summary start}}
 
{{Article summary text|An overview of the Master Boot Record; the first sector of a partitioned data storage device.}}
 
{{Article summary text|An overview of the Master Boot Record; the first sector of a partitioned data storage device.}}
{{Article summary heading|Available in languages}}
+
{{Article summary heading|Overview}}
{{i18n entry|English|MBR}}
+
{{Article summary text|{{Boot process overview}}}}
{{Article summary heading|Related articles}}
+
{{Article summary heading|Related}}
{{Article summary wiki|GRUB}}
+
{{Article summary wiki|GUID Partition Table}}
{{Article summary wiki|GRUB2}}
+
{{Article summary wiki|Unified Extensible Firmware Interface}}
{{Article summary wiki|LILO}}
+
{{Article summary wiki|Arch Boot Process}}
 
{{Article summary end}}
 
{{Article summary end}}
  
Most PCs today use firmware called the [http://en.wikipedia.org/wiki/BIOS BIOS] (Basic Input/Output System).  The BIOS is typically contained within a CMOS (Ceramic Metal Oxide Semiconductor) and executes upon system power-up, proceeding to initialize system devices.  After system devices have been initialized, the BIOS then launches a program on the Master Boot Record (MBR).  The MBR is the first sector (first 512 bytes) of a storage device (hard disk drive, solid state drive, CD/DVD drive, USB drive...).  The BIOS launches the program on the MBR of the first recognized BIOS boot device on your computer.  This program (also known as a bootloader) reads the partition table (also contained within the MBR) and eventually boots the operating system(s).  Common GNU/Linux bootloaders include [[GRUB]] and [[LILO]].
+
The Master Boot Record (MBR) is the first 512 bytes of a storage device.  The MBR is not a partition; it is reserved for the operating system's bootloader and the storage device's partition table. An newer alternative to MBR is the [[GUID Partition Table]], which is part of the [[Unified Extensible Firmware Interface]] specification.
  
== Booting ==
+
== Boot process ==
  
''A brief overview of the boot process''[http://bbs.archlinux.org/viewtopic.php?id=86361]
+
Booting is a multi-stage process. Most PCs today initialize system devices with firmware called the [http://en.wikipedia.org/wiki/BIOS BIOS] (Basic Input/Output System), which is typically stored in a dedicated ROM chip on the system board. After system devices have been initialized, the BIOS looks for the bootloader on the MBR of the first recognized storage device (hard disk drive, solid state drive, CD/DVD drive, USB drive...) or the first partition of the device. It then executes that program. The bootloader reads the partition table, and is then capable of loading the operating system(s). Common GNU/Linux bootloaders include [[GRUB]] and [[Syslinux]].
  
Booting is a multi-stage process. The MBR is the first 512-byte sector on any hard drive -- it is '''not''' a partition.
+
== History ==
  
 
The MBR consists of a short piece of assembly code (the initial bootloader – 446 bytes), a partition table for the 4 primary partitions (16 bytes each) and a ''sentinel'' (0xAA55).
 
The MBR consists of a short piece of assembly code (the initial bootloader – 446 bytes), a partition table for the 4 primary partitions (16 bytes each) and a ''sentinel'' (0xAA55).
  
The 'original' Windows (or rather MS/DOS) bootloader will check the partition table for one and only one 'active' partition and then read X sectors from this partition and then transfer control to whatever is found. This is why the initial DOS-loader will not be able to boot an Arch Linux partition; it can only cater for an ''active'', ''primary'' partition.
+
The "Conventional" Windows/DOS MBR bootloader code will check the partition table for one and only one ''active'' partition, read X sectors from this partition and then transfer control to the operating system. The Windows/DOS bootloader can ''not'' boot an Arch Linux partition because it is not designed to load the Linux kernel, and it can only cater for an ''active'', ''primary'' partition (which GRUB safely ignores).
  
The [[GRUB|GRand Unified Bootloader (GRUB)]] is the de facto standard bootloader for GNU/Linux, and users are recommended to install it on the MBR to facilitate booting from ''any'' partition, whether it is primary or logical.  
+
The [[GRUB|GRand Unified Bootloader (GRUB)]] is the de facto standard bootloader for GNU/Linux, and users are recommended to install it on the MBR to allow booting from ''any'' partition, whether it be primary or logical.
 
+
{{Note|Bootloaders must be installed to the active partition (set via the "boot" flag in many partitioning tools) if no bootloader is present on the MBR in order to be found by the BIOS.}}
+
  
 
== Backup and restoration ==
 
== Backup and restoration ==
 
{{Warning|Restoring the MBR with a mismatching partition table will make your data unreadable and nearly impossible to recover. If you simply need to reinstall the bootloader see [[GRUB]] or [[LILO]].}}
 
  
 
Because the MBR is located on the disk it can be backed up and later recovered.
 
Because the MBR is located on the disk it can be backed up and later recovered.
Line 36: Line 36:
 
To backup the MBR:
 
To backup the MBR:
  
  dd if=/dev/hda of=/path/mbr-backup bs=512 count=1
+
  dd if=/dev/sda of=/path/mbr-backup bs=512 count=1
  
 
Restore the MBR:
 
Restore the MBR:
  
  dd if=/path/mbr-backup of=/dev/hda bs=512 count=1
+
  dd if=/path/mbr-backup of=/dev/sda bs=512 count=1
 +
 
 +
{{Warning|Restoring the MBR with a mismatching partition table will make your data unreadable and nearly impossible to recover. If you simply need to reinstall the bootloader see [[GRUB]] or [[Syslinux]].}}
 +
 
 +
To erase the MBR (may be useful if you have to do a full reinstall of another operating system) only the first 446 bits are zeroed because the rest of the data contains the partition table:
 +
 
 +
dd if=/dev/zero of=/dev/sda bs=446 count=1
 +
 
 +
== Restoring a Windows boot record ==
 +
 
 +
By convention (and for ease of installation), Windows is usually installed on the first partition and installs its partition table and reference to its bootloader to the first sector of that partition.  If you accidentally install a bootloader like GRUB to the Windows partition or damage the boot record in some other way, you will need to use a utility to repair it.  Microsoft includes a boot sector fix utility {{Ic|FIXBOOT}} and an MBR fix utility called {{Ic|FIXMBR}} on their recovery discs, or sometimes on their install discs.  Using this method, you can fix the reference on the boot sector of the first partition to the bootloader file and fix the reference on the MBR to the first partition, respectively.  After doing this you will have to [[GRUB#Bootloader installation|reinstall GRUB]] to the MBR as was originally intended (that is, the GRUB bootloader can be assigned to chainload the Windows bootloader).
 +
 
 +
If you wish to revert back to using Windows, you can use the {{Ic|FIXBOOT}} command which chains from the MBR to the boot sector of the first partition to restore normal, automatic loading of the Windows operating system.
 +
 
 +
Of note, there is a Linux utility called {{Ic|ms-sys}} (package {{AUR|ms-sys}} in AUR) that can install MBR's.  However, this utility is only currently capable of writing new MBRs (all OS's and file systems supported) and boot sectors (a.k.a. boot record; equivalent to using {{Ic|FIXBOOT}}) for FAT file systems.  Most LiveCDs do not have this utility by default, so it will need to be installed first, or you can look at a rescue CD that does have it, such as [http://partedmagic.com/ Parted Magic].
 +
 
 +
First, write the partition info (table) again by:
 +
 
 +
ms-sys --partition /dev/sda1
 +
 
 +
Next, write a Windows 2000/XP/2003 MBR:
 +
 
 +
ms-sys --mbr /dev/sda  # Read options for different versions
 +
 
 +
Then, write the new boot sector (boot record):
  
To erase the MBR (may be useful if you have to do a full reinstall of another operating system):
+
ms-sys -(1-6)         # Read options to discover the correct FAT record type
  
dd if=/dev/zero of=/dev/hda bs=446 count=1
+
{{Ic|ms-sys}} can also write Windows 98, ME, Vista, and 7 MBRs as well, see {{Ic|ms-sys -h}}.
  
== Resources ==
+
==See also==
  
 
* [http://kb.iu.edu/data/aijw.html What is a Master Boot Record (MBR)?]
 
* [http://kb.iu.edu/data/aijw.html What is a Master Boot Record (MBR)?]

Revision as of 22:04, 29 January 2013

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary end

The Master Boot Record (MBR) is the first 512 bytes of a storage device. The MBR is not a partition; it is reserved for the operating system's bootloader and the storage device's partition table. An newer alternative to MBR is the GUID Partition Table, which is part of the Unified Extensible Firmware Interface specification.

Boot process

Booting is a multi-stage process. Most PCs today initialize system devices with firmware called the BIOS (Basic Input/Output System), which is typically stored in a dedicated ROM chip on the system board. After system devices have been initialized, the BIOS looks for the bootloader on the MBR of the first recognized storage device (hard disk drive, solid state drive, CD/DVD drive, USB drive...) or the first partition of the device. It then executes that program. The bootloader reads the partition table, and is then capable of loading the operating system(s). Common GNU/Linux bootloaders include GRUB and Syslinux.

History

The MBR consists of a short piece of assembly code (the initial bootloader – 446 bytes), a partition table for the 4 primary partitions (16 bytes each) and a sentinel (0xAA55).

The "Conventional" Windows/DOS MBR bootloader code will check the partition table for one and only one active partition, read X sectors from this partition and then transfer control to the operating system. The Windows/DOS bootloader can not boot an Arch Linux partition because it is not designed to load the Linux kernel, and it can only cater for an active, primary partition (which GRUB safely ignores).

The GRand Unified Bootloader (GRUB) is the de facto standard bootloader for GNU/Linux, and users are recommended to install it on the MBR to allow booting from any partition, whether it be primary or logical.

Backup and restoration

Because the MBR is located on the disk it can be backed up and later recovered.

To backup the MBR:

dd if=/dev/sda of=/path/mbr-backup bs=512 count=1

Restore the MBR:

dd if=/path/mbr-backup of=/dev/sda bs=512 count=1
Warning: Restoring the MBR with a mismatching partition table will make your data unreadable and nearly impossible to recover. If you simply need to reinstall the bootloader see GRUB or Syslinux.

To erase the MBR (may be useful if you have to do a full reinstall of another operating system) only the first 446 bits are zeroed because the rest of the data contains the partition table:

dd if=/dev/zero of=/dev/sda bs=446 count=1

Restoring a Windows boot record

By convention (and for ease of installation), Windows is usually installed on the first partition and installs its partition table and reference to its bootloader to the first sector of that partition. If you accidentally install a bootloader like GRUB to the Windows partition or damage the boot record in some other way, you will need to use a utility to repair it. Microsoft includes a boot sector fix utility FIXBOOT and an MBR fix utility called FIXMBR on their recovery discs, or sometimes on their install discs. Using this method, you can fix the reference on the boot sector of the first partition to the bootloader file and fix the reference on the MBR to the first partition, respectively. After doing this you will have to reinstall GRUB to the MBR as was originally intended (that is, the GRUB bootloader can be assigned to chainload the Windows bootloader).

If you wish to revert back to using Windows, you can use the FIXBOOT command which chains from the MBR to the boot sector of the first partition to restore normal, automatic loading of the Windows operating system.

Of note, there is a Linux utility called ms-sys (package ms-sysAUR in AUR) that can install MBR's. However, this utility is only currently capable of writing new MBRs (all OS's and file systems supported) and boot sectors (a.k.a. boot record; equivalent to using FIXBOOT) for FAT file systems. Most LiveCDs do not have this utility by default, so it will need to be installed first, or you can look at a rescue CD that does have it, such as Parted Magic.

First, write the partition info (table) again by:

ms-sys --partition /dev/sda1

Next, write a Windows 2000/XP/2003 MBR:

ms-sys --mbr /dev/sda  # Read options for different versions

Then, write the new boot sector (boot record):

ms-sys -(1-6)          # Read options to discover the correct FAT record type

ms-sys can also write Windows 98, ME, Vista, and 7 MBRs as well, see ms-sys -h.

See also