FreeBSD簡單說明編譯核心

Hachibye
May 10, 2021

不知道是不是BSD系統比較古老
總覺得相關的文章好少(但它很安全很穩健!)

今天要來筆記一下自訂核心,也就是kernel的過程
由於參數設定過多,有興趣的話請再一條一條自行鑽研(?)

【前置作業】

  1. 要有安裝「kernel-dbg」才行
  2. 搞清楚自己的系統
    是amd64(64位元)還是i386(32位元)
    建立虛擬機的時候也要你選擇過

不知道的話也沒關係
上面第一張圖在登入的時候就會有提示
第二張圖是輸入以下指令來查看

uname -mrs

接下來就要正式的開始自訂核心囉
雖然自訂核心這件事就是圍繞著參數的調整
不過這裡就不一條一條說明參數了,請自行按照需求配置

增加:直接增加
減少:在最前面輸入「#」註釋掉
保存退出:esc > :wq
不保存強制退出:esc > :q!

重頭戲,自訂核心的完整步驟:

/* 進入內核文件的存放位置 */
cd /usr/src/sys/amd64/conf
/* 複製原有的 GENERIC 內容給新的 zero */
cp GENERIC zero
/* 編譯新的內核文件 zero */
vi zero
/* 進入 /usr/src 目錄 */
cd /usr/src

/* 編譯內核,KERNCONF 指定配置文件 */
make buildkernel KERNCONF=zero

/* 備份舊的內核到 GENERIC 目錄 */
mv /boot/kernel /boot/GENERIC

/* 安裝新的內核,KERNCONF 指定配置文件 */
make installkernel KERNCONF=zero

/* 重啟系統 */
reboot

下面是過程的截圖:

buildkernel跑完後(需要跑一段時間)
installkernel跑完後(不用跑太久時間)

以上,大功告成~
同時也提供幾個方始來確認是否替換核心成功

第一種:比較新舊文件夾的不同(結果會有很多)

diff -ub /boot/kernel/ /boot/GENERIC/

第二種:查看完整核心參數
P.s:按下Scroll Lock按鈕之後,再按上下箭頭就能翻頁了

sysctl -a | more

第三種:查看核心版本(最簡單的放最後面XD)

sysctl kern.version

最後也提醒幾個除錯步驟:
1. 注意自己所在的位置是不是在/usr/src
2. 注意命令有沒有打錯,例如是「buildkernel」不是「build kernel」
3. 請耐心等候(?)

大概就是這樣
詳細的參數配置可參考中文官方文件
https://www.twbsd.org/cht/book/ch08.htm

--

--

Hachibye

字幕組退休勞工 ... 系統/雲端/資安肝苦人