我正在寻找一种解决方案,可以在 USB 记忆棒上安装 Ubuntu,但使其可以在 Amd64(英特尔和 AMD 处理器)以及 Arm64(例如 Raspberry Pi x64)上启动。
是否有解决方案来打包例如 2 个内核,一个用于 amd64,一个用于 arm64,并有一个“智能引导加载程序”来检测在引导时读取哪一个?
也欢迎极具创意的解决方案,不用于生产目的,仅用于方便测试
答案1
旧的 RPi 计算机只能从 SD 卡启动。我不了解较新的 RPi 硬件和 BIOS,而且我从未在任何其他类型的计算机上使用过 ARM 系统。
所以我不太了解 ARM 计算机的启动。但是下面的方法可能如果 ARM 启动不干扰 PC 计算机的 UEFI 模式,则可以在 USB 驱动器和/或 SD 卡中工作:
将 ARM(例如 RPi)的(压缩)映像文件刷入目标驱动器(USB 闪存盘或 SD 卡)。检查其是否正常工作。
编辑分区表以获得足够的驱动器空间用于 Ubuntu 的 amd64 系统(可能占整个驱动器空间的一半左右)。我建议您使用 FAT32 文件系统和 EFI 标志的小分区(可能 512 MB)为 UEFI 模式做准备,并将剩余的未分配空间用作 ext4 文件系统的分区。
然后(从 Ubuntu amd64 实时系统启动时),将 Ubuntu 安装到为此目的创建的目标驱动器(ext4 文件系统)中。
如果计算机中安装了 UEFI 模式的 Linux 或 Windows 系统,而您将其安装到目标驱动器中,则可能会出现问题,因此您可能需要移除、断开连接或以其他方式禁用内部驱动器,以便将 EFI 系统安装到目标驱动器中(而不是自动放入内部驱动器中)。使用标准 Ubuntu 桌面和大多数 Ubuntu 家族版本使用的安装程序 Ubiquity 时会发生这种情况。但较新的 Lubuntu 使用 Calamares 安装程序,它不受该错误的影响,因此如果您无法或不想禁用内部驱动器,请安装 Lubuntu 20.04.4 LTS 或 22.04 LTS。
最后,请分享您的结果,无论结果如何(好或坏)。