### 开发板文件系统的制作与挂载 #### 一、文件系统基础知识 在开始之前,我们需要了解文件系统的基础概念。文件系统(File System)是一种用于组织和管理存储设备上数据的方法,它定义了如何在存储介质上存储和检索文件。在Linux系统中,文件系统遵循FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),这是一套定义了系统目录结构的标准。 根据FHS标准,主要目录包括但不限于: - **bin**:存放基本的用户命令。 - **sbin**:存放系统管理员使用的命令。 - **usr**:存放只读用户数据。 - **proc**:虚拟文件系统目录,提供关于当前运行内核的信息。 - **dev**:设备文件所在的目录。 - **etc**:存放配置文件。 - **lib**:库文件目录。 - **var**:变量数据存放目录。 - **boot**:存放启动映像文件。 - **home**:普通用户的家目录。 - **mnt**:临时文件系统挂载点。 - **tmp**:存放临时文件。 - **opt**:可选的应用程序包。 #### 二、创建文件系统 本节将详细介绍如何为友善之臂mini6410开发板创建一个基础的文件系统,并对其进行挂载。 ##### 2.1 创建文件系统目录 我们需要创建文件系统的基本目录结构。例如,在开发环境中创建一个名为`mini6410_nfs`的目录,并在其下创建上述提到的主要目录。 ```bash #!/bin/sh echo "------Create rootfs directories start--------" mkdir mini6410_nfs cd mini6410_nfs echo "--------Create root, dev.----------" mkdir root dev etc boot tmp var sys proc lib mnt home usr mkdir etc/init.d etc/rc.d etc/sysconfig mkdir usr/sbin usr/bin usr/lib usr/modules echo "make node in dev/console dev/null" mknod -m 600 dev/console c 5 1 mknod -m 600 dev/null c 1 3 mkdir mnt/etcmnt/jffs2 mnt/yaffs mnt/data mnt/temp mkdir var/lib var/lock var/run var/tmp chmod 1777 tmp chmod 1777 var/tmp echo "-------make direction done---------" ``` 其中,对/tmp和/var/tmp目录设置权限为1777,即设置了sticky bit位。这样做的目的是为了保护这些目录中的文件,即使用户有写权限,也不能删除其他用户创建的文件,从而增强了安全性。 ##### 2.2 配置BusyBox BusyBox是一个集成了上百个最常用Linux工具的一个软件。它是专门为嵌入式系统设计的,因为这些系统通常内存较小。接下来,我们将使用BusyBox来构建一个精简版的Linux文件系统。 下载BusyBox源码并解压到工作目录: ```bash cd /mnt/hgfs/share tar -C . -xzvf busybox-1.13.3.tar.gz ``` 然后进入BusyBox目录,进行编译配置: ```bash cd /opt/mini6410_nfs/busybox-1.13.3 # 修改Makefile,指定交叉编译器路径 CROSS_COMPILE?=arm-linux- ARCH?=arm ``` 接着,通过`make menuconfig`进行配置: 1. **Build Options**: - 构建BusyBox为静态二进制文件(不使用共享库) - 支持大文件访问(访问超过2GB的文件) 2. **Installation Options**: - 不使用/usr Applets链接(软链接) 3. **BusyBox Library Tuning**: - 最小密码长度 - MD5加密选项 - 更快的/proc扫描代码 - 命令行编辑功能 - vi风格的行编辑命令 - 历史记录功能 - Tab补全功能 - 华丽的shell提示符 - 缓冲区大小 - 错误消息中使用ioctl名称而不是十六进制值 - 支持InfiniBand硬件 4. **Linux System Utilities**: - 支持/etc/mdadm.conf文件等。 完成以上配置后,可以使用`make`命令进行编译,之后使用`make install`安装BusyBox到指定的文件系统目录。 ##### 2.3 配置udev udev是Linux系统中的一个守护进程,负责管理设备节点和处理内核发送的设备事件。为了使文件系统能够动态地管理和更新设备节点,我们需要配置udev。 - 下载并编译udev,或者使用BusyBox自带的mdev功能来替代udev。 - 将mdev添加到BusyBox配置中,并确保其正确编译和安装。 通过上述步骤,我们已经成功地为mini6410开发板创建了一个基本的文件系统。接下来,可以通过NFS或SD卡等方式将该文件系统挂载到开发板上,进行进一步的开发和测试工作。
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助