loader 是三個步驟的最後一個,loader 必須放在檔案系統裡, 通常是在 /boot/loader。
Note: 雖然 /boot/boot0、 /boot/boot1、和 /boot/boot2 的確存在,但是他們並不是在 MBR、開機磁軌和 disklabel 中的正本。
Loader 提供了一個容易的設定方法,並使用簡易的內建命令, loader 的背後是由一個強大的命令解譯程式 (使用較複雜的命令集) 組成的。
在初始化的過程中,loader 會偵測終端機和磁碟機, 並開始設置所要開啟的磁碟,設定變數對應, 接著命令解譯程式啟動,開始解譯 loader 所傳遞的命令。
loader will then read /boot/loader.rc, which by default reads in /boot/defaults/loader.conf which sets reasonable defaults for variables and reads /boot/loader.conf for local changes to those variables. loader.rc then acts on these variables, loading whichever modules and kernel are selected.
最後,loader 預設花 10 秒等待任何按鍵的輸入,如果沒有, 就開始載入 kernel。如果有, 就啟動一個提示符號讓使用者輸入那些易懂的命令,藉此可以調整變數, 載入/卸載 module,最後決定要開機還是重開機。
較深入的技術探討可以在 loader(8) 找到。
這些命令集包括了:
如果在所給的秒數之間沒被按鍵中斷的話就接著載入 kernel, 這將會由所給的秒數開始倒數,預設的秒數為 10 秒。
直接配合所給的參數載入核心。
在要開機時,使用自動的變數配置模組, 這只在你先用 unload 時才有意義,並改變一些變數, 通常是 kernel。
顯示來自 /boot/loader.help 的求助訊息, 如果所給的主題 (topic) 是 index, 那就顯示所有的主題列表。
執行所給的檔案,這檔案將被讀入並一行一行地被執行, 一但有錯誤發生就直接停止這個 inlucde 命令。
載入 kernel,kernel 模組或所先指定檔案類型,再接著檔名, 任何接在檔案之後的參數都將會傳給此檔來執行。
列出在路徑中的檔案,如果沒有指定路徑將顯示根目錄的檔案列表 如果有附加 -l 參數,那麼將一起顯示檔案容量。
列出所有可以載入 module 的裝置,如果有指定 -v 參數, 那麼更詳細的資訊會一起列出。
顯示已被載入的 module,如果有指定 -v 參數,那麼更詳細的資訊會一起列出。
顯示所指定的檔案內容,並在每 LINES (環境變數) 暫停。
直接重開機。
設定 loader 的環境變數。
卸載所有被載入的 module。
底下是一些實際的 loader 使用範例。
單純的載入 kernel,不過將進入單人模式:
boot -s
卸載通常要載入的 kernel 和 module,接著載入另一個 kernel:
unload load kernel.old
你可以使用 kernel.GENERIC, 這是安裝光碟上的通用 kernel,或是 kernel.old, 這是你上一個安裝的 kernel (如果你有升級或重新配置你自己的 kernel 的話)。
Note: 照著下列的步驟可以配合原先的 module 來載入其他的 kernel:
unload set kernel="kernel.old" boot-conf
載入核心配置的 script 檔 (這是一個自動的 script 檔案, 用來執行你在 kernel 開機階段所要執行的命令):
load -t userconfig_script /boot/kernel.conf