mbr如何在操作系统之间变化?

How does the mbr change between operating system?

Master Boot Record (MBR) 有何变化?我不知道是否有特定于基于 Linux 的操作系统的 MBR,或者每个操作系统是否有不同的 MBR?如何比较操作系统的 MBR?如果我用 C 为 Ubuntu 编写一个,它是否也适用于其他发行版?

我想知道 MBR 是否总是跨平台的,这意味着它可以在类 Unix 系统和 Windows 上运行。如果不是,我想知道 Windows 的 MBR 和 Unix

MBR 之间有什么区别

在“唯心论”中;对于双引导方案,MBR 包含一个“引导管理器”,它可以确定哪些分区是可引导的,选择一个(可能通过为用户提供一个菜单来选择),然后加载所选分区的第一个扇区(所选操作系统的引导扇区)并将控制权交给它。在这种情况下,MBR(以及磁盘第一轨道中的其他相关代码)由不属于任何 OS 的 third-party 实用程序拥有;并且任何 OS 都不应该被允许 touch/modify MBR(或第一个分区开始之前的任何其他数据)。

但是;实际上,人们通常只安装一个 OS,为了方便 OS 安装程序会提供自己的 MBR(这样人们就不必担心安装 third-party 实用程序);几乎每个 OS 都有 nasty/egotistical“我们只关心自己 and/or 想要控制任何其他 OS 你安装的”倾向。这导致操作系统无视常识并互相攻击 and/or 为 dual-boot 场景提供自己的“anti-competitive”替代方案(GRUB,[=42= 上的“boot.ini” ]).

当 manufacturers/firmware 开始关注安全性时,这种令人讨厌的废话变得更加糟糕(对用户而言)。该计划是对引导期间使用的所有代码(包括固件、MBR 和操作系统的引导加载程序)进行“测量”(使用 TPM 芯片内置的花式 cypto 进行校验和),以便 OS(和其他软件 -例如“远程证明”)可以检测恶意软件是否篡改了操作系统所依赖的任何代码(因为“花哨的校验和”会有所不同)。这意味着,如果您安装第二个 OS(corrupting/modifying 现有 OS 的 MBR),您会更改该“奇特的校验和”并破坏原始操作系统的身份,因此在您修复损坏并让原始 OS 重新启动各种其他东西(取决于“francy 校验和”)仍然损坏。

还好; UEFI 主要通过承担“引导管理器”的角色(并完全弃用 MBR)来修复此问题,其中(如果安装了多个操作系统)固件使用“UEFI 变量”来确定引导哪个操作系统,并且每个操作系统都可以UEFI系统分区有自己不同的boot loader,不会冲突。可悲的是,nasty/egotistical“我们只关心自己并希望掌控一切”的倾向依然存在,操作系统正试图寻找替代方法来破坏一切(SecureBoot 密钥管理,使用 GRUB 作为垫片,以便不同的操作系统可以争夺 GRUB 配置的控制权等)。

How does the Master Boot Record (MBR) change?

除非您安装 OS,否则 MBR 不会改变。当您安装 OS 时,MBR 可能会或可能不会更改,具体取决于 OS 安装程序和(在某些情况下)您告诉 OS 安装程序执行的操作。

I can not figure out if there is an MBR specific to Linux-based operating systems, or does each operating system have a different MBR?

Linux(内核)定义了“Linux 引导协议”,它允许任何人编写兼容的引导加载程序。用于从 BIOS 启动;有 3 个常见的引导装载程序(LILO、GRUB 和 SYSLINUX);但是大多数 Linux-based 操作系统都倾向于使用 GRUB,而大多数 Linux-based 操作系统的 OS 安装程序倾向于将 GRUB 作为“引导管理器加引导加载程序”安装在 MBR 中。

I want to know if an MBR is always cross-platform, means that it will work on both Unix-like systems and Windows for example. And If not, I want to know what's the difference between an MBR for Windows and MBR for Unix.

遗憾的是,不 - MBR 应该是“OS neutral/cross-platform”(在某些情况下可以 - 例如,如果用户不介意在自己的分区中安装 LILO 或 GRUB,并且如果 OS 安装程序支持)但大多数情况下不支持。如果您想编写自己的 MBR,那么您可能需要处理特定操作系统无法与其他操作系统合作的问题。