由于引导参数多如牛毛,本文不可能涉及全部,因此下面只列出精选出来的一些(基于 2.6.22 内核),与设备有关的基本上都被忽略了。
标记说明
并不是所有的参数都是永远可用的,只有在特定的模块存在并且相应的硬件也存在的情况下才可用。引导参数上面的方括号说明了其依赖关系,其中使用的标记解释如下:
ACPI 高级配置与电源接口
APIC 高级可编程中断控制器
HW 相应的硬件设备存在
IA-32 IA-32(i386)体系结构
X86-64 X86-64体系结构,更多参数在 Documentation/x86_64/boot-options.txt 中描述
IOSCHED 启用了多个IO调度器
LIBATA 启用了Libata驱动
LOOP 启用了Loopback设备
NET 启用了网络支持
PCI PCI总线支持
PNP 即插即用支持
PS2 PS/2支持
SCSI 许多SCSI设备的参数在 Documentation/scsi/ 中描述
SMP 对称多处理器
USB USB支持
USBHID USB人机界面设备
VT 虚拟终端(Virtual terminal)
此外,下面的标记的含义与在逻辑上与上面的有所不同:
BUGS=用于在特定的体系结构上解决某些CPU的bug
KNL 是一个内核启动参数
BOOT是一个引导程序参数
标记为"BOOT"的参数实际上由引导程序使用,对内核本身没有直接的意义。没有特别的需求,请不要修改此类参数的语法,更多信息请阅读 Documentation/i386/boot.txt 文档。
控制台
这些参数控制着控制台或内核日志,在何处显示内核调试信息和错误信息。
[KNL]
console=tty
设置输出控制台使用第N号虚拟控制台。
[IA-32,X86-64]
earlyprintk=vga
在传统的控制台初始化之前,在VGA上显示内核日志信息。如果不使用此参数那么这些信息你可用永远没机会看见。
loglevel={0|1|2|3|4|5|6|7}
所有小于该数字的内核信息都将在控制台上显示出来。这个级别可以使用 klogd 程序或者修改 /proc/sys/kernel/printk 文件进行调整。取值范围是"0"(不显示任何信息)到"7"(显示所有级别的信息)。建议至少设为"4"。[提示]级别"7"要求编译时加入了调试支持。
[KNL]
initcall_debug
跟踪所有内核初始化过程中调用的函数。有助于诊断内核在启动过程中死在了那个函数上面。
中断
这些参数影响内核与处理中断的硬件之间的接口。常见的中断控制器有两种:传统的8259A和新式的APIC,前者也被称为"PIC"。8259A只适合单CPU的场合,而APIC则能够把中断传递给系统中的每个CPU,从而充分挖掘SMP体系结构的并行性。所以8259A已经被淘汰了。
APIC系统由3部分组成:APIC总线、IO-APIC、本地APIC。
每个CPU中集成了一个本地APIC,负责传递中断信号到处理器。而IO-APIC是系统芯片组中一部分,负责收集来自I/O设备的中断信号并发送到本地APIC。APIC总线则是连接IO-APIC和各个本地APIC的桥梁。
[APIC,i386]
apic={quiet|verbose|debug}
在初始化 APIC 和 IO-APIC 组件的时候,显示调试信息的详细程度。默认是"quiet"。
[SMP,APIC]
noapic
强制内核禁止使用IO-APIC(输入输出高级可编程输入控制器)
[IA-32,APIC]
lapic
强制内核启用 local APIC ,即使 BIOS 已经禁用了。
[IA-32,APIC]
nolapic
强制内核禁用 local APIC ,即使 BIOS 已经启用了。
[IA-32,SMP,KNL]
noirqbalance
禁止使用内核中的中断平衡逻辑
[HW]
irqfixup
用于修复基本的中断问题:当一个中断没有被处理时搜索所有可用的中断处理器。用于解决某些firmware缺陷。
[HW]
irqpoll
用于修复更进一步的中断问题:当一个中断没有被处理时搜索所有可用的中断处理器,并且对每个时钟中断都进行搜索。用于解决某些严重的firmware缺陷。
[IA-32]
noirqdebug
默认情况下,内核将探测并且禁止未处理的中断源,以免引起内核其他部分的响应问题,这个选项禁止该功能。
内存
[KNL,BOOT]
highmem=nn[KMG]
强制指定highmem区域的大小,甚至在默认没有highmem的机器上也能工作。这个选项还可以用来在大内存的机器上强制减少highmem区域的大小。内核使用低于896M的"直接映射物理内存"很方便,但使用大于896M的部分(highmem)却比较麻烦,所以系统在给用户进程分配内存时会优先使用highmem。对于小于等于 1G 内存的用户来说,则无需关心这个问题。