目标平台:ARM64
制作平台:PC、x86_64、ubuntu18.04虚拟机
一、获取源码
源码地址:Index of /ubuntu-base/releases
在此选择18.04.5.
二、开始构建文件系统
2.1 解压根文件系统
创建一个文件夹并解压下载的ubuntu-base-18.04.5-base-arm64.tar.gz。
mkdir ubuntu18.04-arm64-rootfs
cd ubuntu18.04-arm64-rootfs
mkdir rootfs
cd rootfs
tar -vzxf ubuntu-base-18.04.5-base-arm64.tar.gz
mv ./ubuntu-base-18.04.5-base-arm64.tar.gz ../
2.2 安装qemu
在PC机的Ubuntu下安装qemu工具:
sudo apt-get install qemu-user-static
然后将安装的qemu-user-static拷贝到我们新建的根文件系统的文件夹下:
sudo cp /usr/bin/qemu-arm-static ./usr/bin/
2.3 设置软件源
先将PC Ubuntu主机下的DNS配置文件拷贝过来:
sudo cp /etc/resolv.conf ./etc/
然后在根文件系统文件夹下的/ubuntu_rootfs/etc/apt/sources.list文件后面添加软件源,如下为中科大的软件源,直接添加失去即可:
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
vim ./etc/apt/sources.list
在ubuntu18.04-arm64-rootfs目录下创建mount.sh挂载脚本文件,输入如下内容:
#!/bin/bash
echo "MOUNTING"
sudo mount -t proc /proc /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/proc
sudo mount -t sysfs /sys /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/sys
sudo mount -o bind /dev /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/dev
sudo mount -o bind /dev/pts /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/dev/pts
sudo chroot /home/fenton/ubuntu18.04-arm64-rootfs/rootfs
还有unmount.sh卸载脚本文件,输入如下内容:
#!/bin/bash
echo "UNMOUNTING"
sudo umount /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/proc
sudo umount /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/sys
sudo umount /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/dev
sudo umount /home/fenton/ubuntu18.04-arm64-rootfs/rootfs/dev/pts
给予其可执行权限:
chmod 777 mount.sh unmount.sh
然后执行挂载脚本:
./mount.sh -m ubuntu18.04-rootfs/
卸载脚本
./unmount.sh -u ubuntu18.04-rootfs/
此时就可以看到进入挂在的根文件系统中