web-dev-qa-db-ja.com

bindfsを使用してchroot環境とそのホストの間に共有フォルダーを作成する方法

次の問題を解決するためにbindfs(または実行可能な代替手段)を使用したいと思います。

作業中のMavenプロジェクトを含むローカルフォルダーがあります。ただし、chroot環境でしかビルドできません(仮想化が遅すぎます)。しかし、これは開発環境であるため、IDE (ユーザー権限付き)。

ここではbindfsが役立つと思いますが、その方法がわかりません。

編集:

明確にするために:私は(ルートとして)試しました

mount -o bind /path/to/my/project /path/to/chroot/mountpoint

そして

bindfs -u myuser -g users -p +rw /path/to/project /path/to/chroot/mountpoint
1

追加のディレクトリツリーをchrootで使用できるようにすることは、バインドマウントの一般的な使用例です。あなたの場合、メインシステムと開発環境に同じホームディレクトリを置くことはおそらく理にかなっています。ルートアクセス権があり、Linuxを使用している場合は、Linuxバインドマウントを使用できます。

mount --bind /home /path/to/development/environment/home
chroot /path/to/development/environment

Bindfsは追加のレイヤーであるのに対し、bindマウントは元のレイヤーと同等であるため、バインドマウントはbindfsよりも高速です。ハードリンクがファイルに対して行うことをマウントします。

schroot を使用することをお勧めします。これは、chrootで動作するシステムを作成するための少しの自動化です。自動化するものの1つは、バインドマウントです。もともとは、Debianシステム上にクリーンな開発環境をセットアップするという現在行っていることのほとんどを目的として開発されました。

バインドマウントの詳細、特に「jailへのマウント」と「別のディストリビューションの実行」のセクションについては、 バインドマウントとは を参照してください。

Bindfsの意味がわかりません。mount -o bind(オプション)を知っているだけです。

Sudo mount -o bind /some/path/in/the/rootfs local/path
0
ikrabbe