我正在編寫一個 BASH 腳本,可以自動配置、建置和安裝最新的核心映像。生成的內核應包含網路安全補丁集。它將使用先前的配置/proc/config.gz
,該配置是我在電腦上編譯第一個自訂核心時手動建立的。
完全自動化流程是否安全?它看起來像這樣:
grsecurity
檢查可用的最新內核- 下載
grsecurity
補丁集和匹配的核心原始碼樹 - 給內核打補丁
- 將先前的核心設定檔複製到核心原始碼目錄中
- 運行
make olddefconfig
根據先前的配置來配置內核 - 編譯內核
fakeroot make deb-pkg
- 安裝生成的軟體包並更改引導程式優先權
- 給我發郵件表明需要重新啟動
主要問題:如果先前的配置運作正常,那麼編譯的核心是否可能olddefconfig
包含導致系統無法啟動的錯誤?這非常重要,因為它是透過 SSH 存取的遠端伺服器,手動救援需要花費大量精力。
答案1
如果你無法承受失敗,那就進行測試。
即使你可以承受失敗,測試也是好的。如果可能的話,在專用測試環境中執行建置。在許多情況下,虛擬訪客可以構成足夠的測試系統。當您重新啟動到更新的核心並且任何後續測試也成功完成時,才將新軟體包複製並部署到遠端系統。
現在回答您的主要問題:您的計劃是否make olddefconfig
包含會導致啟動失敗的錯誤?
只有白痴才會相信任何系統都是完全萬無一失的。當你想運行最近的內核,正如您所說,您將處於最前沿,並擁有與之相關的所有優勢和風險。降低風險是選擇一個長期版本,其中功能集被凍結,並且僅引入錯誤/安全修復。
無論如何:任何重新啟動都有很小的失敗風險。
附註:過去我在資料中心花了太多時間來修復伺服器中的問題/配置錯誤,因此我建議大家始終添加合適的遠端管理選項(例如 HP ILO、Dell 的 DRAC、Oracle 的 ILOM 等或 KVM)透過IP 網關)連接到遠端伺服器,讓您可以在舒適的辦公桌上解決大多數問題。