免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3626 | 回复: 6
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-03-15 21:49 |只看该作者 |倒序浏览
我在linux打包的根文件系统使用了cpio-initrd,直接作为跟文件系统能正常启动。
我想请教一下,如果bootargs中再使用root=/dev/mtdblock3 这样的配置会出现什么情况?
也就是说即使用initrd/initramfs,又使用flash中完整的根文件系统,在内核中是怎样的流程?我看见电脑中的确是这样实现的。

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


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

论坛徽章:
0
2 [报告]
发表于 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
3 [报告]
发表于 2017-03-16 19:40 |只看该作者
回复 2# mournjust

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

论坛徽章:
0
4 [报告]
发表于 2017-03-16 19:41 |只看该作者
回复 2# mournjust

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

论坛徽章:
1
15-16赛季CBA联赛之新疆
日期:2017-03-09 12:33:45
5 [报告]
发表于 2017-03-17 11:24 |只看该作者
回复 1# noleave

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

论坛徽章:
0
6 [报告]
发表于 2017-03-17 12:41 |只看该作者
回复 5# jeppeter

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

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

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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP