/mnt/temp/dir
_にマウントされます(および他の共有はサブディレクトリにマウントされます)、umount
しますが、おそらくうまく機能しません(_umount /mnt/temp/dir
_のような「ネストされた」共有を最初にアンマウントする代わりに_/mnt/temp/dir/subdir*
_から始めるかもしれません)、mount -o bind /data/temp /mnt/temp
_をします、mount /mnt/temp/dir
_をします、mount /mnt/temp/dir/subdir1
_...を実行し、それはうまく機能します。注:_/mnt/temp
_は、最初はルート(_/
_)ファイルシステム_/dev/sda6
_でホストされ、_/data
_は_/dev/sda8
_の別のファイルシステムです。
ルートファイルシステムの_/mnt/temp/dir
_ディレクトリを削除できません。
_# mount -o bind / /test/root
# rmdir /test/root/mnt/temp/dir
rmdir: failed to remove `dir': Device or resource busy
_
_/mnt/temp/dir
_がマウントされます2回、おそらくルートfsに1回、 _/data
_ fs。
これが_cat /proc/mounts
_です:
_nfsserver:/some/share/ /mnt/temp/dir nfs rw,relatime(...) 0 0
nfsserver:/some/share/ /mnt/temp/dir nfs rw,relatime,(...) 0 0
_
さらに興味深いことに、ここに_cat /proc/1/mountinfo
_があります:
_29 20 0:18 / /mnt/temp/dir rw,relatime - nfs nfsserver:/some/share/ rw,(...)
33 31 0:18 / /mnt/temp/dir rw,relatime - nfs nfsserver:/some/share/ rw,(...)
_
参照してください、最初の2つの数字は異なるです。
カーネルドキュメントによると これら2つのフィールドの場合:
_(1) mount ID: unique identifier of the mount (may be reused after umount)
(2) parent ID: ID of parent (or of self for the top of the mount tree)
_
また、親20と31(root fsと_/data
_ fs)も異なります。以下を参照してください。
_20 1 8:6 / / rw,relatime - ext4 /dev/sda6 rw,(...)
31 20 8:8 /temp /mnt/temp rw,relatime - ext4 /dev/sda8 rw,(...)
_
_umount /mnt/temp/dir
_を実行しようとすると、2つのエラーメッセージが表示されます。
_umount.nfs: /mnt/temp/dir: device is busy
umount.nfs: /mnt/temp/dir: device is busy
_
どうすれば「悪い」もの(マウントID 29)をumount
できますか?
umount(2)
システムコールでさえ、「マウントID」ではなく、引数のパスを取ります。
これはテストされていませんが、少なくとも「デバイスがビジーです」という問題を回避できます。
マウントポイントの1つを別の場所に移動します。そうすれば、2つのマウントポイント間で混乱が生じることはありません。
mkdir /foo
mount --move /mnt/temp/dir /foo