忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 258 | 回复: 6

[文件系统] 关于rootfs,initramfs,root=等等根文件系统启动问题 [复制链接]

论坛徽章:
0
发表于 2017-03-15 21:49 |显示全部楼层
我在linux打包的根文件系统使用了cpio-initrd,直接作为跟文件系统能正常启动。
我想请教一下,如果bootargs中再使用root=/dev/mtdblock3 这样的配置会出现什么情况?
也就是说即使用initrd/initramfs,又使用flash中完整的根文件系统,在内核中是怎样的流程?我看见电脑中的确是这样实现的。

linux启动,initrd/initramfs是否必须?应该是可以直接使用root=参数来直接使用FLASH中的文件系统。但是这个过程在2.6以后的内核中是怎样实现的,我一直没有找到对应的代码。


多谢高手,这个问题缠绕我很长时间了。

论坛徽章:
0
发表于 2017-03-16 17:25 |显示全部楼层
我的机器运行的是4.4的代码。截一段给你看一下
skip_initramfs rootwait ro init=/init root=/dev/mmcblk0p14
很显然initrd跟initramfs不是必须的。

不过我可以从2.6的内核中找到你需要的代码。

/init/do_mounts.c:216:__setup("root=", root_dev_setup);

论坛徽章:
0
发表于 2017-03-16 19:40 |显示全部楼层
回复 2# mournjust

如果不必须是不是把电脑里的/boot/initrd.img删了也行呢

论坛徽章:
0
发表于 2017-03-16 19:41 |显示全部楼层
回复 2# mournjust

如果我用了initramfs,再使用root=/dev/mtdblock3是否可以?

论坛徽章:
1
15-16赛季CBA联赛之新疆
日期:2017-03-09 12:33:45
发表于 2017-03-17 11:24 |显示全部楼层
回复 1# noleave

从现在的linux的正常启动流程来说,initramfs是不能去除的(当然,你对内核本身进行了深度定制,另当别论)
为什么会这样?
因为这个有一个根本的想法, 就是linux内核一启动,是什么也没有的。它如何进行复杂的运算,举一个例子,要初始化一些环境,并且要根据配置启动第一个shell。
这些内容不是一个内核就能搞定的,要用户态的程序共同参与的。但一开始,整个系统还没有根目录,这个时候就要加载要目录,当然你可以说,如果我们把根目录加载完了不就可以了吗?这里还有问题,因为加载根目录就是系统初始配置的一部分,这个可能会写在一些配置文件里,系统如果要读配置文件,那真的会很麻烦,所以,这个时候最好有一个可以用的文件系统,而initramfs就是针对这种需求诞生的。它就是加载在内存中,所以在系统不论如何都是可以用的,你想,如果系统是一个网络启动的,根本没有硬盘的怎么办?
我给你个建议,你可以对initramfs进行高度定制,而不要直接去除initramfs,因为如果真这样做,linux系统很多地方都要修改了。

论坛徽章:
0
发表于 2017-03-17 12:41 |显示全部楼层
回复 5# jeppeter

同意。从initrd.img的设计意图上来看,对于桌面机来说是必不可少的。因为桌面机是模块化的,今天可以换个磁盘,明天可以换个SDD。

对于高度集成化的移动设备而言(定制化的),比如手机。我认为initramfs是可以去掉的。因为高度集成化,所以kernel基本包括了所需的driver。
,kernel有能力去挂载根目录。

论坛徽章:
0
发表于 2017-03-18 14:21 |显示全部楼层
好像说很久以前的linux,启动时不需要initrd,直接在bootargs中使用root=,从真实的根文件系统启动就可以,不知道是不是这样?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP