debian GNU Linux chroot Memo
出典: 有限会社クラフト 技術情報
目次 |
chrootとは
- chrootは、任意のディレクトリに、もうひとつのシステム環境を構築すること。
- アプリケーション専用のシステム環境や、試験環境を用意したい場合に使用する。
- chroot配下では、ファイルは共有しないが、プロセスやネットワークは共有するので注意すること。以下一例。
- 権限があれば(例えばroot)、他のchroot配下のプロセスがkillできるので注意する必要がある。
- ネットワークアプリケーション(例えばapache)で、待ち受けポート番号(apacheだとデフォルト80)が、他のchroot配下のアプリケーションと衝突する場合があるので、ポート番号の変更が必要な場合がある。
設定手順
sudoについて
sudoの設定を行っていない場合は、"su -"でスーパーユーザー(root)になっておけば、以下で出てくる"sudo"は入力は必要はない。(事後でも構わないのでsudoの設定をされることを強く勧める)
cdebootstrapインストール
cdebootstrapインストールする
sudo apt-get install cdebootstrap
chroot別の専用ユーザー作成
必要に応じてchroot別に専用ユーザーを作成する
sudo addusr 追加ユーザ名 sudo password 追加ユーザ名
chroot用ディレクトリ準備
chroot環境を作成するディレクトリを作成する
sudo mkdir -p chroot用ディレクトリ sudo chown chrootユーザ名:chrootグループ chroot用ディレクトリ
debootstrapで初期化する
debootstrapで初期設定する(10分ぐらい必要で、最初の数分は何も表示されないので注意。待つこと。) 今回はターゲットを"sarge"とした。woody/sid等も指定できる。指定可能なターゲット一覧は、/usr/share/cdebootstrapにある。
sudo cdebootstrap sarge chroot用ディレクトリ
初期設定
親から子へ必要なファイルのコピー
cp /etc/resolv.conf chroot用ディレクトリ/etc/ cp /etc/hosts chroot用ディレクトリ/etc/hosts cp /etc/apt/sources.list chroot用ディレクトリ/etc/apt/sources.list
chroot配下で初期設定作業実施
chroot chroot用ディレクトリ /bin/sh <== chroot配下に入る
mount -t proc none /proc
su -
export TERM=vt100
apt-setup <== apt-line の設定
apt-get update
apt-get upgrade
shadowconfig on <== shadow パスワードを有効に
passwd <== root パスワードをつけておく
tzsetup <== タイムゾーンの設定
apt-get install locales <== ロカール関連の調整をする
<== (再度実行する場合はdpkg-reconfigure locales)
dpkg-reconfigure exim4-config <== メールサーバの再設定
umount /proc <== ログアウト準備
exit <== ログアウト
使用例
親環境からchroot内の/bin/echoを実行する
root=chroot用ディレクトリ chroot $root mount -t devfs devfs /dev chroot $root /bin/echo hello
