web-dev-qa-db-ja.com

Linuxはマウントポイント内の既存のファイルをどのように処理しますか?

すでにファイルが含まれているフォルダーをマウントしようとすると、Linuxはエラーメッセージを表示しますか、それともマウントされたファイルシステムとフォルダーに既に存在していたファイルの両方を表示しますか?

52
slim

マウントされるだけで、フォルダがアンマウントされるとファイルが消えて戻ってきます。

33
Azz

ファイルシステムをディレクトリ/mount-pointにマウントすると、/mount-point下のファイルに直接アクセスできなくなります。それらはまだ存在しますが、/mount-pointは、マウントポイントとして機能したディレクトリではなく、マウントされたファイルシステムのルートを参照するため、少なくともこの方法では、このディレクトリのコンテンツにアクセスできません。例えば:

# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory

マウントされたファイルシステムとすでに存在していたデータのマージされたビューを取得する方法はいくつかありますが、 ユニオンファイルシステム と呼ばれる追加のレイヤーが必要です。

Linuxでは、隠しファイルを表示する方法があります。 mount --bindを使用して、マウントポイントがあるファイルシステムの別のビューを取得できます。例えば

mount --bind / /other-root-view

ルートファイルシステムのすべてのファイルが/other-root-viewの下に表示されます。

# cat /other-root-view/etc/hostname 
darkstar

特に、/mount-point/other-root-view/mount-pointとしてアクセスできるようになり、/other-root-view/mount-pointはマウントポイントではないため、その内容をそこで確認できます。

# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile