![从 64 位主机 Chroot 到 32 位版本的 Ubuntu](https://linux22.com/image/1033949/%E4%BB%8E%2064%20%E4%BD%8D%E4%B8%BB%E6%9C%BA%20Chroot%20%E5%88%B0%2032%20%E4%BD%8D%E7%89%88%E6%9C%AC%E7%9A%84%20Ubuntu.png)
Xilinx webPack 10.1 需要 32 位 Linux。只有这个旧版本与他们的主板兼容。 如何使 32 位应用程序在 64 位操作系统上运行列表:
安装 32 位兼容库(ia32-libs 或 Multiarch 支持)
我已经安装了 ia32-libs,但它仍然不起作用32 位chroot
通过 KVM 或 VirtualBox 实现完全虚拟化不,我不想整个下学期都使用虚拟机工作,那样会很痛苦,我宁愿将我的整个计算机重新安装为 32 位操作系统;但我不想这样做。
另一个紧急选择是 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 的路径,经过测试,它按预期工作。