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

Lei*_*sen 6 64-bit 32-bit chroot

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

  1. 安装 32 位兼容库(ia32-libs 或 Multiarch 支持)
    我已经安装了 ia32-libs,但它仍然无法正常工作

  2. 一个 32 位的chroot

  3. 通过 KVM 或 VirtualBox 实现完全虚拟化不,我不想下学期都在 vm 上工作,那会很痛苦,我宁愿将我的整个计算机重新安装到 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
Run Code Online (Sandbox Code Playgroud)

/etc/schroot/chroot.d/hardy-i386
Run Code Online (Sandbox Code Playgroud)

然后我跑了:

$ sudo mkdir -p /srv/chroot/hardy_i386
$ sudo debootstrap --variant=buildd --arch i386 hardy /srv/chroot/hardy_i386 http://archive.ubuntu.com/ubuntu/
Run Code Online (Sandbox Code Playgroud)

然后我跑了:

$ schroot -l
Run Code Online (Sandbox Code Playgroud)

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

$ schroot -c hardy-i386 -u root
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

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

那么,任何人都可以弄清楚问题是什么吗?

aat*_*ark 3

你可以尝试

linux32 ./setup
Run Code Online (Sandbox Code Playgroud)

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

来自 man:(linux32 是 setarch 别名)

   setarch  -  change reported architecture in new program environment and
   set personality flags
Run Code Online (Sandbox Code Playgroud)