位置: 编程技术 - 正文

linux启动时挂载rootfs(linux挂起)

编辑:rootadmin

推荐整理分享linux启动时挂载rootfs(linux挂起),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux挂载点选哪个,linux挂载重启后失效,linux自启动挂载磁盘,linux挂载点选哪个,linux自启动挂载磁盘,linux 开机 挂载,linux 开机 挂载,linux 开机 挂载,内容如对您有帮助,希望把文章链接给更多的朋友!

1。linux启动时,经过一系列初始化之后,需要mount 根文件系统,为最后运行init进程等做准备,mount 根文件系统有这么几种方式:

1)文件系统已经存在于硬盘(或者类似的设备)的某个分区上了,kernel根据启动的命令行参数(root=/dev/xxx),直接进行mount。 这里有一个问题,在root文件系统本身还不存在的情况下,kernel如 何根据/dev/xxx来找到对应的设备呢?注意:根文件系统和其他文件系统的mount方式是不一样的,kernel通过直接解析设备的名称来获得设备的主、从设备号,然后就可以访问对应的设备驱动 了。所以在init/main.c中有很长一串的root_dev_names(如hda,hdab,sda,sdb,nfs,ram,mtdblock……),通过这个表就可以根据设备名称得到设备号。注意,bootloader或内核中设定的启动参数(root=/dev/xxx)只是一个代号,实际的根文件系统中不一定存在这个设备文件!

linux启动时挂载rootfs(linux挂起)

2)从软驱等比较慢的设备上装载根文件系统,如果kernel支持ramdisk,在装载root文件系统时,内核判断到需要从软盘(fdx)mount(root=/dev/fd0),就会自动把文件系统映象复制到ramdisk,一般对应设备ram0,然后在ram0上mount 根文件系统。 从源码看,如果kernel编译时没有支持ramdisk,而启动参数又是root=/dev/fd0, 系统将直接在软盘上mount,除了速度比较慢,理论上是可行的(没试过,不知道是不是这样?)

3)启动时用到initrd来mount根文件系统。注意理解ramdisk和initrd这两个概念,其实ramdisk只是在ram上实现的块设备,类似与硬盘操作,但有更快的读写速度,它可以在系统运行的任何时候使用,而不仅仅是用于启动;initrd(boot loader initialized RAM disk)可以说是启动过程中用到的一种机制,具体的实现过程也使用ramdisk技术。就是在装载linux之前,bootloader可以把一个比较小的根文件系统的映象装载在内存的某个指定位置,姑且把这段内存称为initrd(这里是initrd所占的内存,不是ramdisk,注意区别),然后bootloader通过传递参数的方式告诉内核initrd的起始地址和大小(也可以把这些参数编译在内核中),在启动阶段就可以暂时的用initrd来mount根文件系统。initrd的最初的目的是为了把kernel的启动分成两个阶段:在kernel中保留最少最基本的启动代码,然后把对各种各样硬件设备的支持以模块的方式放在initrd中,这样就在启动过程中可以从initrd所mount的根文件系统中装载需要的模块。这样的一个好处就是在保持kernel不变的情况下,通过修改initrd中的内容就可以灵活的支持不同的硬件。在启动完成的最后阶段,根文件系统可以重新mount到其他设备上,但是也可以不再 重新mount(很多嵌入式系统就是这样)。 initrd的具体实现过程是这样的:bootloader把根文件系统映象装载到内存指定位置,把相关参数传递给内核,内核启动时把initrd中的内容复制到ramdisk中(ram0),把initrd占用的内存释放掉,在ram0上mount根文件系统。从这个过程可以看出,内核需要对同时对ramdisk和initrd的支持(这种需要都编入内核,不能作为模块)。

2。嵌入式系统根文件系统的一种实现方法:对于kernel和根文件系统都存储在flash中的系统,一般可以利用linux启动的initrd的机制。具体的过程前面已经比较清楚了,还有一点就是在启动参数中传递root=/dev/ram0,这样使得用initrd进行mount的根文件系统不再切换,因为这个时候实际的设备就是ram0。还有就是initrd的起始地址参数为虚拟地址,需要和bootloader中用的物理地址对应。

忘记mysql root密码的解决方法 一.MySQL密码的恢复方法之一如果忘记了MySQL的root密码,可以用以下方法重新设置:1.KILL掉系统里的MySQL进程;killall-TERMmysqld2.用以下命令启动MySQL,以不

Apache最新官方配置文件中文版说明 Apache最新官方配置文件中文版##BasedupontheNCSAserverconfigurationfilesoriginallybyRobMcCool.#参照NCSA服务器的配置文件,原版由RobMcCool发布##ThisisthemainApacheserverconfigur

Linux系统下配置SSH方法 SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。SSH有两

标签: linux挂起

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

上一篇:LINUX下ARP欺骗攻击说明与防范(linux arp -n)

下一篇:忘记mysql root密码的解决方法

  • 个人所得税人员信息采集验证不通过
  • 前一年度进项税少记了怎么办
  • 快递费包不包括送货上门
  • 发票开具就能做账了吗
  • 微信转账报销怎么转换成文字
  • 城建税借贷方向
  • 固定资产汽车抵扣新政策
  • 公司借款给个人利息怎么做账
  • 海关缴款书认证不符
  • 金税盘的年费怎么做抵扣帐
  • 适用简易计税方法的口诀
  • 总公司给分公司钱
  • 汽修厂的财务怎样做账
  • 预提职工存量怎么做会计凭证
  • 预提差率费怎么记账
  • 社会保险费缴费凭据在哪查
  • 收工资扣款账务处理流程
  • 推广的产品
  • 佣金可以开票吗
  • 流动资产周转率计算公式
  • 长期股权投资特征
  • 索尼笔记本电脑官网
  • PHP CURL CURLOPT参数说明(curl_setopt)
  • 建筑工程给排水的内容
  • 小规模纳税人需要缴纳个人所得税吗
  • 不能运行windows10的设备有哪些
  • 进程process
  • 律师费怎样入账
  • 计量差错引起的盘亏
  • 最小的外置dvd刻机多少寸
  • 国内旅客运输服务发票
  • 十大经典排序算法(动图演示C 实现)
  • php str
  • 进项税可以跨年结转吗
  • vue解决跨域的几种办法
  • 企业所得税申报更正怎么操作
  • 城镇土地使用税征收标准及计算方法
  • 财政监制章专用收据可以税前扣除吗
  • 当月入账的进项税必须当月认证吗
  • 一般纳税人开普票税率是3%还是13%
  • 房地产企业取得土地的契税如何记账
  • 股东打给公司的投资款
  • 小微企业流转税优惠政策
  • 收到残障金退回怎么处理
  • 公司使用pos机
  • 一般纳税人公司注册资金最低多少
  • 固定资产折旧的会计科目
  • 采购技术服务费计取
  • 董事会会议的召集程序
  • 减值损失账务处理
  • 总分类账户与明细分类账户是对账户按照其
  • 商品流通企业会计做账流程
  • 发票盖发票专用章
  • 工资核算模块初始设置的内容有
  • MySQL使用select语句查询指定表中指定列(字段)的数据
  • win8.1怎么改win7系统
  • 发生意外错误无法完成您的请求
  • repair.exe是什么软件
  • 怎么关闭windows更新提示
  • win8 metro启动界面
  • winxp显示设置
  • win10正版授权图标
  • 各种linux系统比较
  • pic是啥软件
  • 安装怎么弄
  • win7 32位旗舰版电脑城下载
  • linux !!
  • jqueryui
  • linux怎么查看tomcat位置
  • 深入解析抑郁症:什么是它的表现?别小看它的危害程度!
  • js很简单
  • js怎么获取密码框内容
  • jQuery ajax提交Form表单实例(附demo源码)
  • javascript要怎么学
  • brook javascript框架介绍
  • 快速掌握英语的方法
  • 税控盘服务费必须每年交吗为什么
  • 公司购买车辆是什么费用
  • acfunp
  • 国,地税纳税申报表是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设