debootstrap,febootstrap,busybox

最近学习在Ubuntu虚拟机中利用QEMU搭建ARM64环境,其中一个重要的部分就是“制作根文件系统”,网络上有使用debootstrap和busybox制作根文件系统的方法,本篇博文记录这三者的区别

目录

1、debootstrap

2、febootstrap

3、busybox

4、debootstrap与busybox的安装

4.1 debootstrap安装(亲测)

4.2 busybox安装(未亲测)


1、debootstrap

debootstrap是debian/ubuntu下的一个工具,用来构建一套基本的系统(根文件系统)。生成的目录符合Linux文件系统标准(FHS),即包含了/boot、/etc、/bin、/usr等等目录,但它比发行版本的Linux体积小很多,当然功能也没那么强大,因此,只能说是“基本的系统”。、

2、febootstrap

fedora下(centos亦可用)有类似功能的工具:febootstrap。观察这两个工具名称,可以看到debootstrap使用debian前缀“de”,而febootstrap使用fedora前缀“fe”,bootstrap含义为“引导”,如果做过LFS的话,对它了解会比较多,而在编译gcc编译器时也有涉及到这个概念。不过debootstrap或febootstrap似乎没有表达出“引导”的意思。

3、busybox

制作根文件系统,在PC上最全面的莫过于LFS(linux form scratch,从头做一个linux系统),而嵌入式中,busybox是不二之选。当然,随着芯片的强大及一些linux发行版本的进化,也有桌面系统直接用于嵌入式领域中,比如ubuntu,就有支持硬件浮点的工具直接下载。

4、debootstrap与busybox的安装

4.1 debootstrap安装(亲测)

ubuntu默认没有安装debootstrap,安装十分简单,执行下列命令即可:

# sudo apt-get install debootstrap

使用debootstrap制作根文件系统会分成两个阶段。

debootstrap命令基本格式:

$ sudo debootstrap --arch [平台] [发行版本代号] [构建目录] [镜像地址]

1.在自己创建的工作目录下执行以下命令

$ sudo su
$ debootstrap --arch=arm64 --foreign buster linux_rootfs http://mirrors.ustc.edu.cn/debian/
  • –arch:指定要制作文件系统的处理器体系结构,比如arm64
  • buster::指定Debian的版本。buster是Debian 10系统。
  • linux_rootfs:本地目录,最后制作好的文件系统会在此目录。本实验使用“linux_rootfs”目录作为根文件系统目录
  • –foreign:只执行引导的初始解包阶段,仅仅下载和解压
  • http://mirrors.ustc.edu.cn/debian/: 国内debian镜像源地址

或者: 

sudo debootstrap --arch i386 trusty /mnt

 则构建x86(32位)平台ubuntu最新发行版14.04(代号为trusty)的基本系统,存放到/mnt目录下

请添加图片描述

请添加图片描述

2.安装软件包

 因为主机跑在x86架构上,而我们要制作的文件系统是跑在ARM64上,因此可以使用qemu-aarche64-static来模拟成arm64环境的执行环境

$sudo cp /usr/bin/qemu-aarch64-static ./linux_rootfs/usr/bin/

 下面使用debootstrap命令进行软件包的安装和配置

$ sudo chroot linux_rootfs/ debootstrap/debootstrap --second-stage

请添加图片描述

请添加图片描述

 使用chroot命令切换到刚才制作的根文件系统

请添加图片描述

4.2 busybox安装(未亲测)

1)首先准备下载一份Busybox源码:Busybox的官方源码下载路径为:

http://busybox.net/downloads/

假设我们使用的是busybox-1.28.1:

2)解压源码

tar xvf busybox-1.28.1.tar.bz2

3)进入源码目录

cd busybox-1.28.1

4)指定工具链

export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-

5)配置

make menuconfig 静态编译:

Settings --->
 [*] Build static binary (no shared libs)   

6)编译安装

make defconfig
make
make install

7)上面我们编译安装完成之后会在busybox源码目录的_install目录下生成必要的一些文件:

$ ls
bin  linuxrc  sbin  usr
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值