2009-07-14 92 views
10

我正在浏览linux启动过程的细节。据了解,主引导加载程序驻留在512字节的映像(程序代码+分区表)中。 510字节包含可执行代码,错误消息和分区表信息。最后2个字节包含一个幻数0xAA55。有人提到“魔术数字作为MBR的验证检查”。现在什么是验证检查?我的猜测是像CRC这样的检查,以确保MBR没有损坏。Magic Number在Linux中的启动加载中扮演什么角色?

我在网上搜索,没有神奇数字及其工作的解释。但有趣的是,即使微软操作系统的启动加载器也有神奇的数字。有人可以在这方面启发我们吗??????????????

+0

这属于对serverfault或超级 – hayalci 2009-07-14 23:34:19

回答

14

您好我希望这将帮助你:

http://en.wikibooks.org/wiki/X86_Assembly/Bootloaders

http://en.wikipedia.org/wiki/Extended_boot_record

“的0xAA55将签名是你的 的第一个扇区的最后两个字节bootdisk(启动扇区/主引导记录/ MBR)。如果它是0xAA55,则 BIOS将尝试启动系统。 如果没有找到(它是乱码或0x0000),您将从BIOS中得到一条错误消息 ,它没有找到可引导磁盘(或者系统 尝试引导下一个磁盘)。 此签名以二进制表示为0b1010101001010101。 交替位模式被认为是对某些 故障(驱动器或控制器)的保护。

当然,这是一个i386ism(我相信也出现在amd64上)。其他架构的很多 可以采取不同的方法。”

http://www.mail-archive.com/[email protected]/msg18029.html

0

的快速搜索变成了这样:http://en.wikipedia.org/wiki/Master_boot_record

好像它只是一个神奇的数字来标记MBR

+1

的MBR正是长512个字节。别人为什么要纪念它的结束吗?不,一个神奇的数字是一个指标,允许操作系统,例如,告诉是否有可能有一个MS-DOS分区表。 – Sven 2014-05-02 21:59:27

8

不校验结束,但更多的签名。它确实提供了一些简单的证据表明一些 MBR存在。

0xAA55将也是交替位模式:1010101001010101

它通常用来帮助确定,如果你是一个小端或大端系统上,因为这将用作AA55或55AA阅读。我怀疑这是为什么它被放在MBR的末尾。

参见本Wikipedia article

相关问题