摘要:debootstrap 能够快速建立一套 Debian 或 Ubuntu 的 rootfs,并且支持多种 CPU 架构。

debootstrap 介绍

debootstrap 是基于 Debian 以及其衍生系统(包括 Ubuntu)下的一个工具,用于构建一个基本系统。我们可以将 debootstrap 看作是一个特殊的安装工具,其只需要软件源的支持,不需要使用 dpkg 或者 apt,因此可以在任意 Linux 发行版上运行 debootstarp 构建基本系统。

debootstarp 实际上是一系列的脚本,它的依赖非常少,只是强制依赖了 wget。debootstrap 的工作原理实际上是将包解压到指定目录,然后可以 chroot 进入这个系统,进行相应的定制。另外 debootstarp 也可以构建其他架构的系统,例如在 AMD64 上构建 ARM64 的基本系统。debootstrap 有个大抵相当的工具 cdebootstrap,使用 c 语言写的,比debootstarp 体积更加小。

安装 debootstarp

debootstrap 在任何 Debian 系统及其衍生版本的 Linux 中都可以直接安装得到,但要注意如果要新版本的系统,需要下载比较新的 debootstrap 包。

  • Debian / Ubuntu
    1
    
    $ sudo apt-get install debootstrap
    

debootstarp 命令的使用

一般使用 debootstrap 命令的格式如下:

1
$ sudo debootstrap --arch=<ARCH> --include=<PACKAGES> <VERSION> <DIRECTORY> <MIRROR>

例如,利用 debootstrap 制作一个 Ubuntu 16.04 的 arm64 基础系统,并且包含 vim 包:

1
$ sudo debootstrap --arch=arm64 --include=vim xenial ./xenial-arm-rootfs http://ports.ubuntu.com/ubuntu-ports

更多使用方式参考 debootstrap man page

注意:debootstrap 仅能从一个软件仓库获取软件包,假如你需要从多个软件仓库安装或合并软件包用以建立 rootfs,或者你希望自动定制 rootfs,那么可以使用 multistrap。

Additional Information

使用 debootstrap 构建基本系统一般是我们工作的第一步,后面我们可以 chroot 到这个基本系统中,安装一些包,进行一些系统配置。 使用 debootstrap 安装一个完整的系统可以参考这篇文章。 使用 debootstrap 制作 docker 镜像可以参考 docker 文档

参考文章:

[1]. Debian 上 Debootstrap 的 wiki 文档;
[2]. Ubuntu 系统 debootstrap 的使用;
[3]. 使用 debootstrap 建立完整的 Debian 系統;