Linux中内核命令行的分析Kernelcommandline:root=/dev/nfsrwconsole=ttySAC2,115200nfsroot=192.168.2.101:/fisun/nfsrootip=192.168.2.70:192.168.2.101:192.168.2.1:255.255.255.1:fisun:eth0:offinit=/linuxrcnoinitrd为了使用无磁盘系统,例如:X-终端,打印服务,在无磁盘的设备中NFS是根文件系统所必备的。这可能是inirramfs、ramdisk或是一个在NFS服务上的一个挂载的文件系统。在文中出现的“client”表示无磁盘的系统,“server”表示NFS服务器。1.使能nfsroot为了使用nfsroot,在配置的创建期间NFS的客户端支持就得要选择上。一旦选择上了那么nfsroot选项将会被激活。在网络选项中,内核自动配置就会被选上,只是自动配置类型被支持了。之后可以选择DHCP,BOOTP和RARP。2.内核命令行Kernelcommandline当内核通过bootloader加载时,需要表明根文件系统在哪个设备上。在nfsroot的应用中,要指明要挂载的根文件系统在哪个服务器上的目录名字。可用下面的内核命令行参数指定:root=/dev/nfs(其实是告诉内核采用NFS的方式来挂载根文件系统)这表示必须要使能虚拟的NFS设备。需要注意这不是一个真实的设备,仅仅是告诉内核使用NFS,用/dev/nfs来代替真实的设备。nfsroot=[server-ip:]root-dir[,nfs-options]如果在命令行中没有给出“nfsroot”参数,将会使用默认的“/tftpboot/%s”。server-ip:NFS服务器的IP地址,默认的地址被“ip”参数所指定。root-dir:要挂载的根文件系统在服务器上的目录名称。如果在这个字符串中有一个“%s”,将会被客户端的IP地址以ASCII的表示法替代。nfs-options:标准的NFS选项。选项之间用逗号隔开。选项如下:port=服务器端口rsize=4096wsize=4096timeo=7retrans=3acregmin=3acregmax=60acdirmin=30acdirmax=60flags=hard,nointr,noposix,cto,acip=client-ip:server-ip:gw-ip:netmask:hostname:device:autoconf这个参数告诉内核怎样去设置设备的IP地址和IP路由表。这个参数以前叫做“nfsaddrs”,但是现在启动时的IP地址配置工作是由NFS独立做的,所以现在改称“ip”了,老名字现在被作为别名仍是兼容的。如果这个参数没有在内核命令行中给出,那么各个域的值假定为空并采用默认值来应用。在通常情况下内核会采用自动配置进行设置。autoconf参数的值可以单独出现在”ip”参数中(参数间用:隔开)。如果这个值是”ip=off”或“ip=none”,自动配置不会再设置此位,其他值会受自动配置改变。大多数共同的用法是设置成“ip=dhcp”。client-ip:客户端IP地址,即开发板或嵌入式设备的IP地址。默认使用自动配置。server-ip:NFS服务器端的IP地址。如果使用RARP确定客户端地址并且这个参数不为空,那么就只接受指定服务器的应答。NFS服务是根文件所必须的,如果server-ip没有被指定,NFS没有被启用那么自动配置不会被触发,NFS服务也不会运行了。gw-ip:如果不和服务器不在一个相同的子网内要设定一个网关IP地址。netmask:本地网络接口的网络掩码。hostname:客户端的名字。可能自动配置会提供,但是它没有也不会触发自动配置。默认是客户端的IP地址用ASCII符号表示的。device:要使用的网络设备的名字。如果主机只有一个网络设备,那么它将会被使用。其他设备被自动配置。发送自动配置请求并经此设备介绍第一个应答。autoconf:使用自动配置方法。在一个应用中可以指定多个自动配置协议。申请使用全部的协议,并且会使用第一个做出相应的协议。只有自动配置协议编译进内核才会被使用,不关心选项的值。Offornone:不使用自动配置。(使用静态IP代替)Onorany:使用在内核中已经激活的的协议dhcp:使用DHCPbootp:使用BOOTPrarp:使用RARPboth:使用BOOTP和RARP但不使用DHCP默认值是:anyconsole=ttySAC2,115200console=ttySACn,波特率init=[KNL]Format:full_pathRunspecifiedbinaryinsteadof/sbin/initasinitprocess.运行指定的二进制文件替代/sbin/init下的init进程。noinitrd[RAM]TellsthekernelnottoloadanyconfiguredinitialRAMdisk.告诉内核不加载任何配置来初始化RAMdisk。rw[KNL]Mountrootdeviceread-writeonboot在启动时以读写方式挂载rootinitrd=[BOOT]指定本地初始的ramdisk内核参数的详细描述文档在内核源码的目录:linux/Documentation/kernel-parameters.txt声明:此文档仅供学习参考之用,其中难免有错,希望能和广大的linux爱好者一起交流学习。Buzaiyouyu001