嵌入式Linux-定制根文件系统

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linux_0416/article/details/79638997

    根文件系统是Linux、UNIX系统启动的第一个文件系统,在启动内核时需要挂载根文件系统来支持访问外部设备以及装载和运行内核模块与应用。

   根文件系统相对于普通的文件系统,特殊之处在于它是内核启动的所mount的第一个文件系统,系用引导启动程序会在根系统挂载之后 从中把一些基本的初始化脚本和服务加载到内存中运行。

   Linux的根文件系统的目录和结构是基本固定的,每个文件夹都有固定的用途。

  /bin 存放用户和系统来说必须的二进制文件

  /sbin 存放针对系统管理的二进制文件,一般不会被普通用户使用

  /usr/bin 不必要的用户二进制文件

  /usr/sbin 不必要的系统管理二进制文件

  /lib 启动系统和运行所必需的库

 嵌入式Linux而言之有/bin,/dev,/etc,/lib,/proc,/var,/usr是需要的,而其他的都是可选的。

 如何制作根文件系统:

  移植busybox,简单看作是UNIX工具的集合,它将必将常用的UNIX命令和工具软件合成到一个可执行文件中,并让它们共享代码中相同的部分,从而减少所需要的空间和资源的需求。

当我们在linux下输入ls  / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。

该标准规定了根目录下各个子目录的名称及其存放的内容:

目录名

存放的内容

/bin

必备的用户命令,例如lscp

/sbin

必备的系统管理员命令,例如ifconfigreboot

/dev

设备文件,例如mtdblock0tty1

/etc

系统配置文件,包括启动文件,例如inittab

/lib

必要的链接库,例如C链接库、内核模块

/home

普通用户主目录

/root

root用户主目录

/usr/bin

非必备的用户程序,例如finddu

/usr/sbin

非必备的管理员程序,例如chrootinetd

/usr/lib

库文件

/var

守护程序和工具程序所存放的可变,例如日志文件

/proc

用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容

/sys

用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容

/mnt

文件系统挂接点,用于临时安装文件系统

/tmp

临时性的文件,重启后将自动清除

 

制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:

·        编译/安装busybox,生成/bin/sbin/usr/bin/usr/sbin目录

·        利用交叉编译工具链,构建/lib目录

·        手工构建/etc目录

·        手工构建最简化的/dev目录

·        创建其它空目录

·        配置系统自动生成/proc目录

·        利用udev构建完整的/dev目录

制作根文件系统的 jffs2 映像文件

猜你喜欢

转载自blog.csdn.net/linux_0416/article/details/79638997