環境:
- Virtualbox 仮想マシンの Debian 提示
- ゲストとコンテナでルートアカウントを使用する
- 仮想マシン内部のlxcコンテナ
- btrfsのlxcコンテナルートファイルシステム
- VMゲストで実行するとうまく機能しますが、コンテナでは機能しません。
- コンテナとデフォルトのbtrfsファイルシステムに存在するフォルダで実行すると正常に動作します。
- 新しいサブディレクトリのコンテナで実行すると失敗する(デフォルトではデルタ)
ruby-buildからRubyをインストールしようとすると、奇妙な問題が発生します。インストールプロセス中に25,000行を超える構成スクリプトを実行し、以下を実行します。
mkdir d
ln -s f d
rm d/f
rmdir d
以降、現在のディレクトリハンドルは古くなっており、「ls」を実行すると次のような結果になります。
ls: cannot open directory .: Stale file handle
少し判断しようとした後、コンテナ内でのみ発生し、ベースイメージに存在しないフォルダで実行した場合にのみ発生することがわかりました。
たとえば、デフォルトイメージにはすでに/rootがあるため、/rootで4つのコマンドを実行すると正常に動作します。ただし、/root/somesubdir で実行すると失敗します。 /tmp と /opt でも同じことが起こります (/mount は 1 つだけあり、/tmp または /opt に特別なものはありません)。 /tmp または /opt では正常に動作しますが、特定のサブディレクトリに作成した場合は動作しません。
/run(tmpfs マウント) でコマンドを実行すると、コンテナのサブディレクトリで正しく実行されます。
これは私のマウントです。
Filesystem 1K-blocks Used Available Use% Mounted on
/var/lib/lxc/base_container/rootfs 37747708 20436096 16331024 56% /
udev 10240 0 10240 0% /dev
tmpfs 4097824 12 4097812 1% /dev/shm
tmpfs 4097824 106600 3991224 3% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 4097824 0 4097824 0% /sys/fs/cgroup
私はこれが生成されるd / fファイルの珍しい点だと思います。それ自体への循環シンボリックリンクです。
何が間違っているのか、解決策のアイデアはありますか?