引导扇区和多个驱动器如何工作?


17

我不完全了解引导扇区的概念,我希望有人可以帮我解决这个问题。

如果您有两个硬盘驱动器,每个硬盘驱动器都安装了操作系统,那么每个驱动器是否都有自己的引导扇区?每个驱动器都需要一个MBR分区吗?

我在两个单独的驱动器上安装了Linux和Windows。安装Linux和grub时遇到了问题,现在我终于决定使用Windows引导加载程序进行启动。当我使用/ fixmbr时,Windows会摆脱grub还是将其保留在其他驱动器的引导扇区上?

Answers:


17

威尔的答案含糊其辞是正确的,但在技术上并不准确。是的,驱动器不需要MBR。没有一个,您将无法从该驱动器启动,也将无法在该驱动器上创建分区。但...

术语主引导记录通常用来指两件事情-它是正确的只有第一,和通常误到第二:

  1. 一个位置,特别是分区数据存储设备的第一个512字节扇区(“ LBA扇区0”)。此位置保存引导加载程序代码(第一阶段引导加载程序)和主分区表的前440个字节。有关典型MBR结构的详细信息,请参见Wikipedia的MBR文章

  2. 引导加载程序代码存储在该位置。在BIOS系统中,这是BIOS从驱动器引导时执行的第一个代码。请参阅MBR和系统引导以及第一阶段引导加载程序:在i386系统上,此代码链加载第二阶段引导加载程序,该第二阶段引导加载程序存储在活动分区的卷引导记录中,用于实际引导操作系统。

卷引导记录分区引导扇区是分区的第一扇区并且是安装到该分区上的操作系统将存储其主引导程序代码。VBR也可用于非分区数据存储设备(软盘,USB闪存驱动器,甚至用于非分区角色的硬盘驱动器)。

多启动系统使用启动管理器(例如,Grub)。引导管理器将其自身的引导加载程序代码放入MBR中,并提供一个菜单,用户可以从中选择要引导的操作系统。(从技术上讲,用户正在选择要使用的第二阶段引导加载程序。)


因此,直接回答您的问题:

  • 两个各自装有操作系统的硬盘驱动器将各自具有自己的MBR

    • 两个MBR将包含至少一个分区。
    • 这些硬盘驱动器上的每个分区都有自己的VBR。包含操作系统安装的分区会将其第二阶段引导加载程序存储在这些VBR中。任何仅数据分区都将(可能)在其VBR中没有有效的启动代码。
    • 如果此系统引导,则这些MBR 中的至少一个将包含有效的第一阶段引导加载程序,但仅对于BIOS尝试从中引导的驱动器才需要。

  • 将Linux安装到第二个驱动器时,它可能会将Grub的第一阶段引导加载程序写入Windows驱动器的MBR。它可能写了第一阶段的引导加载到自己的硬盘的MBR,但如果BIOS从来没有从Linux驱动尝试开机,你永远不会另行通知。同样,当您使用/ fixmbr时,Windows会在其系统驱动器的MBR上重写第一阶段引导加载程序。

    • 老实说,我不知道Win-7的Bootrec.exe实用程序是否还会写入其他驱动器的MBR。它可能具有执行此操作的功能,但可能不是默认操作。
    • 我也不知道Ubuntu 9.04的安装程序是否默认将Grub安装到两个驱动器的MBR上。如果需要,可以手动进行。在某些情况下,这将是一件好事-如果您要断开Windows驱动器的连接并尝试从Linux驱动器引导,那么如果不存在Grub的第一阶段引导代码,就不会引导。

感谢您提供非常详细的答案:-)...我一直想知道为什么MBR被用于两种不同的含义,现在我知道了哈哈
GiH 2010年

1
@GiH,不客气。感谢您提出这个问题;它可以作为MBR和引导加载程序的基本介绍,以供将来的读者使用。
quack quixote 2010年

您是否有“主引导记录”一词经常用于指两件事的信息来源-它仅是第一件事,通常误用于第二件事:“我确定它是正确的,并且我已经阅读过某处..但有趣的是,如果您有相关资源。另外,由于这是引导加载程序的术语,因此MBR的非引导加载程序部分是否有术语?在GPT方面,GPT是否包括引导加载程序和分区表,GPT和分区表之间有什么区别?
barlop

3

驱动器不需要MBR,但是如果没有MBR,您将无法从该驱动器启动。

对于初学者,计算机将引导至BIOS告知的任何磁盘。那是唯一需要 MBR的磁盘(这是在基于BIOS的计算机上,例如,市场上的大多数磁盘,而不是EFI)。

拥有MBR基本上会告诉计算机该驱动器是可引导的(并且不会返回可怕的“无磁盘或磁盘错误”或类似消息),然后将加载引导加载程序。

加载引导加载程序后,它将基本上按照指示进行操作,这可以是加载其他引导加载程序(例如,Grub加载Windows引导加载程序)或操作系统-例如,您可以选择驱动器/分区。

因此,您只需要在实际的启动驱动器上安装MBR(和Bootloader)。


好的,但是自从我之前使用grub以来,我的两个驱动器都可能具有MBR吗?基本上,我想弄清楚的是我的Linux驱动器是否由于不使用grub而浪费MBR上的空间,或者当我安装Windows引导加载程序时,它是否摆脱了grub和MBR?抱歉,如果我的问题令人困惑...
GiH 2010年

1
您只能拥有一个MBR,因为它不是一个文件,而是一个位置-如果您在其他驱动器上安装了其他操作系统,则可能仍将其安装在另一个驱动器上,但是它很小,我真的不会担心(如果要在数十亿字节的驱动器上谈论数百字节(我认为最大约为500)!)。但是,可能仍然有grub文件-但同样,它很小。
William Hilsum'2

3
@ GiH,re:浪费空间-不,MBR还提供了驱动器的分区表,因此无论是否包含有效的引导记录,该空间都被保留(操作系统未使用)。您可以将其视为文件系统的少量开销;与现代硬盘驱动器容量相比,“浪费”空间的数量太少而不必担心。
quack quixote 2010年

1

MBR(主引导记录)是可以在其上进行写入的第一个扇区。它具有固定的位置和大小(非常小),因此每个磁盘只能有一个MBR。

在加载BIOS之后,MBR是启动顺序中第一个读取的扇区。它可以用于引导一个操作系统或加载grub或lilo之类的引导加载程序,以选择要加载的系统。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.