前面两节介绍了如何安装Busybox、C库,建立了 bin/、sbin/、usr/sbin、usr/bin、lib/等目录,最小根文件系统的大部分目录、文件已经建好。本节介绍剩下的部分,假设开发板的根文件系统在主机上的目录为/home/song/nfs_root/fs_mini。
一、构建 etc 目录
1、进入你的根文件系统在主机上的目录,创建一个 etc目录,如下
init 进程根据/etc/inittab 文件来创建其他子进程,比如调用脚本文件配置IP地址、挂接其他文件系统,最后启动shell等。
etc 目录下的内容取决于要运行的程序,本部分只需要创建3个文件:etc/inittab、etc/init.d/rcS、etc/fstab。
1、创建 etc/inittab 文件
执行命令:cd etc,进入你刚才创建的etc目录
执行命令:vim inittab,创建一个inittab文件
创建inittab文件,可以仿照BusyBox的examples/inittab文件,本节创建的内容如下
2、创建 etc/init.d/rcS 文件
执行命令:mkdir init.d,在当前etc目录下再创建一个init.d文件夹
执行命令:cd init.d,进入init.d文件夹
执行命令:vim rcS,创建一个rcS文件
这是一个脚本文件,可以在里面添加想自动执行的命令。以下命令配置IP地址、挂接/etc/fstab指定的文件系统。
第一行表示这是一个脚本文件,运行时使用 /bin/sh解析。
第二行用来配置IP地址。
第三行用来挂接/etc/fstab指定的所有文件系统。
最后,执行命令:chmod +x rcS,改变它的属性,使它能够执行。
3、创建 /etc/fstab 文件
执行命令:cd .. 返回上一级目录
执行命令:vim fstabz,创建fstab文件,该文件内容如下,表示执行“mount -a”命令后将挂接proc、tmpfs文件系统。
/etc/fstab 文件被用来定义文件系统的“静态信息”,这些信息被用来控制mount命令的行为。文件中各子段的意义如下。
① device:要挂接的设备。
比如/dev/hda2、/dev/mtdblock1等设备文件;也可以是其它格式,比如对于 proc 文件系统这个字段没有意义,可以是任意值;对于NFS文件系统,这个<host>:<dir>。
② mount-point:挂接点。
③ type:文件系统类型。
比如 proc、jffs2、yaffs、ext2、nfs等,也可以是auto,表示自动检测文件系统类型。
④ options:挂接参数,以逗号隔开。
/etc/fstab的作用不仅仅是用来控制“mount -a”的行为,即使是一般的mount命令也受它控制。
⑤ dump和fsck order:用来决定控制dump、fsck程序的行为。
dump是一个用来备份文件的程序。dump程序根据 dump 字段的值来决定这个文件系统是否需要备份,如果没有这个字段或其值为0,则dump程序忽略这个文件系统。
fsck是一个用来检查磁盘的程序。fsck程序根据fsck order字段来决定磁盘的检查顺序,一般来说对于根文件系统这个字段设为1,其他文件系统设为2。如果设为0,则fsck程序忽略这个文件系统。
二、构建 dev 目录
为了简单起见,本节使用最原始的方法处理设备:在 /dev 目录下创建各种节点(即设备文件)。当然还可以用 mdev 创建设备文件,这是韦老师书上的,我还不会哈!
4、执行命令:cd .. 返回上一级目录
5、执行命令:mkdir -p /home/song/nfs_root/fs_mini/dev ,创建dev目录
6、执行命令:cd dev,进入dev目录
7、在dev目录下先后执行以下命令
sudo mknod console c 5 1
sudo mknod null c 1 3
sudo mknod ttySAC0 c 204 64
sudo mknod mtdblock0 b 31 0
sudo mknod mtdblock1 b 31 1
sudo mknod mtdblock2 b 31 2
从系统启动过程可知,设计的设备有:/dev/mtdblock*(MTD块设备)、/dev/ttySAC*(串口设备)、/dev/console、/dev/null,只需要建立以上设备就可以启动系统。
注意:在一般系统中,ttySAC0的主设备号为4,但是在S3C2440、S3C2410所用的linux 2.6.22.6上,它们的串口号设备为204。
其他设备文件可以当系统启动后,使用 “cat /proc/devices” 命令查看内核中注册了哪些设备,然后一一创建相应的设备文件。
三、构建其他目录
其他目录可以是空目录,比如 proc、mnt、tmp、sys、root等。
8、执行命令:cd ..,进入上一级目录
9、执行命令:mkdir proc mnt tmp sys root 创建其他目录
现在,咱们这个/..../nfs_root/fs_mini 目录下就是一个非常小的根文件系统。开发板可以将它作为网络根文件系统直接启动。
如果要烧入开发板,还要将它制作为一个文件,称为映像文件。下一节将介绍制作使用 yaffs文件系统映像文件,未完,正在写..........
分享到:
相关推荐
在这个名为"linux根文件系统构建(etc目录包)"的主题中,我们将深入探讨etc目录及其包含的文件和模板,以及如何构建和管理一个完整的Linux根文件系统。 一、etc目录详解 /etc目录是Linux中用于存储系统级配置文件...
嵌入式Linux根文件系统的构建是当前技术领域的一个热点,对于开发者来说,理解这一过程至关重要。根文件系统是Linux内核启动时首次挂载的文件系统,它是操作系统的基础,包含了运行系统所需的最基本组件。在Linux中...
在构建根文件系统之前,首先需要确定一个工作目录作为根目录。例如,在`/root/s3c2440/build_rootfs/aston_rootfs`目录中创建根文件系统。所有后续操作都将在该目录下进行。 **2. 创建基础目录结构** 接下来,创建...
总之,Linux根文件系统构建是一个涉及多个环节的过程,包括理解目录结构、选择工具集、配置系统组件以及最终的烧写操作。通过精心设计和构建,我们可以创建出满足特定需求的高效、精简的嵌入式Linux系统。
"etc"目录在根文件系统中扮演着至关重要的角色,因为它存储了系统级别的配置文件,这些文件控制着系统的各种服务、用户权限和系统行为。下面将详细阐述etc目录中的关键文件及其功能。 1. **fstab**:文件系统挂载表...
总结而言,构建ARM Linux最小根文件系统是一个复杂且细致的过程,涉及到源码编译、库文件移植、文件系统目录结构设计以及配置文件编写等多个方面。本文档详细记录了构建过程中的关键步骤和注意事项,为开发者提供了...
构建一个基本的嵌入式Linux根文件系统需要一系列的步骤,这些步骤通常包括选择文件系统类型、配置工具链、安装基础软件包以及定制系统服务。下面将详细介绍这些步骤。 首先,我们需要选择合适的文件系统类型。常见...
根文件系统(rootfs)是嵌入式系统中最基本的文件系统,它提供了系统启动后的应用层配置、shell 命令程序和根目录等基本功能。下面将详细介绍根文件系统的构建过程和相关知识点。 一、rootfs 的意义 根文件系统是...
### 建立根文件系统:构建Linux系统的基础框架 #### 根文件系统的重要性与构成 根文件系统(root file system)是Linux系统的核心组成部分,它包含了操作系统启动和运行所必需的最低限度的文件和目录。这包括内核...
根文件系统是指Linux系统启动时挂载的第一个文件系统,通常包含了/etc、/bin、/lib等关键目录,它们提供了系统运行所需的基本工具和服务。移植根文件系统,就是将这些必要的组件从开发环境复制到目标硬件上,确保...
#### 三、构建自己的根文件系统 构建根文件系统涉及多个步骤,包括但不限于: 1. **选择合适的工具链**:根据目标硬件平台选择适当的交叉编译器。 2. **创建文件系统布局**:创建必要的目录结构。 3. **编译...
在构建嵌入式系统或者轻量级Linux发行版时,根文件系统(Root File System,简称rootfs)是至关重要的组成部分。它包含了操作系统运行所需的基本文件和目录结构,比如配置文件、系统工具、库等。在这样的环境中,`...
构建基本的嵌入式 Linux 根文件系统 在构建基本的嵌入式 Linux 根文件...构建基本的嵌入式 Linux 根文件系统需要了解 Linux 文件系统的标准规范、Busybox 的配置和编译、嵌入式 Linux 系统移植和实验和调试等知识点。
4. **创建文件系统结构**:遵循FHS(Filesystem Hierarchy Standard)标准,搭建根目录下的各个子目录,如/bin、/sbin、/etc、/dev、/lib等,并在这些目录下放置相应的文件和配置。 5. **填充文件系统**:将编译后...
### 根文件系统构建及其重要性 #### 一、引言 根文件系统(root file system)作为任何基于Unix的操作系统的基础组成部分,对于系统的初始化、稳定运行及管理具有至关重要的作用。尤其是在Linux环境下,无论是传统的...
1. 构建目录结构,如/dev、/etc、/lib、/usr、/var、/proc、/tmp、/home、/root、/mnt、/bin、/sbin、/sys等,为系统运行提供必要的目录框架。 2. 使用busybox进行静态编译,以确保根文件系统在没有标准库支持的情况...
2. **目录结构**:在宿主机上创建一个目录,作为嵌入式系统的根目录(例如`/rootfs`)。然后按照标准的Linux目录结构创建子目录,如`dev`、`etc`、`lib`、`proc`、`tmp`、`var`等。其中,`tmp`目录需要设置为sticky...
在嵌入式Linux系统开发中,构建一个根文件系统是至关重要的步骤,它包含了系统运行所需的最小环境。本文将详细讲解如何使用BusyBox来构建根文件系统,特别针对ARM架构的Linux设备。 首先,我们需要创建根文件系统的...
- **创建根文件系统目录**:首先,需要创建基本的目录结构,如bin、dev、etc、home、lib、mnt、proc、sbin、sys、tmp、var。这些目录代表了系统的主要组成部分。 - **创建设备文件**:dev目录下的设备文件是系统...