Linux ファイルシステムでループを作成するにはどうすればよいですか? Linux ファイルシステムの有向非巡回グラフ (DAG) プロパティを壊したいと考えています。これは可能ですか?Ubuntu にスクラッチボックス クロス コンパイラをインストールしたときに、この状態を 1 回見たことがあります。
今は再現する方法がわかりません。
Linux ファイルシステムでループを作成するにはどうすればよいですか? Linux ファイルシステムの有向非巡回グラフ (DAG) プロパティを壊したいと考えています。これは可能ですか?Ubuntu にスクラッチボックス クロス コンパイラをインストールしたときに、この状態を 1 回見たことがあります。
今は再現する方法がわかりません。
これまでのすべての答えは、ループバックデバイスへのマウントに関するものであり、バインドマウントを使用してループを作成することではないようです。
あなたがおそらく発見したように、
$ mkdir -p test/test
$ mount --bind test test/test
にのみアクセスできtest/test/test
、それ以上はアクセスできません。でもない
$ mount --rbind test test/test
再帰的なbind-mountは、ソース上の既存のマウントを効果的に見つけて、それらをターゲットにバインドするため、機能します。
バインドマウントはマウントポイントを越えないため、要求したことは不可能です。ファイルシステムループを本当にシミュレートしたい場合は、localfsのような疑似バインドマウントを使用してみてください。私は自分で試したことがありません。それ自体が提供するファイルシステムを読み込もうとすると、ロックする可能性があります。ちょうど今、NFSツリーをエクスポートしてcrossmnt
それ自体の下にマウントしようとしましたが、同様の理由で失敗します。
ゼロから作成することもできます。
まず、画像ファイルを作成して初期化します
dd if=/dev/zero of=/tmp/loop.img bs=1024k count=$IMG_SIZE
次に、選択したFSタイプを使用して有効なパーティションにします
mkfs.ext3 -F /tmp/loop.img
新しいイメージをマウントします
mkdir -p /mnt/image
mount /tmp/loop.img /mnt/image -o loop
これで、新しいイメージでファイルとディレクトリを作成/コピーできます。