シャドウマウントポイントにアクセス

シャドウマウントポイントにアクセス

マウントポイント /mnt/sub別の取り付けポイントによって覆われています/mnt。マウントされたファイルシステムは常にアクセス可能ですか?

ルートアクセスが提供されます。システムはかなり新しいLinuxです。

例のシナリオ:ルートを含むブランチへのアクセス

デフォルトの作業順序は次のとおりです。

mount device1 /mnt/sub
mount device2 /mnt

ファイルがある場合は、/mnt/subその後にファイルが続きます。device2問題はそれにアクセスする方法ですdevice1

一部のデバイスは2回取り付けることでmount device1 /elsewhere動作できます。ただし、これはすべてのデバイス、特にFUSEファイルシステムでは機能しません。

これは以下に関連しています。すでに扱っています状態サブディレクトリマウントポイントによってマスクされますが、サブディレクトリのマウントポイント自体が表示され、バインドマウントは明確なビューを生成します。上記の例では、ルートファイルシステムのディレクトリをmount --bind / /elsewhere見てみましょう。しかし、この質問はのファイルシステムにアクセスすることです。/mnt/sub/elsewhere/mnt/subdevice1

答え1

# unshare --mount  # this opens a sub-shell
# cd /
# umount /mnt

好きなように

# exit  # close the sub-shell

答え2

遅すぎるかもしれませんが、通常は次のようにします。

  • 元のデバイスを別のディレクトリに再マウントします。
  • 新しいディレクトリには、サブインストールではなく元のデバイスのフォルダのみが含まれます。
  • これはインストール順序、カーネルネームスペースのサポートなどには依存しません!
  • 触ったり動かしたりする必要はありません現在のインストール(あなたのサービスでそれを使用することもできます)

たとえば、ルーティングされたデバイスでこれがどのように機能するかを見てみましょう。

mount /dev/mapper/ubuntu--vg-ubuntu--lv /mnt
cd /mnt
# this folder only contains files from the root device

あなたの例では:

# your actual (untouched) work dirs
mount device1 /mnt/sub
mount device2 /mnt

# access /mnt/sub contents in another dir by remounting it there
mount device1 /mnt/tmp
cd /mnt/tmp
# any operations here apply solely to device1

答え3

device1以下のファイルはこのパスを介してはまったくアクセスできません。/mnt/subデバイスを別の場所に再インストールするか、両方のデバイスが逆の順序でインストールされていることを確認してください。

関連情報