GNU/Linux >> Linux の 問題 >  >> Ubuntu

debootstrapを使用してUbuntuでchroot環境をセットアップします

Chroot

Chroot OS内に分離された環境をセットアップする方法を提供します。この環境では、特定のアプリケーションをシステムの他の部分と対話することなく実行できます。刑務所とも呼ばれ、安定性やセキュリティなどのさまざまな懸念のためにシステムに直接インストールされない可能性のあるアプリケーションのテスト環境を作成するためによく使用されます。

chroot環境での32ビットアプリケーションの実行64ビットubuntu

chrootはアプリケーションを別の環境に分離するため、64ビットOS環境内で32ビットアプリケーションを実行するためにも使用されます。現在、ほとんどのOSとアプリケーションはデスクトップとサーバーの両方で64ビットです。

ただし、さまざまな制限により、アプリケーションを64ビットに移行できないシナリオがあります。これは、大規模なレガシーアプリケーションが長期間実行されている組織で発生します。このようなアプリケーションを実行し続けるには、32ビットOSをインストールするか、64ビットOSインストール内に32ビット環境を作成する必要があります。

chroot環境

chroot環境は、ホストとは異なるオペレーティングシステムを実行して、システムに分離されたいわゆる「jail」を作成する方法です。つまり、別のオペレーティングシステム内で実行されているオペレーティングシステムです。技術的には、ユーザーは一時的にルートディレクトリ(通常は/)を別のルートディレクトリ(この例では/ srv / chroot)に変更します。

すべてのUnixベースのオペレーティングシステムでは、ルートディレクトリはファイルシステムツリーの最上位にあり、アプリケーションは上位のファイルまたはディレクトリにアクセスできません。したがって、新しい、異なるルートがあり、それに変更されて、アプリケーションが実行されます。そこでは、ホストシステムの残りの部分から分離されています。

このアプローチには多くの利点があります:

-  Test applications without the risk of compromising the entire host system.
-  From the security point of view, whatever happens in the chroot environment won't affect the host system (not even under root user)
-  A different operating system running in the same hardware

この場合、この機能を利用して、32ビットアプリケーションを64ビットホストでネイティブに実行します。

chroot環境をセットアップするために必要なパッケージはdebootstrap およびschroot 、ubuntuリポジトリで利用できます。 schrootコマンドは、chroot環境をセットアップするために使用されます。

デブートストラップ オペレーティングシステムの基本インスタンスを実行するために必要なすべての基本コマンドとバイナリを含むディレクトリに、Debian(またはdebianベース)システムの新しい新しいコピーをインストールできます。

chrootコマンドを実行するだけで、rootとして直接chrootできますが、通常のユーザーはこのコマンドを使用できません。 シュルート 同じメカニズムを使用して通常のユーザーがchrootにアクセスできるようにしますが、権限を確認し、追加のファイルシステムやその他の構成タスクのマウントなど、chroot環境の追加の自動セットアップを許可します。

この自動セットアップは、セットアップスクリプトのアクションを通じて実行されます。このスクリプトは、以下で説明するように、必要なアクションを実行するためにカスタマイズおよび拡張できます。

Ubuntu12.04でこの機能を実装する手順は次のとおりです。

1。パッケージをインストールします:

最初のステップは、apt-getを使用してパッケージをインストールすることです:

$ sudo apt-get install debootstrap
$ sudo apt-get install schroot

2。 schroot構成を作成します:

構成ファイルのニーズに合わせてschrootを構成する必要があります。

chrootの短い名前を選択してください。exact_i386を使用しました:

$ sudo gedit /etc/schroot/chroot.d/precise_i386.conf

次に、次の例のように構成を続行します。

[precise_i386]
description=Ubuntu 12.04 Precise for i386
location=/srv/chroot/precise_i386
personality=linux32
root-users=bob
type=directory
users=alice,bob,charlie

上記の例の構成パラメーターの値を、システムに合うように変更します。

location - This should be a directory that is outside of the /home tree. 
The latest schroot documentation recommends /srv/chroot.

personality - Enable this line if the host system is 64-bit running on an amd64/x64 computer 
and the chroot is 32-bit for i386. Otherwise, leave it disabled, by adding "#" as first character.

root-users - These are users on the host system that can invoke the schroot program and 
get direct access to the chroot system as the root user.

users - These are users on the host system that can invoke the schroot program and 
get access to the chroot system. Your username on the host system should be here.

3。 debootstrapを使用して32ビットubuntuをインストールする

Debootstrapは、chroot環境内に最小限のオペレーティングシステムをダウンロードしてインストールします 。

リポジトリが利用可能である限り、任意のDebianベースのディストリビューションをインストールできます。私はこのユーティリティが大好きです、それはあなたに多くの時間と仕事を節約します。

この例では、chroot環境をディレクトリ / srv / chroot / precis_i386の下に配置しました。 これはchroot環境のルートディレクトリです。

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

システム全体をダウンロード、インストール、および構成するには、(帯域幅によっては)時間がかかります。最小限のインストールで約500Mかかります。

4。 chroot環境をテストします

これで、32ビットのUbuntuがインストールされているはずです。

まず、schrootコマンドを使用して使用可能なchroot環境を一覧表示します。

$ schroot -l
chroot:precise_i386

結果として、precision_i386を期待する必要があります。

それでは、通常のユーザーとして入力してみましょう

$ schroot -c precise_i386 -u root

これで、rootとしてchrootされた環境に入ります!

プロンプトメッセージが通常とわずかに異なること、および次のコマンドに新しい値があることを確認してください

lsb_release -a
uname -a

5。追加の構成

これで、機能する32ビット環境ができたので、最小限の要件と必要なすべてのライブラリとアプリケーションのインストールを完了しましょう。

$ apt-get install ubuntu-minimal

これにより、最小限のubuntuインストールの必要なパッケージがダウンロードおよびインストールされます。

それだけです。

apt-getまたはdpkgコマンドを使用して、通常どおり、アプリケーションに必要なパッケージ、ライブラリ、および依存関係のインストールを開始できます。 chroot環境内で実行する限り、i386バージョンを取得します。

ホストシステムの場合と同様に、更新およびアップグレードできます。 /etc/apt/sources.listを編集し、必要に応じて変更します。

chroot内のユーザーのホームディレクトリはホストと共有されます。
これは、必要なアプリケーション、ドキュメント、ファイルにアクセスするために非常に便利です。

このチュートリアルを終了するには、chrootからグラフィックアプリケーションを実行するために、DISPLAY環境変数をエクスポートする必要があります。

$ DISPLAY=:0.0 ./yourapp

この記事に関する質問やコメントをお気軽に送信してください。

あなたがそれを気に入って、助けになることを願っています!!


Ubuntu
  1. Ubuntu14.04でのサーバーの初期設定

  2. Ubuntu16.04でLXCを使用してLinuxコンテナをセットアップする

  3. UbuntuとDebianでKeepAlivedを使用してIPフェイルオーバーを設定する方法

  1. Ubuntu14.04でChroot環境を設定する方法

  2. 2画面セットアップでUbuntuを使用していますか?

  3. Ubuntuでjailkitを使用してjailedシェルをセットアップする

  1. Conkyウィジェットを使用したUbuntu20.04システムモニタリング

  2. Ubuntu22.04Conkyウィジェットを使用したシステム監視

  3. Ubuntu20.04でVSFTPDを使用してFTPサーバーをセットアップする方法