想像する
- NFS 共有がマウントされます
/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
インストール済み二重、おそらくルートfsで1回、/data
fsで1回になります。
これは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)
/data
また、異なる上位20と31(ルートfsと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
質問
どうすればumount
「悪い」状態になりますか(インストールID 29)?
umount(2)
システムコールも「インストールID」ではなくパスをパラメータとして使用します。
答え1
これはテストされていませんが、少なくとも「デバイス使用中」の問題を回避できます。
取り付けポイントを別の位置に移動します。これにより、2つのマウントポイント間に混乱がなくなります。
mkdir /foo
mount --move /mnt/temp/dir /foo