最近才发现的神器,构建根文件系统真的太丝滑了!!!
直接要什么都从发行版仓库下载,贴个实例脚本:
#!/bin/sh
# (C) 2012-2016 Fathi Boudra <fathi.boudra@linaro.org>
# Create configuration for live-build.
# You need live-build package installed.
set -e
echo "I: create configuration"
export LB_BOOTSTRAP_INCLUDE="apt-transport-https gnupg"
lb config \
--mirror-bootstrap "http://mirrors.ustc.edu.cn/debian" \
--mirror-chroot "http://mirrors.ustc.edu.cn/debian" \
--mirror-chroot-security "http://mirrors.ustc.edu.cn/debian-security" \
--mirror-binary "http://mirrors.ustc.edu.cn/debian" \
--mirror-binary-security "http://mirrors.ustc.edu.cn/debian-security" \
--apt-indices false \
--apt-recommends false \
--apt-secure false \
--architectures arm64 \
--archive-areas 'main contrib non-free' \
--backports false \
--binary-filesystem ext4 \
--binary-images tar \
--bootappend-live "hostname=td1 username=flexmi" \
--bootstrap-qemu-arch arm64 \
--bootstrap-qemu-static /usr/bin/qemu-aarch64-static \
--cache false \
--chroot-filesystem none \
--compression gzip \
--debootstrap-options "--variant=minbase --include=apt-transport-https,gnupg" \
--distribution buster \
--gzip-options '-9 --rsyncable' \
--iso-publisher 'Linaro; http://www.linaro.org/; linaro-dev@lists.linaro.org' \
--iso-volume 'Linaro Buster $(date +%Y%m%d-%H:%M)' \
--linux-flavours none \
--linux-packages none \
--mode debian \
--security true \
--system normal \
--updates true
echo "I: copy customization"
test -d customization && cp -rf customization/* config/
echo "I: done"
下面是构建rootfs用的makefile
#!/bin/sh
# (C) 2012-2016 Fathi Boudra <fathi.boudra@linaro.org>
# Calls all necessary live-build programs in the correct order to complete
# the bootstrap, chroot, binary, and source stage.
# You need live-build package installed and superuser privileges.
BUILD_NUMBER?=1
BASEIMG=linaro-buster-alip
IMAGEPREFIX=$(BASEIMG)-`date +%Y%m%d`-$(BUILD_NUMBER)
LOGFILE=$(IMAGEPREFIX).build-log.txt
CONFIGFILE=$(IMAGEPREFIX).config.tar.bz2
LISTFILE=$(IMAGEPREFIX).contents
PKGSFILE=$(IMAGEPREFIX).packages
TARGZFILE=$(IMAGEPREFIX).tar.gz
MD5SUMSFILE=$(IMAGEPREFIX).md5sums.txt
SHA1SUMSFILE=$(IMAGEPREFIX).sha1sums.txt
all:
set -e; sudo lb build 2>&1 | tee $(LOGFILE)
if [ -f binary-tar.tar.gz ]; then \
tar -jcf $(CONFIGFILE) auto/ config/ configure; \
sudo mv binary.contents $(LISTFILE); \
sudo mv chroot.packages.live $(PKGSFILE); \
sudo mv binary-tar.tar.gz $(TARGZFILE); \
md5sum $(LOGFILE) $(CONFIGFILE) $(LISTFILE) $(PKGSFILE) $(TARGZFILE) > $(MD5SUMSFILE); \
sha1sum $(LOGFILE) $(CONFIGFILE) $(LISTFILE) $(PKGSFILE) $(TARGZFILE) > $(SHA1SUMSFILE); \
fi
clean:
sudo lb clean --purge
rm -f $(BASEIMG)-*
rm -rf config