質問

質問

想像する

  • 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回、/datafsで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/dir2つのエラーメッセージが表示されます。

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

関連情報