Linux 核心啟動時可接收命令列參數,用於指定硬體配置、覆蓋自動偵測、調試核心行為。本文系統整理參數格式、處理流程、常用裝置無關參數、核心開發調試參數、RAMDISK 參數,附 initrd 流程說明。
name[=value_1][,value_2]...[,value_10]
name 為關鍵字,核心據此分派處理函數。name=value 視為環境變數傳給 init;純關鍵字 (如 single) 留給 init 處理。root=, nfsroot=, nfsaddrs=, ro, rw, debug, init=。bootsetups 陣列搜尋已註冊的處理函數,找到則呼叫 name_setup(values)。name=value 設為環境變數。| 參數 | 說明 |
|---|---|
init=/path/to/init | 指定 init 程式路徑,依序嘗試 /etc/init, /bin/init, /sbin/init, /bin/sh |
nfsaddrs=... | 無盤啟動時 NFS 網路位址字串 |
nfsroot=... | 無盤啟動時 NFS 根目錄路徑,不以 / , . 開頭預設指向 /tftp-boot |
no387 | 忽略 387 協處理器 (需 CONFIG_BUGi386),修正某些浮點 Bug |
no-hlt | 禁止 CPU 空閒時執行 HLT 指令 (早期 i486DX-100 Bug) |
root=/dev/xxx | 指定根檔案系統裝置,如 root=/dev/hda8 |
ro / rw | 以唯讀/讀寫掛載根檔案系統,ro 供 fsck 檢查,rw 為預設 |
reserve=iobase,extent[,...] | 保留 I/O 埠範圍防止驅動自動探測,如 reserve=0x300,32 |
mem=XXX | 限制核心使用記憶體量,十六進位:mem=0x1000000 (16MB),mem=0x6000000 (96MB)。超過實體記憶體會崩潰 |
panic=N | Kernel panic 後 N 秒自動重啟,0 為不重啟 (預設)。可寫入 /proc/sys/kernel/panic |
reboot=[warm|cold][,[bios|hard]] | 重啟模式選擇 (需 CONFIG_BUGi386) |
nosmp / maxcpus=N | 禁用 SMP / 限制最大 CPU 核心數 (需 __SMP__) |
| 參數 | 說明 |
|---|---|
debug | 啟用核心 DEBUG 級別日誌,klogd 會寫入磁碟 |
profile=N | 啟用核心效能分析,設定 prof_shift,可從 /proc/profile 讀取計數器 |
swap=N1,N2,...,N8 | 設定交換演算法 8 參數:max_page_age, page_advance, page_decline, page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight, bufferout_weight |
buff=N1,...,N6 | 設定緩衝記憶體管理 6 參數:max_buff_age, buff_advance, buff_decline, buff_initial_age, bufferout_weight, buffermem_grace |
| 參數 | 說明 |
|---|---|
load_ramdisk=N | 1=載入 ramdisk,0=不載入 (預設 0) |
prompt_ramdisk=N | 1=提示插入軟碟,0=不提示 (預設 1) |
ramdisk_size=N / ramdisk=N | 設定 ramdisk 最大容量 (KB),預設 4096 |
ramdisk_start=N | 設定 ramdisk 起始區塊號 (核心映像在 ramdisk 時需用) |
noinitrd | 跳過 initrd 流程,將 initrd 資料寫入 /dev/initrd (一次性裝置) |
啟用 CONFIG_BLK_DEV_INITRD 時:
/linuxrc/sbin/initnoinitrd 會跳過上述步驟,保留 initrd 內容於 /dev/initrd 供手動處理。