他のディレクトリがマウントされたときにディレクトリの内容にどのようにアクセスしますか?

他のディレクトリがマウントされたときにディレクトリの内容にどのようにアクセスしますか?

一部のファイルを含む/homeという既存のディレクトリがあります。 /etc/fstabを使用してこのディレクトリにパーティションをマウントしました。

UUID=10CD7304CE71E381   /home      ntfs    defaults        0       2

これまでは問題ありません。

何も削除せずに/homeの元のコンテンツにアクセスする方法。明らかに/homeパーティションをアンマウントできません。

ベストアンサー1

Linuxでは、そのディレクトリを別のディレクトリにアンマウントすることでこれを行うことができます。マウントネームスペースインストール伝播フラグは次のように設定されます。プライベート:

# truncate -s 3G blob
# mkfs.ext4 blob
...

# mkdir dir
# echo below > dir/file

# mount blob dir
# echo above > dir/file

# cat dir/file
above

# unshare --mount --fork --propagation private sh -c 'umount dir; cat dir/file'
below

# cat dir/file
above

# unshare --mount --fork --propagation private sh -c '
   umount dir
   for f in dir/file /dev/fd/7; do
       realpath --relative-to=. "$f"; cat "$f"
   done
' 7<dir/file
dir/file
below
dir/file
above

注:この--propagation privateフラグは少なくとも最新バージョンのデフォルト値ですunshare(1)。強調するために追加しました。

おすすめ記事