5.5. Init:進行系統控制權轉移

一但 kernel 完成載入後,kernel 就將控制權交給使用者層的命令 init,通常放置在 /sbin/init, 或是 loader 的環境變數 init_path 所指定的位置。

5.5.1. 自動 reboot 啟動程序

這個程序將會確定系統將要使用的檔案系統是存在的,如果不存在, 那麼 fsck 就不能正常的被執行去修復磁碟機, 接著 init 將把系統切換成 單人模式, 系統管理者就可以在這時候直接處理這錯誤。

5.5.2. 單人模式

要進入這個模式可以經由 自動 reboot 啟動程序 ,或是在開機階段設置 -s 參數,或者設定 boot_single 的變數給 loader

或在 多人模式 之下,執行 shutdown, 不加 reboot (-r) 或 halt (-h) 參數,也可以進入 單人模式

如果系統主控台 console/etc/ttys 之中是設定成 insecure 的, 那麼在進入 單人模式 時,系統就會要求輸入 root 的密碼。

Example 5-3. 在 /etc/ttys 中設定一個 console 為 insecure

    # name  getty                           type    status          comments
    #
    # This entry needed for asking password when init goes to single-user mode
    # If you want to be asked for password, change "secure" to "insecure" here
    console none                            unknown off insecure

Note: 一個 insecure 的 console 代表你認定你的 console 的安全等級是 insecure 的, 並且想確定有人想進入單人模式時都要輸入 root 的密碼才行,請注意,insecure 不代表你的 console 是 inscure 的, 而是,如果你要多一點的安全防護,請選擇 insecure,而不是 secure

5.5.3. 多人模式

如果 init 無誤地找到了你的檔案系統, 或結束了 單人模式, 系統就會進入多人模式,並開始系統的資源配置。

5.5.3.1. 系統資源配置 (rc)

開始系統資源配置時,系統將先執行預設的配置檔 /etc/defaults/rc.conf, 和系統的詳細配置 /etc/rc.conf,接著依照 /etc/fstab 來掛載檔案系統, 再啟動網路服務,和其他的系統監控程式 (daemon),最後,執行部份程式的起始 script 檔。

rc(8) 是個參考資源設定系統的好地方,同理,直接查閱 那些 scripts 也是個好方法。