2012-06-25

Linuxにおけるマウントの不思議

Linuxのマウントは面白い。

まず、ひとつのデバイスやらファイルを、複数のディレクトリにマウントできる。複数のディレクトリにマウントされても正しく動くようになっている。

マウント先の場所は、既存のディレクトリである。この時、ディレクトリの下には他のディレクトリやファイルがあるかもしれない。そのようなディレクトリにマウントした場合、元々のディレクトリ下にはアクセスできず、マウント先のファイルシステムの中身にアクセスすることになる。ただし、マウントする以前にディレクトリやファイルを開いていたプロセスは、マウント以前のファイルを参照したまま動き続ける。

おなじディレクトリに、複数回マウント先に指定することができる。その場合、後からのマウントが前回のマウント結果を隠す。マウントを解除するとまた現れる。

マウントしたファイルシステム内のディレクトリに、自分自身をマウントすることもできる。たとえば、hogeというディレクトリとhageというファイルが存在するext4でフォーマットされた/dev/sdbを、/mokeにマウントして、/moke/hogeにふたたび/dev/sdbをマウントすることもできる。その場合、hageというファイルは、/moke/hageからも、/moke/hoge/hageからも参照できる。

なんとも奇妙な仕組みだ。

No comments: