linux根文件系统制作——step by step(一)

以前也制作过根文件系统,但是都是按照网上写好的文档一步步来操作。系统虽然做出来了,但是为什么要那样做,创建的每个目录文件都干什么的,还是一头雾水。近段时间好好的研究了一下根文件系统的制作方法和过程。将我的收获和理解记录下来,让自己好好梳理一下思路,也供读者参考。


说明: 1)本文旨在探讨跟文件系统结构和制作方法,不讨论启动方式,下面的实验都是采用nfs方式启动系统的。

2)一个成熟的文件系统,下面有很多目录。这里每个目录当然都有其作用,但是对于linux来说,要想正确启动起来仅仅用到其中的几个即可。下面我将由简到烦,从最简单的文件系统开始做起,然后一步步添加,直至完整。


第一个必须要有的就是被誉为“嵌入式开发中的瑞士军刀”的busybox。首先你要下载busybox源码,然后进入其根目录。下面要做的工作就非常简单了,俗称三部曲。(1)配置,(2)编译,(3)安装。

(1)配置:进入busybox根目录,执行make menuconfig,这里只需配置两项。

第一项:Busybox Settings -->build Options -->

如下图:选上静态链接,设置交叉编译器


第二项: Busybox Settings -->Installation Options -->

如下图:设置安装路径


(2)编译和(3)安装

busybox根目录下,依次执行:

make 

make install

到此,busybox安装设置完毕,我们将会在我们指定的安装目录下看到生成的目录和文件。我的在root_nfs目录下。


第二个要做的就是dev目录,进入root_nfs目录。依次执行下面的命令,在dev目录下建立两个设备文件。:

#mkdir dev

#cd dev

#mknod -m 666 console c 5 1

#mknod -m 666 null c 1 3


第三个要做的就是etc目录,进入root_nfs目录。依次执行下面的命令:

#mkdir etc

#cd etc

#gedit inittab

在initab文件下输入下面的内容:


保存,退出。

到此,一个最小的根文件系统制作完成了。启动结果如下:


总结:linux要想正常启动所需的根文件系统里面的内容主要就这几个。为什么是这几个,通过阅读linux内核的kernel_init()函数最终跳转到的init_post()函数可以知道。init_post()函数的执行,需要这些文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值