位置: 编程技术 - 正文

Linux操作系统内核启动参数详解(linux操作系统内核)

编辑:rootadmin

推荐整理分享Linux操作系统内核启动参数详解(linux操作系统内核),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux操作系统内核,linux操作系统内核由哪些功能组成,linux操作系统内核版本,linux操作系统内核,linux操作系统内核版本有什么特点,linux操作系统内容,linux操作系统内核,linux操作系统内核版本有什么特点,内容如对您有帮助,希望把文章链接给更多的朋友!

Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。

如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。

Linux的内核参数是以空格分开的一个字符串列表,通常具有如下形式: 复制代码代码如下:name[=value_1][,value_2]...[,value_]“name”是关键字,内核用它来识别应该把“关键字”后面的值传递给谁,也就是如何处理这个值,是传递给处理例程还是作为环境变量或者抛给“init”。值的个数限制为,你可以通过再次使用该关键字使用超过个的参数。

首先,内核检查关键字是不是 `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=vt”就会被作为一个启动时参数。

所有没有被内核设置函数接收也没又被设置成环境变量的参数都将留给init进程处理,比如“single”。

【常用的设备无关启动时参数】

1、init=...

设置内核执行的初始化进程名,如果该项没有设置,内核会按顺序尝试/etc/init,/bin/init,/sbin/init, /bin/sh,如果所有的都没找到,内核会抛出 kernel panic:的错误。

2、nfsaddrs=...

设置从网络启动时NFS的启动地址,已字符串的形式给出。

3、nfsroot=...

设置网络启动时的NFS根名字,如果该字符串不是以 "/"、","、"."开始,默认指向“/tftp-boot”。以上2、3在无盘站中很有用处。

4、no

该选项仅当定义了CONFIG_BUGi时才能用,某些i协处理器芯片使用位的保护模式时会有BUG,比如一些浮点运算,使用这个参数可以让内核忽略协处理器。

5、no-hlt

该选项仅当定义了CONFIG_BUGi时才能用,一些早期的iDX-芯片在处理“hlt”指令时会有问题,执行该指令后不能可靠的返回操作系统,使用该选项,可以让Linux系统在CPU空闲的时候不要挂起CPU。

6、root=...

该参数告诉内核启动时使用哪个设备作为根文件系统。比如可以指定根文件为hda8:root=/dev/hda8。

7、ro和rw

ro参数告诉内核以只读方式加载根文件系统,以便进行文件系统完整性检查,比如运行fsck;rw参数告诉内核以读写方式加载根文件系统,这是默认值。

8、reserve=...

保留端口号。格式:reserve=iobase,extent[,iobase,extent]...,用来保护一定区域的I/O端口不被设备驱动程序自动探测。在某些机器上,自动探测会失败,或者设备探测错误或者不想让内核初始化设备时会用到该参数;比如: reserve=0x,device=0x,除device=0x外所有设备驱动不探测 0x-0xf范围的I/O端口。

9、mem=...

限制内核使用的内存数量。早期BIOS设计为只能识别M以下的内存,如果你的内存数量大于M,你可以指明,如果你指明的数量超过了实际安装的内存数量,系统崩溃是迟早的事情。如:mem=0x意味着有M内存,如果是mem=0x,就是M内存了。注意:很多机型把部分内存作为BIOS的映射,所以你在指定内存大小的时候一定要预留空间。你也可以在 pentium或者更新的CPU上使用mem=nopentium关闭4M的页表,这要在内核配置时申明。

、panic=N

默认情况,内核崩溃--kernel panic 后会宕机而不会重启,你可以设置宕机多少秒之后重启机器;也可以在/proc/sys/kernel/panic文件里设置。

Linux操作系统内核启动参数详解(linux操作系统内核)

、reboot=[warm|cold][,[bios|hard]]

该选项仅当定义了CONFIG_BUGi时才能用。2.0.的内核重启默认为cool reboot,warm reboot 更快,使用"reboot=bios"可以继承bios的设置。

、nosmp 和 maxcpus=N

仅当定义了 __SMP__,该选项才可用。可以用来禁用多CPU或者指明最多支持的CPU个数。

【内核开发和调试的启动时参数】

这些参数主要用在内核的开发和调试上,如果你不进行类似的工作,你可以简单的跳过本小节。

1、debug

Linux的日志级别比较多(详细信息可以参看Linux/kernel.h),一般地,日志的守护进程klogd只把比DEBUG级别高的日志写进磁盘;如果使用该选项,klogd也把内核的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

设置内核缓冲内存管理的六个参数:max_buff_age, buff_advance,buff_decline,buff_initial_age, bufferout_weight, buffermem_grace。

使用 RAMDISK的参数(仅当内核配置并编译了CONFIG_BLK_DEV_RAM)。一般的来说,使用ramdisk并不是一件好事,系统自己会更加有效的使用可用的内存;但是,在启动或者制作启动盘时,使用ramdisk可以很方便的装载软盘等设备上的映象(尤其是安装程序、启动过程中),因为在正真使用物理磁盘之前,必须要加载一些必要的模块,比如文件系统模块,scsi驱动等。早期的ramdisk(比如1.3.的核心)是静态分配的,必须以ramdisk=N来指定ramdisk的大小;现在ramdisk可以动态增加。一共有四个参数,两个布尔型,两个整形。

1、load_ramdisk=N

如果N=1,就加载ramdisk;如果N=0,就不加载ramdisk;默认值为0。

2、prompt_ramdisk=N

N=1,提示插入软盘;N=0,不提示插入软盘;默认为1。

3、ramdisk_size=N或者ramdisk=N

设定ramdisk的最大值为N KB,默认为KB。

4、ramdisk_start=N

设置ramdisk的开始块号为N,当ramdisk有内核的映象文件是需要这个参数。

5、noinitrd

(仅当内核配置了选项CONFIG_BLK_DEV_RAM和CONFIG_BLK_DEV_INITRD)现在的内核都可以支持initrd了,引导进程首先装载内核和一个初始化的ramdisk,然后内核将initrd转换成普通的ramdisk,也就是读写模式的根文件系统设备。然后Linuxrc执行,然后装载真正的根文件系统,之后ramdisk被卸载,最后执行启动序列,比如/sbin/init。

选项noinitrd告诉内核不执行上面的步骤,即使内核编译了initrd,而是把initrd的数据写到 /dev/initrd,只是这是一个一次性的设备。

The End!

Linux中的proc目录详细介绍 1.什么是proc观察LINUXF8的/etc/rc.d/sysinit文件可以发现,在该脚本的行出现如下语句:复制代码代码如下:if[!-e/proc/mounts];thenmount-n-tproc/proc/procmount-n-tsysfs/sys

在Linux系统下用命令行工具管理虚拟机环境的方法 Linux系统的KVM管理在这篇文章里没有什么新的概念,我们只是用命令行工具重复之前所做过的事情,也没有什么前提条件,都是相同的过程,之前的文章

Linux系统下在命令行中压缩JPEG图像的方法 如今拍照设备(如智能手机、数码相机)拍出来的图片分辨率越来越大。甚至万像素的NikonD已经冲入市场,并且这个趋势根本停不下来。如今的拍

标签: linux操作系统内核

本文链接地址:https://www.jiuchutong.com/biancheng/366148.html 转载请保留说明!

上一篇:Linux中的LVM详解(linux lvm2_member)

下一篇:Linux中的proc目录详细介绍(/proc目录造成linux根目录爆满)

  • 未交增值税借贷方负数表示
  • 其他收益在报表哪个位置
  • 员工福利费可以公账出吗
  • 企业所得税税前扣除凭证管理办法
  • 税法关于开具发票的规定
  • 财产保全包括支付宝吗
  • 发票开错了收入增多了当月分录如何红冲?
  • 别人退保证金多久能到账
  • 工资分开发的奖金具体个税是多少?
  • 企业汇算清缴补税原因
  • 关联企业间无偿资金的占用属于借款费用吗
  • 进口一批原材料,海关核定的关税完税价格
  • 公司给离职员工个税零申报
  • 出租的固定资产计提折旧
  • 企业缴纳的社保怎么查询
  • 卷式增值税发票校验码怎么查
  • 没有座机怎么填固定电话
  • 劳务费增值税专用发票虚开一万元怎么补救
  • 税控盘怎么进行升级
  • 购买礼品赠送客户进项税处理
  • 审计调账后企业怎么处理
  • 租车开具的电子发票
  • 外资企业注销需要商务局备案吗
  • 资本公积的借方和贷方各表示什么
  • 拆迁的支出费用包括哪些
  • win10 kb5005611
  • 销售折让和折扣的风险点
  • 服务器时间总是不对
  • 企业发放职工薪酬属于资金的运用
  • 跨省经营建筑企业税收政策
  • 用盈余公积弥补以前年度亏损
  • 总分账与明细账关系
  • php如何调用接口
  • nginx配置tp5
  • 当月预交的增值税在申报期内可以填报进去抵扣
  • 其他应付款的项目
  • ChatGPT等大模型的模型量化:平滑量化法
  • 平价转让股权怎么交企业所得税
  • 公司财务变更需要变更哪些内容
  • 同城票据交换差额户金额从哪得来的
  • 家具入账固定资产怎么算
  • 富文本功能
  • vue实现注册
  • mongodb win7
  • 普通发票和增值税发票的税率
  • 银行存款产生的利息收入
  • 主营业务成本和营业成本的区别
  • 企业所得税季度申报表营业收入怎么填写
  • 企业汇总纳税的原则
  • 银行转账费用多少钱
  • 年应税销售额是指纳税人在连续不超过12个月或四个季度
  • 预收款开票的会计分录
  • 公司注销开户许可证是不是要上交
  • 偿债基金作用
  • 跨年度的银行未入账如何处理
  • 收据注明实际到账时间
  • 销售产品收到现款120元是什么制
  • 收购发票使用范围及预警怎么写
  • 普通发票怎么开?
  • 纳税筹划有哪些特点以及原则?
  • mysqldump备份数据库不完整
  • win9有吗
  • 微软为什么放弃win10
  • xp操作系统入门
  • windows xp桌面图标
  • win8系统开机启动项怎么设置
  • jusched.exe是什么进程
  • Win10 Mobile Build 14269版截图曝光:脱胎换骨 速度飙升
  • win10开启预览
  • opengl控件库
  • cocos2dx游戏开发
  • node web 框架
  • nodejs基础
  • unity3D游戏开发
  • jquery html函数
  • java 视频教程
  • 长春市税务局电话号
  • 建筑行业增值税11%
  • 税控盘开的电子票怎么发送给人
  • 增值税电子专用发票怎么作废
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设