根文件系统(root filesystem)是存放运行、维护系统所必须的各种工具软件、库文件、脚本、配置文件和其他特殊文件的地方,也可以安装各种软件包。

一般根文件系统主要目录结构:



创建根文件系统步骤

1、采用Busybox创建基本命令
2、创建基本的目录 /lib /etc /var /tmp /dev /sys /proc等
3、添加glibc基本动态库
4、创建基本的设备节点
5、添加启动配置和脚本程序 /etc/inittab  /etc/fstab /etc/init.d/rcS
6、测试根文件系统
7、制作根文件系统镜像


BusyBox init 执行的几个阶段:
1. 设置 init 信号句柄
2. 初始化 console(s)
3. 解析 inittab 文件, /etc/inittab
如果  /etc/inittab 不存在, BusyBox 使用缺省值:
详细内容参考 BusyBox 相关文档

4. 运行系统初始化脚本 (BusyBox use /etc/init.d/rcS作为缺省)

在这里你可以做的工作:

重新以 rw 模式挂载根文件系统

挂载附加的文件系统

初始化并启动网络接口

启动系统守护进程

5.  运行 inittab中所有action 为 wait 的命令

6.  运行 inittab 中所有action 为 once的命令

7. 循环运行:

1)运行 inittab中所有action 为 respawn 的命令

2)运行 inittab中所有action 为 askfirst的命令


嵌入式系统中常用文件系统包括有:cramfs、 squashfs、JFFS2、yaffs2、UBIFS、ext4。

它们的特点如下:

1、cramfs和 JFFS2具有好的空间特性,生成的镜像小,占用的Flash空间小,很适合

小型嵌入式产品应用;

2、cramfs和 squashfs为只读压缩文件系统,squashfs相比于 cramfs,能提供更大的压

缩比,支持更大的镜像和文件;

3、JFFS2为可读写的压缩文件系统,其挂载时间与Flash容量有关,越大的 Flash,

挂载时间越长,而且每次加载都需要将Flash 上的所有节点(JFFS2的存储单位)加

载到内存,因此内存消耗较大。由于JFFS2 是按字节访问 Flash,因此,只能用于

SPI NOR Flash,不能用于NAND Flash;

4、yaffs2文件系统是 NAND Flash 上使用较为成熟的文件系统,并且只能用于NAND

Flash,相比于JFFS2,其内存消耗较小,但挂载时间仍然与Flash容量相关,越大

的Flash,挂载时间越长;

5、UBIFS一种用在大容量 Flash 上的可读写文件系统,对 Flash 的容量依赖较小,相

比于yaffs2和 JFFS2,其挂载时间和内存消耗都小很多,可以很好的适应GB以上

大小的大容量Flash;

6、ext4是 Linux系统下的日志文件系统,适用于eMMC这类块设备存储器件。



rootfs文件系统的制作(一)相关推荐

  1. rootfs文件系统的制作(二)

    一.根文件系统制作 1. 源码下载 我们选择的版本是busybox-1.22.1.tar.bz2下载路径为: http://busybox.net/downloads/ 2. 解压源码 $ tar   ...

  2. linux rootfs 编译,rootfs文件系统制作

    rootfs文件系统制作笔记 环境:XC2440 linux2.32.2红帽5 根文件系统有一系列的目录组成,其中包括应用程序.C库.及相关的配置文件. 制作根文件系统的步骤如下,下面步骤均在虚拟机终 ...

  3. 嵌入式文件系统镜像制作及烧写

    将rootfs和userdata两个目录分别制作为镜像文件进行烧写: 镜像文件对应文件系统类型的选择,采用: rootfs制作为rootfs.img镜像,采用的文件系统类型为cramfs,只读,用于保 ...

  4. Linux根文件系统的制作

    1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及其它存储设备)或分区的目录结构:一个可应用的磁盘设备可以包含一个或多个文件系统:如果您想进入一个文件系统,首先您要做的是挂载(moun ...

  5. linux 内核移植和根文件系统的制作【转载】

    原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...

  6. (三)linux之根文件系统的制作

    (一)准备工作 Ubuntu 16.04系统 linux-3.5内核:linux-3.5-20190929 交叉编译工具arm-linux-gcc-4.5.1-v6-vfp-20120301.rar ...

  7. linux 文件系统字体小,基于嵌入式Linux平台的最小文件系统的制作

    工作平台:FL2440 交叉编译环境:arm-linux-gcc 3.4.1 busybox版本:1.9.1 1) 制作文件系统总目录: mkdir my_rootfs 2) 编译&安装bus ...

  8. 细说嵌入式Linux文件系统的制作方法

    说到Linux文件系统对于刚刚接触Linux的初学者来说还是有些生疏,其实理解了他的定义并且掌握他的使用方法并不是什么难事.在下文中大家就会详细的了解到什么是Linux文件系统,并且可以学会嵌入式Li ...

  9. petalinux 的rootfs文件系统放在SD 分区上

    在前面2文即: petalinux 2018.2 在ubuntu 16 下的工程制作并启动实验 以及 petalinux 2018.2 在QSPI启动中,介绍了制作petalinux 启动的过程.但上 ...

最新文章

  1. jQuery中常用的函数方法总结
  2. 人眼模板匹配自动跟踪
  3. 理想边界尺寸怎么算_钻石型淋浴房三边尺寸怎么算?安装步骤有哪些?
  4. 读取字符串中的数字和小数
  5. 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'
  6. 路由虚拟端口配置dhcp服务器,交换机和路由器DHCP设置中的端口配置
  7. 计算机网络实用技术教学资源,计算机网络实用技术第一章课件教学.ppt
  8. qt程序部署在linux,Qt应用打包发布,部署真正的Qt程序LinuxWindows-Go语言中文社区...
  9. 织梦手机站搜索结果显示为电脑站的搜索结果模板的解决方法
  10. 蚂蚁金服java研发实习岗电话一面面试记录
  11. 色度抽样(4:2:0)到底是什么意思?
  12. 转载 提高github下载速度的方法【100%有效】可达到2MB/s
  13. 第九章泛型与集合(甘琳凤)
  14. 自动建站.实现虚拟二级目录
  15. Linux系统如何查看服务器带宽及网络使用情况
  16. 华为无线设备Mesh配置命令
  17. Arduino UNO+DS1302+74HC595联级+8位数码管时钟+Proteus仿真
  18. 计算机热点方向、历史、未来
  19. 素描初习(一)---三棱锥
  20. 华为三星非洲智能手机大战 低价为王

热门文章

  1. 机器学习模型可解释性进行到底——特征重要性(四)
  2. LeetCode 之 JavaScript 解答第98题 —— 验证二叉搜索树(Validate Binary Search Tree)
  3. mvc:view-controller
  4. Java自定义Annotation方法
  5. alarm之后调用sleep会这样
  6. Abstract class 与Interface 抽象类和接口
  7. 落实业务服务管理从基础设施管理做起
  8. WordPress快速开发的博客平台
  9. 12月 Web 服务器调查:nginx 增长最快,微软市场份额最高
  10. 快速的JavaScript,JS性能优化