とうぜん伝統のchrootコマンドは存在しますが、 それをwrapするschrootパッケージなど便利なものが初めからあるので、 そちらを使うべきでしょう。 今となってはdockerでいいのでは?と反論されそうですが、 低スペックのマシンだと、やはりchrootのほうが軽い印象です
schroot をインストールする
$ sudo apt-get install schroot debootstrap
schrootのカスタマイズ
/etc/schroot/chroot.d/環境名
/etc/schroot/プロファイル
- プロファイルの部分は初めから用意されている default や desktop を使っても良いが、 母艦側の /home などもマウントされてしまったり、なんか違うので、自分でカスタマイズするべきですね
操作
[設定情報を出力する]
# schroot -i -c 環境名
[セッションをスタートする。
返り値としてセッションIDが出力されるのでメモること。あとでIDを使うから]
# schroot -b -c 環境名
[セッション内でコマンドを実行する]
# schroot -r -c セッションID -- コマンド
[セッションを停止する]
# schroot -e -c セッションID
FIX
wikiいわく、chroot内のischrootをダミースクリプトに入れ替えるべきらしいです
dpkg-divert --divert /usr/bin/ischroot.debianutils --rename /usr/bin/ischroot
ln -s /bin/true /usr/bin/ischroot
chroot側でデーモンを起動したくない場合
デフォルトではデーモンが起動します(/etc/schroot/setup.d/70services が起動させます)が、 単にビルド試験をしたいといった理由でchroot環境を作る場合デーモンは不要でしょう。 chroot環境に、ダミーの profile-rc.d を作成してください。 詳しくは wiki
[/srv/chroot/debian以下がchroot環境の場合]
# cd /srv/chroot/debian
# cat > ./usr/sbin/policy-rc.d <<EOF
#!/bin/sh
exit 101
EOF
chmod a+x ./usr/sbin/policy-rc.d
参考文献
- Debianでのchroot全般について
- schroot パッケージ