linux 制作box文件夹,用busybox制作自己简易的根文件系统
当使用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制作自己简易的根文件系统相关推荐
- 利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具
利用 C# 中的 FileSystemWatcher 制作一个文件夹监控小工具 独立观察员 2020 年 12 月 26 日 前一段看到微信公众号 "码农读书" 上发了一篇文章&l ...
- ftp服务器文件在哪,linux ftp服务器文件夹在哪
linux ftp服务器文件夹在哪 内容精选 换一换 已获取到Android SDK镜像包,并通过MobaXterm工具上传到服务器上的/home目录下.获取方法请参见获取软件包.添加完成后如下图所示 ...
- Linux 下各文件夹的结构说明及用途介绍,看完这篇就秒入门了
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- linux遍历文件夹下所有文件大小,Linux系统遍历文件夹 获取文件大小的操作(C语言实现)...
/** linux 下遍历文件夹以及获取文件大小 */ #include #include #include #include /** 获取文件大小,但是文件大小不能超过2G ,该方法不推荐使用 */ ...
- Linux下各文件夹的结构说明及用途介绍(转载)
linux下各文件夹的结构说明及用途介绍: /bin:二进制可执行命令. /dev:设备特殊文件. /etc:系统管理和配置文件. /etc/rc.d:启动的配 置文件和脚本. /home:用户主目录 ...
- linux挂载一个文件夹,linux挂载一个文件夹到另一个文件夹
linux 挂载一个文件夹到另一个文件夹 Most Linux and Unix file systems don't allow hard links to directories (except ...
- linux mount挂载命令(将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来)
看海康摄像头启动脚本有一些mount命令,不知道干啥用的... mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹, ...
- linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...
1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...
- linux: 批量修改文件夹及文件夹下文件的名字
假如我有一个文件夹,文件夹下面有一些文件,如下所示: Gideon/gideon_lisha/Gideon_samuel/Gideon_nathan.xml Gideon/lisha_gideon/G ...
最新文章
- Springboot+Thymeleaf+layui框架的配置与使用
- C语言函数strstr 分析及实现
- javascript与三角函数之二:圆周运动
- Maven(四):定制库到Mave本地资源库 (Kaptcha)
- @cacheable 设置过期时间_缓存面试三连击——聊聊Redis过期策略?内存淘汰机制?再手写一个LRU 吧!...
- JavaScript 用typeof来判断是否是对象的弊端
- JavaScript 和 Java 有关系吗?
- android图片选择器实现说明
- python破解百度云限速_python实战小项目,多线程百度云盘下载,突破限速,超越迅雷超高速下载...
- 海德汉heidenhain开放式光栅尺AKLIDA27/28/47/48选型资料
- 如何在window和mac共用一个移动硬盘
- uniapp地图轨迹回放
- Java 微服务实践
- MySQL中单引号、双引号和反引号的区别
- 【Linux入门指北】Linux实验综合训练
- MIUI系统ROM固件,小米手机所有历史全部机型合集
- 组播IGMP-原理介绍+报文分析+配置示例
- 如何给html文件加背景图片,怎么在文件夹中设置背景图片
- Java扑克牌中的顺子
- 车流量检测实现:多目标追踪、卡尔曼滤波器、匈牙利算法、SORT/DeepSORT、yoloV3、虚拟线圈法、交并比IOU计算
热门文章
- Cloud一分钟 | 成本大增致谷歌财报蒙尘;Gartner发数据库魔力象限:阿里云成为黑马...
- 五阿哥钢铁电商资深运维工程师手把手教你这样玩企业组网
- linux内存管理的主要概念是虚拟内存,有关linux内存管理机制的相关内容,linux物理内存和虚拟内存,深入了解Linux内存运行 ......
- 中油即时通信电脑版_市场营销之即时通讯营销
- cannot convert value of type ‘org.codehaus.xfire.spring.editors.ServiceFactoryEditor
- 策略模式+工厂模式(反射)+枚举代替 大量 if..else if..
- RabbitMQ集群原理介绍
- 听障学生计算机课本,面向听障学生程序设计的计算机教学辅助系统
- c语言程序设计的日志,C语言程序设计教学日志.docx
- html中给div设置的属性怎么样才能拿得到_前端基础高频面试题(更新中)