2009-07-14 73 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

相關問題