文章摘要:
本文主要在于搭建一个最小的文件系统,使Linux能正常工作,后续再根据需要进一步完善文件系统。


根文件系统目录说明:

/bin 系统常用命令
/sbin 管理员常用命令
/usr/bin 不常用命令
/usr/sbin 管理员不常用的命令

/dev 设备文件
/etc 系统参数配置
/lib 库文件
/proc proc文件系统,内核与用户的接口
/sys sys文件系统,动态产生,设备,驱动,总线的信息
/mnt 手动挂载约定目录
/tmp 系统临时文件目录(该目录下的文件由系统生成,可手工清除)
/var 系统运行时要改变的数据.(由系统
/opt 一般约定用于安装第三方的软件的目录


制作根文件系统

1.新建所需目录:

#mkdir bin dev etc lib proc sbin sys usr mnt tmp var
#mkdir /usr/bin  /usr/lib /usr/sbin /lib/modules

2.在dev目录下创建必须的两个设备文件

#mknod -m 666 console c 5 1
#mknod -m 666 null c 1 3

3.安装busybox命令集
配置busybox安装路径

Busybox Settings  --->
    Installation Options ("make install" behavior)  --->
        () BusyBox installation prefix 
        (根文件系统路径)

编译安装busybox

#make 
#make install

4.完成etc目录下文件创建
创建inittab文件
inittab分开来看就是init table,由若干命令组成,init进程在不同的情况下执行不同的命令:

::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/bin/umount -a -r

注意事项:
sysinit:指定初始化时要运行的脚本;
respawn:不管何时终止都重新启动进程;
稍后专门分析inittab文件。

创建fstab文件
系统启动时mount -a命令挂载列表.

proc    /proc   proc    defaults    0   0
sysfs   /sys    sysfs   defaults    0   0

创建init.d/rcS文件
系统初始化运行的脚本.

#!/bin/sh
/bin/mount -a

注意事项:
此处的运行权限最高,可以完成系统级配置
/bin/mount -a 挂载fstab文件中定义的列表项

创建profile文件
全局配置文件

echo
echo -n "Processing /etc/profile... "
# add shell here
echo "Done"
echo

注意事项:
这里暂时只做运行时的提示,后续可根据需要配置全局参数;
每个用户登陆时都会调用一次(本地登陆和远程登陆),所以要注意权限问题。


构建完以上文件,即成为最小文件系统所需要的文件,系统可以正常工作。