标签:qemu

跨平台更新制作rootfs

在x64( pc /ubuntu 18.10 )跨平台编译arm64 的debian rootfs完整镜像,通常地,更新rootfs都是直接放在目标机上面,制作更新好rootfs后再拷贝回编译机。

对于目标机平台,通常拷贝rootfs需要非运行时环境,所以例如在emmc的rootfs需要通过sd卡系统启动去执行拷贝操作。

同时拷贝/压缩还需要关心文件的uid、gid、用户名、组名、执行权限。稍不注意,功亏一篑。

这里通过介绍qemu虚拟跨平台制作、更新rootfs。

如我们知道,debootstrap用以通过源制作debian/ubuntu 的基础rootfs。通常来说其分为下载(--foreign)和安装配置(--second-stage)两个阶段。对于跨平台的第一阶段下载只需要通过--arch置顶平台下载对应deb包,但是对于包安装则需chroot后在编译机上面虚拟目标机的deboosttap 执行安装。

如上讨论,这里我们在x64 平台下载arm64(aarch64)平台rootfs并且尝试通过chroot实现初始用户、包安装重等操作。

  • 安装依赖包;

  • 下载归档keyring

  • 通过源下载rootfs

deiban jessie 如上下载安装可能会因为包缺失提示下载失败,这里搜索寻找替换了老的软件源。

chroot 是linux 用以切换rootfs的一个应用,跨平台操作通过需要切换的rootfs ...