根文件系统构建
一、根文件系统简介
- 根文件系统是 Linux 内核启动以后挂载(mount)的第一个文件系统,
- 从根文件系统中读取初始化脚本,比如 rcS,inittab 等。
- 根文件系统和 Linux 内核是分开的,单独的 Linux 内核是没法正常工作的,必须要搭配根文件系统。如果不提供根文件系统,Linux 内核
在启动的时候就会提示内核崩溃(Kernel panic)的提示
二、根文件系统组成
- 嵌入式 Linux 根文件系统布局,按照FHS标准来安排
- 嵌入式系统可能并不需要全部目录,对系统进行精简,以简化Linux的使用。
- 通常不会放置内核源码因而存放源码的 /usr/src目录是不必要的, 甚至连头文件也不需要,即/usr/include目录也不必要;
- 但是 /bin、/dev 、/etc、/lib 、/proc 、/sbin、/usr几个目录是不可或缺的。
典型嵌入式Linux根文件系统目录
三、BusyBox构建根文件系统
- 获取BusyBox码源
- 配置BusyBox(图形化配置)
- 选择编译静态库
- 选择交叉编译工具链
- 选择安装目录
- 编译BusyBox到指定目录(只有bin、sbin、usr三个目录)
- 完善目录结构
- 添加c运行库,复制动态连接文件(.so文件)到 /lib目录
- 创建 /etc/init.d/rcS 文件 , 是一个shell脚本, rcS 就是规定启动哪些文件的脚本文件
- 创建 /etc/fstab 文件,fstab在 Linux开机以后自动配置哪些需要自动挂载的分区
- 创建/etc/inittab 文件,是init进程解析的配置文件,通过这个配置文件决定执行哪个进程
- 制作根文件系统镜像(或者网络nfs挂载)