web-dev-qa-db-ja.com

64ビットホストからUbuntuの32ビットバージョンにchroot

Xilinx webPack 10.1には32ビットLinuxが必要です。 この古いバージョンのみがボードと互換性があります。 32ビットアプリケーションを64ビットオペレーティングシステムで動作させる方法 リスト:

  1. 32ビット互換性ライブラリのインストール(ia32-libsまたはMultiarchサポート)
    私はすでにia32-libsをインストールしましたが、まだ動作していません

  2. 32ビット chroot

  3. KVMまたはVirtualBoxによる完全仮想化 いいえ、私は次の学期のすべてのvmで作業したくありません。私はしたくない。

  4. ピンチの別のオプションはgetl​​ibs 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は確かに存在します。また、すべての参照を、わかりにくい、役に立たないものに置き換えてみました。 chrome os環境をセットアップしました: http://www.chromium.org/chromium-os/developer-guide そして、chmodで何かを使用しました。

だから、誰が問題が何であるかを理解できますか?

5
Leif Andersen

試してもいい

linux32 ./setup

これは、32ビットチームが64ビットサーバーで話すのに役立ちます。

from man:(linux32はsetarchエイリアスです)

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

指示にはタイプミスがあり、/ etc/schroot/chroot.d/hardy-i386では/ srv/chroot/hardy-i386を使用していますが、mkdir/debootstrapではディレクトリにhardy_i386を使用しています。これがエラーの説明です。

/etc/schroot/chroot.d/hardy-i386でパスを修正し、テストしたところ、期待どおりに機能しました。

2
João Pinto