Linux文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。有了文件系统,用户就可以很方便的和Linux设备进行数据交互了。
随着实际需求的不断提高,Linux文件系统也变得越来越庞大。无论它如何千变万化,归根结底,都是基于最基本的linux文件系统不断丰富而来。因此,我们完全有必要了解最基本的文件系统的搭建过程,更加复杂的文件系统可以举一反三,各个击破,真正做到一通百通。下面我们将逐步讲解最简单的linux文件系统的制作方法。
第一步:在ubuntu的用户目录下新建一个文件系统的总目录,如rootfs_x4412:
第二步:编译安装busybox
从busybox官网(
www.busybox.net)下载最新的busybox源码包,这里以1.22.1版本为例,源码包名称为busybox-1.22.1.tar.bz2。
解压源码包,打开busybox根目录的Makefile文件,指定交叉编译工具链以及体系架构,注意,请以自己的实际交叉编译工具安装路径为准:
在busybox根目录下执行make menuconig配置busybox:
进入Busybox Settings目录,
再进入Build Options目录,
选中第一项,即将Busybox编译成静态的二进制文件。使用静态的文件,可以不依赖于共享库,后面我们将会进一步说明。其他选项暂且默认,当然我们也可以根据自己的实际需要添加或是删剪一些busybox指令,以及其他的一些特色选项。
退出menuconfig并保存配置后,在busybox根目录下执行如下指令编译安装:
这时在busybox根目录会生成_install目录,里面存放着bin,sbin,usr三个目录以及linuxrc文件。这些文件构成了busybox的各种指令集。
前面我们提到,将busybox编译成静态文件后,不再依赖共享库。进入busybox的根目录,使用如下指令查看busybox依赖的共享库: