如何在 x86-64 机器上制作适用于 arm64 机器的 ubuntu 安装 iso 文件?

如何在 x86-64 机器上制作适用于 arm64 机器的 ubuntu 安装 iso 文件?

我正在尝试在 qemu 虚拟机上安装 ubuntu 18.04,该虚拟机是 qemu 的 armvirt机器的修改版本。我检查了一下,我可以virt按照指示在 arm 机器上安装 ubuntu 18.04这里,一个非常有用的页面。
但是当我尝试在经过修改的机器上安装它时,它失败了,所以我想调试(遵循)ubuntu 安装程序,如果可能的话。
我想我需要访问 ubuntu 安装的源代码或脚本数据,并发现这个有趣的页面用于制作 ubuntu .iso 文件。(如果我可以在调试模式下编译一些可执行文件并按照它进行操作,我可能能够发现问题所在。)
它告诉我使用 debootstrap 命令将所有引导文件提取到一个目录中。命令如下。

sudo debootstrap --arch=$ARCH $RELEASE chroot

我尝试为 ubuntu 20.04(focal fosa)提取,因为我的最终目标是在我的虚拟机上安装 20.04。 因此我尝试了一下,sudo deboostrap --arch=arm64 focal chroot它将引导数据提取到目录chroot。 该指南指示我通过使用命令输入 bash 在 chroot 目录内安装更多软件包sudo chroot chroot。 但很快我发现,bash当我的主机是 amd64 时,chroot 目录内的可执行文件是用于 arm64 的。 我几乎可以肯定我需要使用 arm64 计算机(我确实有一台)在 chroot 目录内安装 ubuntu 软件包,该计算机可以在 chroot 文件系统中执行 bash 和其他 arm64 二进制文件。 我的理解正确吗? 而且这个页面看起来很旧(谈论的是 2011 年或 2012 年的版本)。 谁能告诉我更新的信息? 谢谢!

答案1

要创建 ARM64 可用的 chroot,您必须将特殊的 QEMU 静态虚拟化可执行文件复制到其中。

使用以下命令:

sudo apt-get install debootstrap binfmt-support qemu-user-static

sudo debootstrap --arch=arm64 focal chroot
sudo cp -av /usr/bin/qemu-aarch64-static chroot/usr/bin
sudo chroot chroot

并在 chroot 内继续。


有用的阅读链接:

相关内容