当使用Busybox-1.2.0制作根文件系统

交叉编译器为3.3.2

make-3.8.1

STEP 1:

创建根文件系统目录,主要包括以下目录/bin,/etc,/dev,/mnt,/sbin,/usr。

STEP 2:

升级make到3.81版本,用RH9自己带的make 3.79会出错

进入make-3.81目录,执行:# ./configure    # make   #make install

会把make安装到/usr/local/bin目录下,要使新make立即生效,要设置环境变量

PATH=/usr/local/bin:$PATH。设置完成后,就可以编译Busybox了。

STEP 3:

进入busybox-1.2.0目录,执行# make defconfig

执行# make menuconfig

Busybox Setting -----> Build Options----->

选择上Build BusyBox as a static binary (no shared libs)

Do you want to build BusyBox with a Cross Compiler?

指定交叉编译器为

(/usr/local/arm/3.3.2/bin/arm-linux-)Cross Compiler prefix

Installation Options ----->

选择上 Don’t use /usr

设置Busybox installation prefix为../rootfs即安装目录.

在Shells中,选择Choose your default shell为ash.

保存退出

STEP 4:

# make    # make install

STEP5:

编译tinylogin-1.4。进入tinylogin-1.4目录,修改Makefile文件如下:

DOSTATIC = true

USE_SYSTEM_PWD_GRP = false

USE_SYSTEM_SHADOW = false

CROSS = /usr/local/arm/3.3.2/bin/arm-linux-

STEP 6:

执行# make PREFIX=../rootfs install

STEP 7:

进入根文件系统rootfs的etc目录,执行如下操作:

拷贝Busybox-1.2.0/examples/bootfloopy/etc/*到当前目录下。

# cp –r ../../busybox-1.2.0/examples/bootfloopy/etc/* ./

拷贝/etc/passwd, /etc/group, /etc/shadow到当前目录下。

# cp /etc/passwd ./

# cp /etc/group ./

# cp /etc/shadow ./

修改inittab,把第二项改为::respawn:-/bin/login

修改profile,加入PATH环境变量:exportPATH=/bin:/sbin:/usr/bin:/usr/sbin

对以下三个文件修改,只保存与root相关的项,根据具体情况内容会有所不同。

修改passwd为root:x:0:0:root:/root:/bin/sh,即只保存与root相关项,而且最后改成/bin/sh。

修改group为root:x:0:root

修改shadow为root:$1$x9yv1WlB$abJ2v9jOlOc9xW/y0QwPs.:14034:0:99999:7:::

STEP 8:

制作cramfs镜像,下载到实验箱上就可以引导起来了。

# mkcramfs rootfs rootfs.cramfs

用BusyBox-1.1.3制作根文件系统

cross-2.95.3

STEP 1:

# mkdir rootfs

# cd rootfs

#mkdir bin dev etc home lib mnt proc sbin sys tmp root usr

#mkdir mnt/etc

#mkdir usr/bin usr/lib usr/sbin

STEP 2:

进入BusyBox解压后的目录,配置BusyBox

# make menuconfig

Busybox Settings >

General Configuration >

[*] Support for devfs

Build Options >

[*] Build BusyBox as a static binary (no shared libs)

/*将busybox编译为静态连接,少了启动时找动态库的麻烦*/

[*] Do you want to build BusyBox with a Cross Compiler?

(/usr/local/arm/2.95.3/bin/arm-linux-)Cross Compiler prefix

/*指定交叉编译工具路径*/

Init Utilities >

[*] init

[*] Support reading an inittab file

/*支持init读取/etc/inittab配置文件,一定要选上*/

Shells >

Choose your default shell (ash) >

Coreutils >

[*] cp

[*] cat

[*] ls

[*] mkdir

[*] echo (basic SuSv3 version taking no options)

[*] env

[*] mv

[*] pwd

[*] rm

[*] touch

Editors >

[*] vi

Linux System Utilities >

[*] mount

[*] Support mounting NFS file systems

[*] umount

[*] Support loopback mounts

[*] Support for the old /etc/mtab file

Networking Utilities >

[*] inetd

/*

*支持inetd超级服务器

* inetd的配置文件为/etc/inetd.conf文件,

*/

# make TARGET_ARCH=arm CROSS=arm-linux-\

PREFIX=../rootfs/ all install

//执行上面的命令会把相关文件安装到我们的根文件系统rootfs

编译过程中若出现如果出现找不到内核版本号的编译错误(如:编译libb/loop.c时提示找不到 linux/version.h 文件,也可以拷贝3.3.2交叉编译器下的version.h文件。),可以把内核源码中的version.h文件拷贝到交叉编译器的包含文件的linux目录下。另外也可以用3.3.2交叉编译器,但是要修改loop.c内容,把#include的路径写为#includesys-include/linux/version.h

# mkcramfs rootfs rootfs.cramfs

将rootfs.cramfs烧写到实验箱.运行即可启动.

linux 制作box文件夹,用busybox制作自己简易的根文件系统相关推荐

  1. 利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具

    利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具 独立观察员 2020 年 12 月 26 日 前一段看到微信公众号 "码农读书" 上发了一篇文章&l ...

  2. ftp服务器文件在哪,linux ftp服务器文件夹在哪

    linux ftp服务器文件夹在哪 内容精选 换一换 已获取到Android SDK镜像包,并通过MobaXterm工具上传到服务器上的/home目录下.获取方法请参见获取软件包.添加完成后如下图所示 ...

  3. Linux 下各文件夹的结构说明及用途介绍,看完这篇就秒入门了

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  4. linux遍历文件夹下所有文件大小,Linux系统遍历文件夹 获取文件大小的操作(C语言实现)...

    /** linux 下遍历文件夹以及获取文件大小 */ #include #include #include #include /** 获取文件大小,但是文件大小不能超过2G ,该方法不推荐使用 */ ...

  5. Linux下各文件夹的结构说明及用途介绍(转载)

    linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...

  6. linux挂载一个文件夹,linux挂载一个文件夹到另一个文件夹

    linux 挂载一个文件夹到另一个文件夹 Most Linux and Unix file systems don't allow hard links to directories (except ...

  7. linux mount挂载命令(将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来)

    看海康摄像头启动脚本有一些mount命令,不知道干啥用的... mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹, ...

  8. linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...

    1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...

  9. linux: 批量修改文件夹及文件夹下文件的名字

    假如我有一个文件夹,文件夹下面有一些文件,如下所示: Gideon/gideon_lisha/Gideon_samuel/Gideon_nathan.xml Gideon/lisha_gideon/G ...

最新文章

  1. Springboot+Thymeleaf+layui框架的配置与使用
  2. C语言函数strstr 分析及实现
  3. javascript与三角函数之二:圆周运动
  4. Maven(四):定制库到Mave本地资源库 (Kaptcha)
  5. @cacheable 设置过期时间_缓存面试三连击——聊聊Redis过期策略?内存淘汰机制?再手写一个LRU 吧!...
  6. JavaScript 用typeof来判断是否是对象的弊端
  7. JavaScript 和 Java 有关系吗?
  8. android图片选择器实现说明
  9. python破解百度云限速_python实战小项目,多线程百度云盘下载,突破限速,超越迅雷超高速下载...
  10. 海德汉heidenhain开放式光栅尺AKLIDA27/28/47/48选型资料
  11. 如何在window和mac共用一个移动硬盘
  12. uniapp地图轨迹回放
  13. Java 微服务实践
  14. MySQL中单引号、双引号和反引号的区别
  15. 【Linux入门指北】Linux实验综合训练
  16. MIUI系统ROM固件,小米手机所有历史全部机型合集
  17. 组播IGMP-原理介绍+报文分析+配置示例
  18. 如何给html文件加背景图片,怎么在文件夹中设置背景图片
  19. Java扑克牌中的顺子
  20. 车流量检测实现:多目标追踪、卡尔曼滤波器、匈牙利算法、SORT/DeepSORT、yoloV3、虚拟线圈法、交并比IOU计算

热门文章

  1. Cloud一分钟 | 成本大增致谷歌财报蒙尘;Gartner发数据库魔力象限:阿里云成为黑马...
  2. 五阿哥钢铁电商资深运维工程师手把手教你这样玩企业组网
  3. linux内存管理的主要概念是虚拟内存,有关linux内存管理机制的相关内容,linux物理内存和虚拟内存,深入了解Linux内存运行 ......
  4. 中油即时通信电脑版_市场营销之即时通讯营销
  5. cannot convert value of type ‘org.codehaus.xfire.spring.editors.ServiceFactoryEditor
  6. 策略模式+工厂模式(反射)+枚举代替 大量 if..else if..
  7. RabbitMQ集群原理介绍
  8. 听障学生计算机课本,面向听障学生程序设计的计算机教学辅助系统
  9. c语言程序设计的日志,C语言程序设计教学日志.docx
  10. html中给div设置的属性怎么样才能拿得到_前端基础高频面试题(更新中)