linux操作系统内核启动参数详细解析
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。
如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。
Linux的内核参数是以空格分开的一个字符串列表,通常具有如下形式:
name[=value_1][,value_2]...[,value_10]
“name”是关键字,内核用它来识别应该把“关键字”后面的值传递给谁,也就是如何处理这个值,是传递给处理例程还是作为环境变量或者抛给“init”。值的个数限制为10,你可以通过再次使用该关键字使用超过10个的参数。
首先,内核检查关键字是不是 `root=‘‘,`nfsroot=‘‘,`nfsaddrs=‘‘, `ro‘‘, `rw‘‘,`debug‘‘或`init‘‘,然后内核在bootsetups数组里搜索于该关键字相关联的已注册的处理函数,如果找到相关的已注册的处理函数,则调用这些函数并把关键字后面的值作为参数传递给这些函数。比如你在启动时设置参数name=a,b,c,d,内核搜索bootsetups数组,如果发现“name”已注册,则调用“name”的设置函数如name_setup(),并把a,b,c,d传递给name_setup()执行。 所有型如“name=value”参数,如果没有被上面所述的设置函数接收,将被解释为系统启动后的环境变量,比如“TERM=vt100”就会被作为一个启动时参数。
所有没有被内核设置函数接收也没又被设置成环境变量的参数都将留给init进程处理,比如“single”。
【常用的设备无关启动时参数】。
- 1、init=...
/bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 kernel panic:的错误。
- 2、nfsaddrs=...
- 3、nfsroot=...
以上2、3在无盘站中很有用处。
- 4、no387
- 5、no-hlt
- 6、root=...
- 7、ro和rw
- 8、reserve=...
- 9、mem=...
- 10、panic=N
- 11、reboot=[warm|cold][,[bios|hard]]
- 12、nosmp 和 maxcpus=N
【内核开发和调试的启动时参数】
这些参数主要用在内核的开发和调试上,如果你不进行类似的工作,你可以简单的跳过本小节。
- 1、debug
- 2、profile=N
的知道内核在什么地方耗用了多少CPU的时钟周期,可以使用核心的分析函数设置变量prof_shift为非0值,有两种方式可以实现:一种是在编译时指定,另一种就是通过“profile=”来指定; 他给出了一个相当于最小单位--即时钟周期;系统在执行内核代码的时候,profile[address >;>; prof_shift]的值就会累加,你也可以从
/proc/profile得到关于它的一些信息。
- 3、swap=N1,N2,N3,N4,N5,N6,N7,N8
max_page_age, page_advance, page_decline, page_initial_age,
age_cluster_fract, age_cluster_min, pageout_weight,bufferout_weight。
- 4、buff=N1,N2,N3,N4,N5,N6
使用 RAMDISK的参数(仅当内核配置并编译了CONFIG_BLK_DEV_RAM)。一般的来说,使用ramdisk并不是一件好事,系统自己会更加有效的使用可用的内存;但是,在启动或者制作启动盘时,使用ramdisk可以很方便的装载软盘等设备上的映象(尤其是安装程序、启动过程中),因为在正真使用物理磁盘之前,必须要加载一些必要的模块,比如文件系统模块,scsi驱动等(可以参见我的initrd-x.x.x.img文件分析-制作安装程序不支持的根文件系统)。
早期的ramdisk(比如1.3.48的核心)是静态分配的,必须以ramdisk=N来指定ramdisk的大小;现在ramdisk可以动态增加。一共有四个参数,两个布尔型,两个整形。
- 1、load_ramdisk=N
- 2、prompt_ramdisk=N
- 3、ramdisk_size=N或者ramdisk=N
- 4、ramdisk_start=N
- 5、noinitrd
选项noinitrd告诉内核不执行上面的步骤,即使内核编译了initrd,而是把initrd的数据写到 /dev/initrd,只是这是一个一次性的设备。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。