私は似たようなことを達成しようとしましたが、短命の答えはメソッドのセマンティクスを説明しませんでした。それは私にとっては失敗したので、unix.SEで先ほどとほぼ同じ質問をしました。コメントの後、私は自分でそれを考え出し、答えました。これは、このコンテキストに適合するように私の回答を編集したものです。この質問に賛成して、他の質問(および回答)を削除しました。
これが私がやろうとしていたことです:
事例
マウント:
/dev/sda1 on / type ext4 (rw)
/dev/sdb1 on /data type ext4 (rw)
/data/home on /home type none (rw,bind)
マウント後、ユーザー用/
のフォルダー/home/joe
がありますjoe
。他の場所がマウントされたら(/data
)ホームフォルダーの完全なセットが利用できるので、それらを所定の場所にバインドマウントします(/data/home on /home
)。フォルダー/data/home/joe
があるので、のマウントが/dev/sdb1
成功する限り、彼はのコンテンツを取得し/data/home/joe
、そうでない場合は/home/joe
(on /dev/sda1
!)にフォールバックします。
成功した場合、次の場所にバインドマウントされたものではなく、/home/joe
(on /dev/sda1
!)の元のコンテンツにアクセスするにはどうすればよい /data/home/joe
ですか?
溶液
コメントに基づいてパトリック私の質問とephemientにより溶液(ここでは受け入れ答え)上のコメント、私は以下を思い付きました。
それはです明らかにできるmount --bind
(またはmount -o bind
)親フォルダ(これは重要な部分で他の場所とすることにより、元の内容にアクセスマウントのBIND)。したがって、私の例では、次のことを試みる代わりに:
mount --bind /home/joe /home/joe/underneath
# or ...
mount --bind /home /home/joe/underneath
(つまり、すでにバインドされている場所を別の場所にマウントします)
test -d /.ROOT || mkdir /.ROOT
mount --bind / /.ROOT
mount --bind /.ROOT/home/joe /home/joe/underneath
これがパトリックのコメントの意味です
/
(ルート)に再度マウントする場合を除き、その答えは問題なく機能するはずです。
バインドマウントされた場所への親フォルダーが使用可能であれば、上記のように1つのインダイレクションがありますが、機能します。/
の親フォルダがないため、何かをバインドマウントすると、運が悪くなります/
。
mount --bind
、必要なときに必ず壊れてしまう複雑なアイデアしか得られませんでした。これはまさに私が必要とすることを行い、永久マウントとしても使用できます。ありがとう