Boot-Loader

引導載入程序的定義

  • October 20, 2015

如何定義我的電腦上的引導載入程序是主要的,什麼是次要的?也許是一些命令?系統有帶有 BIOS 的 ROM。我知道我可以去文件夾 /boot/ 看看我的系統正在使用什麼樣的載入程序,但是如果沒有輔助引導載入程序我該怎麼辦?我的問題的目標是如何在我的電腦(主要或次要)上定義引導載入程序?

在電腦上引導完整作業系統的機制很複雜,在(因原產地而癱瘓的)PC 上更是如此。以下是經典PC的粗略輪廓,即​​在整個UEFI廢話之前)。

開機時,BIOS 啟動並進行一些“自我檢查”,探測一些硬體,然後繼續將引導驅動器中的一個扇區載入到記憶體的固定部分。這是主引導記錄 (MBR)。

引導扇區反過來使用 BIOS 呼叫將更大量的引導載入程序載入到記憶體中,主要來自磁碟上的固定位置(沒有可用的實際文件系統,可用空間非常少)。

這反過來又直接載入核心(例如 lilo,使用一組預設的磁碟地址)或更重要的載入程序,它理解文件系統(如 grub2)。這些可能會提供某種形式的菜單來選擇下一步要開始的內容。

載入的核心啟動。它解壓縮自己和其他有效負載(initrd),並初始化它自己的系統視圖(抄錄一些由 BIOS 或程序早期階段留下的數據)。

核心呼叫init,進而啟動使用者空間程序以使系統啟動並執行。在此過程中,它從 RAM 中的根切換到真實文件系統。

其他機器會有很大差異,即使對於同一台機器,您也可以使用完全不同的引導鏈。即,對於 PC 上的 Linux,使用 lilo、isolinux、grub,…過去核心甚至可以復製到磁片的開頭並直接啟動(自己完成整個 MBR 舞蹈),但這是一部分幾乎被遺忘的過去。

引用自:https://unix.stackexchange.com/questions/237369