web-dev-qa-db-ja.com

マウントディレクトリをバインドした後にデバイスをアンマウントする:安全ですか?

同じボックスに複数のディストリビューションが共有するホームパーティションがあります。 bindからのfstabマウントを使用しています。 Linuxの各インストールには、次のようなものがあります。

_UUID=[...]       /mnt/data  ext4  nodev,nosuid   0 2
/mnt/data/Arch   /home      none  defaults,bind  0 0
/mnt/data/files  /files     none  defaults,bind  0 0
_

不利な点は、もちろん、_/mnt/data/Arch_と_/mnt/data/files_が2回マウントされることです。思い切って_umount /mnt/data_を試してみましたが、これは期待どおりに機能しているようです。mountによると、デバイスは_/home_と_/files_にのみマウントされています。

私の質問は:

  1. これは安全ですか、それとも何かを見落としていますか?
  2. fstabのみを使用して_umount /mnt/data_と同じ効果を得ることができますか?または、_rc.local_でそれを行うことができますか?
9
PPvG

バインドマウントされたコピーの1つをアンマウントしても安全です。 mount --bind /foo /barを実行した後、カーネルは/fooまたは/barのどちらが最初に来たかを追跡しません。これらは、同じファイルシステム(またはファイルシステムの一部)の2つのマウントポイントです。

/fooがマウントポイントであるが/foo/wibbleがそうでない場合、mount --bind /foo/wibble /bar/bar/fooにマウントされているファイルシステムの一部を指すようにすることに注意してください。 /fooをアンマウントしても問題ありません。

したがって、/mnt/dataをマウントしてから、その一部を/home/filesにバインドし、/mnt/dataをアンマウントすると、Archfilesの外側の/mnt/dataの部分にアクセスできなくなります。それが気にならない場合は、それを行ってください。

fstabではそれを実現することはできません。ファイルシステムのマウントのみをサポートしています。バインドマウントはハックを介して侵入します(bindマウントオプションは、内部的にmountコマンドの--bindオプションに変換されます)。 mount --moveおよびアンマウントはfstabで指定できません。 /etc/rc.localを使用してumountを呼び出すことができます。