手动构建rootfs及文件功能分析

手动构建rootfs及文件功能分析

这份笔记记录了从0开始构建一个最小根文件系统的流程,从而达到分析其目录结构及文件的目的,基于的kernel版本为2.6.35

1.结构总览

如图

  • /linuxrc:由busybox安装,就是kernel执行的init程序,本质是指向busybox的符号链接
  • /bin:由busybox安装,里面是通用命令,如ls
  • /sbin:由busybox安装,里面是root权限命令,如shutdown
  • /usr:由busybox安装,里面是共享、开放的内容(意思是任意用户都可以使用)
  • bin:由busybox安装,里面是共享、开放的命令,如whoami
  • sbin:由busybox安装,里面是不重要的系统命令,如deluser
  • /etc:里面是各个程序的配置文件,众多程序在运行时需要根据配置文件来指导它们的行为

    • inittab:busybox的配置文件,busybox运行时将根据/etc/inittab来指导自己的行为,可以用它实现应用程序的开机自启动,此外它还调用了rcS
    • fstab:配置文件,被busybox的mount -a 指令读取,指定了系统初始化时应该挂载的文件系统
    • profile:一个脚本程序,被busybox调用,作用是在控制台中显示用户的名字
    • passwd:配置文件,里面记录了用户和密码的设置
    • shadow:配置文件,里面是所有用户的密码(加密过的)
    • init.d:此目录包含了很多系统服务启动时需要运行的脚本
      • rcS:控制台初始化程序,在进入控制台前被busybox调用执行,可以利用它实现应用程序的开机自启动
  • sysconfig:

    • HOSTNAME:配置文件,里面存放用户的名字,会被rcs读取
  • /proc:系统的虚拟文件系统的挂载点,要自己创建,里面是虚拟的文件,表示了系统的一部分状态

  • /sys:系统的虚拟文件系统的挂载点,要自己创建,里面是虚拟的文件,非常全面的表示了系统状态
  • /tmp:系统的虚拟文件系统的挂载点,要自己创建,用于存放临时生成的文件,一般是空的
  • /var:系统的虚拟文件系统的挂载点,要自己创建,用于存放一些数据
  • /dev:系统的虚拟文件系统的挂载点,要自己创建,用于存放设备文件
  • /lib:里面存放了很多库文件,应用程序会进去加载需要的动态链接库

2.安装busybox

可以从官网https://busybox.net/downloads/ 下载到源码,我们使用2015年的1.24.1版本。busybox这个项目借鉴了很多kernel的地方,比如配置部分和Makefile等,我们只要按照kernel的方法操作它就行了

  • 进入源码目录,打开Makefile检查架构和交叉编译工具链,利用/在vim中搜索CROSS_COMPILE和ARCH,将其改为
ARCH = arm
CROSS_COMPILE = /usr/local/arm/arm-
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值