Chroot 进入不同的架构?

Zep*_*hyr 6 chroot cpu-architecture

我有一个将用于 ARM 处理器的文件系统映像,但我想先在上面安装一些东西,比如桌面等。所以我想在我的 Linux 机器上安装文件系统,然后从那里 chroot 到它,并从该系统在其上安装东西。这是可能的,还是 i386 和 ARM 软件之间的差异会阻止我?

如果可能,我该怎么做?只是尝试 chroot [pathtorootfs] 会给出一个关于无法找到 bash 的错误。

Ste*_*itt 6

您可以使用QEMUbinfmt_misc. 在具有透明支持的发行版(例如使用 Debian 衍生版binfmt-support)上,这很容易:

  1. 安装binfmt-support在主系统上;
  2. qemu-user-static在主系统上安装 QEMU 的静态用户模式二进制文件(在 Debian 衍生版本上);
  3. 将适当的模拟器复制到您的 chroot 中.../usr/bin(在您的情况下,可能是qemu-arm-static);
  4. chroot 进入你的系统。

这是否可取是值得商榷的;它肯定经常用于为小型 ARM 系统设置 SD 卡。不管你做什么chroot,除了上面的 QEMU 二进制文件之外,你应该绝对确保只将 ARM 二进制文件复制到你的. 否则一旦你用它启动你的 ARM 设备,你的系统将无法工作。

这一切都是由其他的构建工具,如支持相当不错debootstrap,并schroot作为记录例如伊恩·坎贝尔


小智 0

不,这行不通。你必须交叉编译你想要使用的软件;请参阅Cross Linux From Scratch或在目标架构/计算机上运行的系统内安装软件包并使用命令行。