从 64 位主机 Chroot 到 32 位版本的 Ubuntu

从 64 位主机 Chroot 到 32 位版本的 Ubuntu

Xilinx webPack 10.1 需要 32 位 Linux。只有这个旧版本与他们的主板兼容。 如何使 32 位应用程序在 64 位操作系统上运行列表:

  1. 安装 32 位兼容库(ia32-libs 或 Multiarch 支持)
    我已经安装了 ia32-libs,但它仍然不起作用

  2. 32 位chroot

  3. 通过 KVM 或 VirtualBox 实现完全虚拟化不,我不想整个下学期都使用虚拟机工作,那样会很痛苦,我宁愿将我的整个计算机重新安装为 32 位操作系统;但我不想这样做。

  4. 另一个紧急选择是 getlibs getlibs根据我所见,它听起来不像是最好的选择。

因此我开始做 #2,并为 32 位 Ubuntu Lucid (10.10) 设置 chroot。也就是说我写道:

[hardy-i386]
description=Ubuntu 8.04 Hardy for i386
directory=/srv/chroot/hardy-i386
personality=linux32
root-users=leif
type=directory
users=leif

/etc/schroot/chroot.d/hardy-i386

然后我跑了:

$ sudo mkdir -p /srv/chroot/hardy_i386
$ sudo debootstrap --variant=buildd --arch i386 hardy /srv/chroot/hardy_i386 http://archive.ubuntu.com/ubuntu/

然后我跑了:

$ schroot -l

它显示了正确的 chroot,但是当我运行时:

$ schroot -c hardy-i386 -u root

我收到以下错误:

E: 10mount: error: Directory '/srv/chroot/hardy-i386' does not exist
E: 10mount: warning: Mount location /var/lib/schroot/mount/hardy-i386-80359697-2164-4b10-a05a-89b0f497c4f1 no longer exists; skipping unmount
E: hardy-i386-80359697-2164-4b10-a05a-89b0f497c4f1: Chroot setup failed: stage=setup-start

/srv/chroot/hardy-i386肯定存在。我也尝试过将所有引用替换为 hardy 到 lucid,但无济于事。我确实设置了 chrome os 环境:http://www.chromium.org/chromium-os/developer-guide它让我使用一些东西chmod

那么,有人能找出问题所在吗?

答案1

你可以尝试

linux32 ./setup

这有助于 64 位服务器上的 32 位 Teamspeak。

来自 man:(linux32 是 setarch 的别名)

   setarch  -  change reported architecture in new program environment and
   set personality flags

答案2

您的说明中有一个拼写错误,在 /etc/schroot/chroot.d/hardy-i386 上,您使用的是 /srv/chroot/hardy-i386 ,而对于 mkdir/debootstrap ,您使用的是 hardy_i386 作为目录。这解释了错误。

我刚刚修复了 /etc/schroot/chroot.d/hardy-i386 的路径,经过测试,它按预期工作。

相关内容