2013-05-10 65 views
6

從過去的一週起,我對於grub第一階段只有446字節的引導加載程序如何能夠搜索第二階段以及第二階段是在複雜文件系統中的問題感到困惑!它如何找到第二階段?GRUB的stage 1引導加載程序如何加載stage 2引導加載程序?

當windows和linux的複雜分區方案就位,並且linux系統完全位於擴展分區時,階段1如何找到階段2?即使階段1.5?

所有的grub教程都瀏覽了這個重要的部分。我已經通過互聯網搜索,但找不到解釋這一點的任何內容。可悲的是,我不是程序員。

我想了解啓動過程中錯綜複雜的方面,在啓動過程中,硬盤的哪些扇區會發癢(以及大致如何)。 * 請給我一個很好的資源或在這裏回答。這將大大幫助我玩弄grub明智。 *

一些資源搜索:

  1. 如何Linux的工作原理:每個超級用戶應該由布賴恩·沃德
  2. 知道
  3. http://www.dedoimedo.com/computers/grub.html
  4. 過去的一些計算器的問題。

回答

3

階段1「知道」階段2在嵌入在其中的塊列表加載表中的條目處。它從引導驅動器加載塊列表,然後跳轉到16位實模式下的指定CS:IP。這些在嵌入式數據的頁面中進行了描述。它向BIOS查詢磁盤幾何,並將線性塊編號映射到INT 13h BIOS接口使用的C:H:S地址。

http://www.uruk.org/orig-grub/technical.html

而且大量的時間與新盤的對準,僅存在下1-2 MB的MBR和第一分區和階段2有時卡在那裏之間未分配空間。

+0

非常感謝!該文件是相當解釋,我得到了大局。由於第二階段是在文件系統上,所以文件系統不應該隨意移動第二階段(因爲地址是絕對的C:H:S,如果第二階段移動,系統會中斷,據我所知。與第8頁的磁盤訪問限制相混淆第二階段是否在這個限制之內?文檔確實提到了與之相關的東西,但我感到困惑 – codeman48 2013-05-14 07:43:13

+0

該文檔相當陳舊,2003年推出了48位地址模式到ATA規範(以及大多數的BIOS),允許bios訪問高達前2TB的驅動器,現在EFI系統有更大的方法來尋址塊驅動器(更不用說可以安裝filestytem EFI中的驅動程序,所以在某些情況下,階段2可以通過名稱加載,而當人們擁有512MB的限制時,他們可以通過保持單獨的/啓動分區來確保階段2低於BIOS分區,這完全低於BIOS規定的限制。 – WorBlux 2013-05-15 11:35:22