Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 核心啟動參數 完整解析 (Kernel Boot Parameters)

編輯:Linux 教學

Linux 核心啟動時可接收命令列參數,用於指定硬體配置、覆蓋自動偵測、調試核心行為。本文系統整理參數格式、處理流程、常用裝置無關參數、核心開發調試參數、RAMDISK 參數,附 initrd 流程說明。

參數格式


name[=value_1][,value_2]...[,value_10]
  • name 為關鍵字,核心據此分派處理函數。
  • 值最多 10 個,超過可重複使用關鍵字。
  • 若無對應處理函數,name=value 視為環境變數傳給 init;純關鍵字 (如 single) 留給 init 處理。

核心參數處理流程

  1. 檢查是否為特殊關鍵字:root=, nfsroot=, nfsaddrs=, ro, rw, debug, init=。
  2. 在 bootsetups 陣列搜尋已註冊的處理函數,找到則呼叫 name_setup(values)。
  3. 未被處理函數接收的 name=value 設為環境變數。
  4. 剩餘參數傳遞給 init 進程 (PID 1)。

常用裝置無關參數

參數說明
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=NKernel 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

RAMDISK 參數 (需 CONFIG_BLK_DEV_RAM)

參數說明
load_ramdisk=N1=載入 ramdisk,0=不載入 (預設 0)
prompt_ramdisk=N1=提示插入軟碟,0=不提示 (預設 1)
ramdisk_size=N / ramdisk=N設定 ramdisk 最大容量 (KB),預設 4096
ramdisk_start=N設定 ramdisk 起始區塊號 (核心映像在 ramdisk 時需用)
noinitrd跳過 initrd 流程,將 initrd 資料寫入 /dev/initrd (一次性裝置)

initrd 流程補充

啟用 CONFIG_BLK_DEV_INITRD 時:

  1. 引導載入器載入核心 + initrd 映像
  2. 核心將 initrd 轉為可讀寫根檔案系統 (ramdisk)
  3. 執行 /linuxrc
  4. 掛載真正根檔案系統
  5. 卸載 ramdisk
  6. 執行 /sbin/init

noinitrd 會跳過上述步驟,保留 initrd 內容於 /dev/initrd 供手動處理。

Copyright © Windows教程網 All Rights Reserved