我正在尝试在 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 内继续。
有用的阅读链接: