位置:海鸟网 > IT > linux/Unix >

Linux内核引导参数简介 3:内核引导参数精选

  由于引导参数多如牛毛,本文不可能涉及全部,因此下面只列出精选出来的一些(基于 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 内存的用户来说,则无需关心这个问题。